以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  从5分钟获取30分钟前2个周期的最低价格  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=94805)

--  作者:izhangmh
--  发布时间:2016/3/16 11:50:11
--  从5分钟获取30分钟前2个周期的最低价格
从5分钟获取30分钟前2个周期的最低价格,实际只能得到了前1个30分钟周期的,请问哪里写错了?怎么修改效率高?

谢谢!!

m30pl := callstock(stkref, vtlow, 4, -1);
plow:=llv(m30pl,2);
--  作者:izhangmh
--  发布时间:2016/3/16 11:51:56
--  
 我猜测是llv统计2次低值,仍然按照5分钟周期来的,但是怎么修改呢?

--  作者:jinzhe
--  发布时间:2016/3/16 13:20:54
--  

l1:callstock(stklabel,vtlow,4-,1);

l2:callstock(stklabel,vtlow,4,-2);

最小值:min(l1,l2);


--  作者:izhangmh
--  发布时间:2016/3/16 13:29:18
--  
 实际要比较的大于2个周期,我用for循环试了下,好像效率还不如拆出单独的公式通过stkindi调用(简单看CPU占用率),stkindi也有其它限制。

1:

s:=numtostr(n1-1,0);
plow2:=stkindi(stkref2,\'pinfo.plow(\'&s&\')\',0,4,-1);

2:

plow2:=callstock(stkref2, vtlow, 4, -1);
for i = 2 to n1-1 do begin
    lowthis := callstock(stkref2, vtlow, 4, 0-i);
    if lowthis < plow2 then plow2 := lowthis;
end

--  作者:jinzhe
--  发布时间:2016/3/16 13:36:16
--  

要大于2个,就是要新写一个公式来引用

公式1:

input:n(5,1,200,1);

ll:llv(l,n);

 

 

公式2:

lll:stkindi(\'\',\'公式1.ll\',0,4);

这样lll就是5个30分钟周期里面的最小值,要计算更多周期的,只要改n这个参数就行