以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  vba开发的效率问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=9648)

--  作者:sxpms
--  发布时间:2012/1/12 10:17:53
--  vba开发的效率问题

近期学了点VBA知识,希望得到VBA开发效率方面的帮助:

1、将系统编写为常规公式,使用VBA的定时器功能,通过GetBufData ,  Stkindi方法在VBA中直接调用指标结果就行了。

        优点是:修改系统直接修改公式系统就可以了,只要不修改公式名称和输出指标名称,VBA是可以通用的。系统测试也比较方便。

        缺点是:效率不高。用于高频有几秒延时。

2、直接在在VBA中调用系统的内置数组变量,如C,H,V等,然后直接编写程序,利用循环语句控制指标不停刷新。

       优点是:效率高,可用于高频。

       缺点是:编写程序麻烦,测试麻烦。

请高手解惑!


--  作者:王锋
--  发布时间:2012/1/12 10:28:20
--  
理解的基本正确
--  作者:guotx2010
--  发布时间:2012/1/12 16:10:32
--  
Set Formula = marketdata.STKINDI(ActiveCode,ActiveMarket,"股指5F",0,1) application.MsgOut Formula.GetBufData("IfCc5",Formula.DataSize-1) 我参照上面的方法取公式中的IfCc5这个虚拟持仓量的值,显示24,应该有问题吧,虚拟持仓变量的值只有-1,0,+1三个的,怎么取出来24了呢,这是5分钟周期的值,1F周期返回31也不在取值范围的。