以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  金字塔软件问题提交  (http://222.73.7.161/bbs/list.asp?boardid=2)
----  [求助]请问这样改公式效率提高大吗?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=2&id=7561)

--  作者:wujiazhu
--  发布时间:2011/8/17 0:43:57
--  [求助]请问这样改公式效率提高大吗?

方法3:通过公式编写技巧

一个简单的例子:

ENTERLONG:CROSS(C,MA(5,10));

EXITLONG:CROSS(MA(5,10),C);

通过上面的语句,我们看到了,MA(5,10)其实是被连续使用了两次,这样的重复执行函数调用,必然会带来不必要的运算开支。改进方法如下:

MA5:=MA(5,10);

ENTERLONG:CROSS(C,MA5);

EXITLONG:CROSS(MA5,C);

通过中间变量MA5,保存函数调用结果,通过重复使用内部变量MA5,达到提高效率的目的。

 

我公式里比较多像上面例子的情况,如果写个中间变量可能只是调用1-2次,而且要写很多个中间变量。

请问这样改能提高多少效率?


--  作者:阿火
--  发布时间:2011/8/17 7:47:57
--  

调用1次的 ,就无需用中间变量

调用2次的,用中间变量运行效率更高。

你的模式有很多这种情况,会提高不少


--  作者:wujiazhu
--  发布时间:2011/8/17 11:19:00
--  

另外,如果公式多次引用最高价HIGH函数,那么我写成

var:=HIGH;

然后再调用var,这样也能提高效率吗?


--  作者:fly
--  发布时间:2011/8/17 11:41:49
--  
不需要