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

金字塔VBA常用对象使用范例 [金字塔]

  • 咨询内容:

        金字塔vba编写策略经常使用的对象,在编程帮助中有很多介绍,但是例子相对较少,本人经过2年来对金字塔vba策略的编写,积累了大量的例子,从今天开始我将不定期整理出来供大家借鉴参考,本楼将是一个目录,供快速浏览。

     

        特别常用的对象:

        一、Application对象..............本页2-3楼

        二、Order对象....................7-13楼、19楼-20楼/22楼

        三、MarketData对象...............36、37楼

                (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=11642&authorid=0&page=1&star=4)

        四、Document对象.................39-40楼/74楼

                (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11642&page=1&star=4)

                (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11642&page=1&star=8)

                 五、ReportData对象...............................51楼

                                (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=11642&page=1&star=6) 

                 六、MinuteData对象和HistoryData对象......................53楼

                                 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=11642&authorid=0&page=1&star=6)

     

                 七、Menu对象................................................56楼

                            ( http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11642&page=1&star=6)

     

     

     

     本目录根据需要不断完善

    [此贴子已经被作者于2012-9-5 8:31:18编辑过]

     

  • 金字塔客服: 一、Application对象     1、基本介绍
    UserName:返回金字塔用户账号,不是你的交易账号。例如:abc=Application.UserName,就可以把当前登录的用户账号赋给abc变量,使用下面的程序可以显示登录账号的信息 Sub Application_VbaStart()
                    if iVer<2 then                        Application.MsgOut "你的金字塔版本不支持本程序,请升级账户"                        exit sub                end if         End Sub

            (3)EnginCode:返回当前用户计算机的机器识别码(只读)

            此属性的应用场景是限定特定的用户才能使用本程序,因为金字塔软件在每一台机上的识别码都是不相同的,你就可以判断客户的本属性是否与设定值相同,不相同就不让他运行。

            Sub Application_VbaStart()

                    dim sEnginCode                 dim sTestCode                 sTestCode="35A7707C1617CBE0"                '本行字符串改为你设定的识别码                 sEnginCode=Application.EnginCode                 if  strcomp(sEnginCode,sTestCode,vbtextCompare)<>0 then                     Application.MsgOut "你的不是授权用户,不能使用本程序"                     exit sub                 end if         End Sub IsActivateFrame方法:    '如果没有打开ABC的框架,就打开         if Application.isActivateFrame("ABC")=0 then        Call application.ActivateFrame("ABC")    end if        上面代码可以放在定时器过程中,每一次循环都会检测一遍,就可以防止人为关闭了框架了。               (2)ActivateFrameWithCode方法:            这个方法是对ActivateFrame方法的扩充,可以激活框架的同时指定品种和周期,如: Call Application.ActivateFrameWithCode("ABC","IF05","ZJ",0)将激活框架ABC,并在框架中打开IF05合约的1分钟分析图。            周期:0=1分钟 1=5分钟 2=15分钟 3=30分钟 4=60分钟 5=日线 6=周线 7=月线 8=年线 9=多日线 10=分笔成交 11=多小时 12=多秒 13=多分钟线 14=季度线 15=半年线 16=节气线 17=3分钟 18=10分钟。 当 FrameName 参数为 "MainFrame" 系统框架周期同时 Cyc 参数为 -1 时,打开分时走势界面。 Settimer和killtimer方法:设置和销毁计时器
        end if
        If ID=9 then
            Application.msgout Cdate(time) & ",9号计时器触发了"
        end if
    End Sub
    4、Application的事件

             Start 应用程序启动后发生。

                     写法:

                     Sub Application_Start()             '下面的事件都是加上 Application_ 不再赘述

                            '你的代码段

                     End Sub

             Close 应用程序关闭时发生。

             Timer 当达到SetTimer方法所设定的定时值后发生。其参数为定时器的标识符。(前面有例子)

             VBAStart  VBA宏启动运行后发生。(前面有例子)

             VBAEnd    VBA宏停止运行后发生


    特别需要注意的地方:     1、计时器一旦设置,如果不显式销毁,下次启动vba时依然会生效的。 所以,你要记住在Application_VBAEnd事件中使用Killtimer来销毁计时器。      2、Application_VBAStart只能有一个,你不要在多个模块中拥有多个vbastart事件,那样系统就会出错的。     [此贴子已经被作者于2012-5-13 8:59:51编辑过]

     

  • 网友回复: 写得不错的,继续就好了,最后再重新进行一下就行了

     

  • 网友回复: 很好,学习。

 

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

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


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

相关文章

    没有相关内容