您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

金字塔如何把VBS中字符参数传递给公式系统? [金字塔]

  • 咨询内容:

    Sub Technic_Paint()
     Set Grid =Technic.GetGridByName("Main")
     if Grid is NoThing Then
        Exit Sub
      End if
     CALL Grid.DrawRect(18,25,120,48,RGB(255,255,0),2)
     call Grid.DRAWTEXT(20,28,"执行外部分析程序",500)
     framename=application.GetActiveFrameName
     if framename<> "Technic" then
     Application.ActivateFrame "Technic"
     end if
        nname=Grid.StockName  
        ccode=Grid.IndexCode
        application.MsgOut nname &"  "&ccode
      
    End Sub

     

    现在想把nname与ccode这两个参数传给公式中:

    <%

    vspj=ccode

    ffl.vardata("spj")=vspj
    %>
    vspj:spj;

    c1:="vspj$close" -"if13$close";
    o1:="vspj$open" -"if13$open";
    h1:="vspj$high" -"if13$high";
    l1:="vspj$low" - "if13$low";

    kred:STICKLINE( c1>o1,c1 ,o1, 10,1 ,colorred);//空心实体
    kred1:STICKLINE( c1>o1,max(h1,c1) ,max(c1,o1), 0,1 ,colorred);//上引线
    kred2:STICKLINE( c1>o1,min(c1,o1) ,min(l1,o1), 0,1 ,colorred);//下引线

    kgreen:STICKLINE( c1<=o1,c1 ,o1, 10,1 ),colorgreen;//实心实体
    kgreen1:STICKLINE( c1<=o1,max(h1,o1) ,max(c1,o1), 0,1 ,colorgreen);
    kgreen2:STICKLINE( c1<=o1,min(c1,o1) ,min(l1,c1), 0,1 ,colorgreen);
    fc:=c1;

     

     

    提示错误!

    敬请老师指教!

     

     

  • 金字塔客服:

    Sub Technic_Paint()
     Set Grid =Technic.GetGridByName("Main")
     if Grid is NoThing Then
        Exit Sub
      End if
     CALL Grid.DrawRect(18,25,120,48,RGB(255,255,0),2)
     call Grid.DRAWTEXT(20,28,"执行外部分析程序",500)
     framename=application.GetActiveFrameName
     if framename<> "Technic" then
     Application.ActivateFrame "Technic"
     end if
        nname=Grid.StockName  
        ccode=Grid.IndexCode

     

        '传递数据到全局变量数据库

        Document.SetExtString("TestName",nname )

        Document.SetExtString("TestCode",ccode)

        application.MsgOut nname &"  "&ccode
      
    End Sub

     

    现在想把nname与ccode这两个参数传给公式中:

     

    //公式读取全局变量数据库字符串

    ccode:=EXTGBSTRING('testcode');

     

    <%

    vspj=FFL.StrVarData("ccode" ) '公式中字符串变量传递到VBS公式中

    ffl.vardata("spj")=vspj
    %>
    vspj:spj;

    c1:="vspj$close" -"if13$close";
    o1:="vspj$open" -"if13$open";
    h1:="vspj$high" -"if13$high";
    l1:="vspj$low" - "if13$low";

    kred:STICKLINE( c1>o1,c1 ,o1, 10,1 ,colorred);//空心实体
    kred1:STICKLINE( c1>o1,max(h1,c1) ,max(c1,o1), 0,1 ,colorred);//上引线
    kred2:STICKLINE( c1>o1,min(c1,o1) ,min(l1,o1), 0,1 ,colorred);//下引线

    kgreen:STICKLINE( c1<=o1,c1 ,o1, 10,1 ),colorgreen;//实心实体
    kgreen1:STICKLINE( c1<=o1,max(h1,o1) ,max(c1,o1), 0,1 ,colorgreen);
    kgreen2:STICKLINE( c1<=o1,min(c1,o1) ,min(l1,c1), 0,1 ,colorgreen);
    fc:=c1;

     

  • 用户回复: 非常感谢王老师的回复,根据您的指点,我测试过发现:在VBS中msgout输出的var1为ccode指向的合约代码,但是在公式系统用EXTGBSTRING('TestCode')得到的却是1000000这样的结果。

     

  • 网友回复: 是不是用要进行字符函数转换一下?

     

  • 网友回复:

    因该是你的代码问题了。

    将你的全局变量数据库的写入部分代码贴过来看看

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容