以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [建议]开发人员留意下,跨周期的算法可以改进下  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=48349)

--  作者:readonly
--  发布时间:2013/2/1 17:10:14
--  [建议]开发人员留意下,跨周期的算法可以改进下
通过同一个公式里取多个跨周期变量的话,金字塔会重算多次,浪费了CPU运算。

举例来说明:

日周期程序
if barpos=1 then aa:=1;
if barpos=1 then bb:=1;

for j=1 to 10000 do begin
aa:=aa+1;
end

aaa:aa;


for k=1 to 10000 do begin
bb:=bb+1;
end

bbb:bb;


分钟周期程序
if barpos=1 then aaa:=1;
if barpos=1 then bbb:=1;
if time=opentime(0)+100 then aaa:="日测试.aaa#day";
if time=opentime(0)+100 then bbb:="日测试.bbb#day";
a1:aaa;
b1:bbb;

此时,取bbb值,跟不取bbb值,速度慢了一倍。
其实金字塔应该在第一次计算“日测试.aaa#day”时就应该寄存起所有可输出变量,取bbb时就不用再算一次这么笨了。

--  作者:jinzhe
--  发布时间:2013/2/1 17:18:10
--  
感谢提交建议!
--  作者:ackvz
--  发布时间:2013/2/1 19:30:29
--  

应该在第一次计算“日测试.aaa#day”时就应该寄存起所有可输出变量,取bbb时就不用再算一次这么笨了。

 

有道理  支持


--  作者:RogarZ
--  发布时间:2013/2/1 20:12:40
--  

工具:自定义数据 不就是达到这样的效果嘛

自定义数据 标准版以上


--  作者:readonly
--  发布时间:2013/2/4 9:52:29
--  
那我用全局变量也可以达到同样的效果。

请谨记:设计软件的最高境界是把功能设计出来,让用户忘掉。