如何使用GlobalDictionary共享变量?

TradeStation提供了名为GlobalDictionary的全局字典,供平台内的指标、策略、Trading APP之间共享键值对的集合。

创建 GlobalDictionary 实例,在相同的窗口类型内共享值: myGlobal = GlobalDictionary.create();

创建 GlobalDictionary 的实例,在相同的窗口类型以外共享值: myGlobal = GlobalDictionary.create(true, "share_name");

使用 Add(sKey, oValue) 方法将元素添加到全球字典,其中 sKey 是一个包含键名的字符串,oValue 是要存储的值。

使用 Remove(sKey) 方法从全球字典删除元素(键和值)。Contains(sKey) 方法用于确定元素键是否存在于字典中。

示例1:使用GlobalDictionary共享键值对

新建两个APP,代码分别为APP1和APP2,先后打开APP1和APP2,即可在EL打印输出栏查看内容。(注意:验证之前为APP绑定AnalysisTechnique_Initialized事件)

APP1

using guosen;
using elsystem.collections;

vars:GlobalDictionary myGlobal(null);
method void AnalysisTechnique_Initialized( elsystem.Object sender, elsystem.InitializedEventArgs args ) 
begin
    myGlobal = new GlobalDictionary(true,"GDname");
    if(myGlobal.Contains("keyTest"))then
    Begin
        myGlobal["keyTest"] = "ValueChanged";
        print("Infor from GD1: Exsiting keyTest value has been changed to ValueChanged");
    End
    Else
    Begin
        myGlobal.Add("keyTest","valueTest");
        print("Infor from GD1: keyTest added with key:keyTest and value:valueTest.");
    End;

end;

APP2

using guosen;
using elsystem.collections;

vars:GlobalDictionary myGlobal(null);
method void AnalysisTechnique_Initialized( elsystem.Object sender, elsystem.InitializedEventArgs args ) 
begin
    myGlobal = new GlobalDictionary(true,"GDname");
    if(myGlobal.Contains("keyTest"))then
    Begin
        print("Infor from GD2: key keyTest in GD is : "+ myGlobal["keyTest"].ToString());
    End
    Else
    Begin
        print("Infor from GD2: Key keyTest not found in GD."); 
    End;
end;
Copyright © 1998-2018 国信证券股份有限公司 版权所有发布时间: 2018-05-14 14:58:15

results matching ""

    No results matching ""