以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2) ---- 写的获取上一日结算价的代码导致程序崩溃 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=92062) |
-- 作者:lance0307 -- 发布时间:2016/2/25 19:17:50 -- 写的获取上一日结算价的代码导致程序崩溃 todaybarcount:=TODAYBAR; a1:=0; v1:=0;
for pos=barpos-todaybarcount downto barpos-todaybarcount-59 do begin
if pos<1 or (pos>=1 and date[pos]!=date[barpos-todaybarcount]) then begin
break;
end
else begin
a1:=a1+amount[pos];
v1:=v1+vol[pos];
end end last1jsj:=a1/v1/multiplier;
last1jsj:=INTPART(last1jsj/MINDIFF); last1jsj:=last1jsj*MINDIFF; 请问这段代码有什么问题存在吗?为什么一架载就会导致程序崩溃提示内存不足 我是写成一个指标, 其他的地方会调用这个指标并传入1M周期 |
-- 作者:admin -- 发布时间:2016/2/25 19:49:41 -- 你用的序列模式还是逐K线? |
-- 作者:admin -- 发布时间:2016/2/25 20:21:48 -- for pos=barpos-todaybarcount downto barpos-todaybarcount-59 do begin
你在这句话上进入死循环了,建议你使用单步跟踪模式调试一下你的代码
|
-- 作者:lance0307 -- 发布时间:2016/2/26 9:49:16 -- 我是逐K线模式 |
-- 作者:lance0307 -- 发布时间:2016/2/26 9:53:27 -- 这个循环哪里有死循环,请麻烦分析 我这段代码如果不写成指标,直接放到策略代码里加载到1M的图表上是没有问题的,结算价也是对的,我都检验过了 就是不能写成指标
|
-- 作者:lance0307 -- 发布时间:2016/2/26 10:03:30 -- 我是这样调用这个指标的,图表1M周期 if tradedate != Date then BEGIN
last1jsj:=STKINDI(STKLABEL,\'getlastjsj.getlastjsj\',0,1,0); end 这样调用指标就会导致程序崩溃 但如果直接按下面这种方式直接写在策略里面就没有问题 if tradedate != Date then BEGIN
todaybarcount:=TODAYBAR;
a1:=0;
v1:=0;
for pos=barpos-todaybarcount downto barpos-todaybarcount-59 do begin
if pos<1 or (pos>=1 and date[pos]!=date[barpos-todaybarcount]) then begin
break;
end
else begin
a1:=a1+amount[pos];
v1:=v1+vol[pos];
end
end
last1jsj:=a1/v1/multiplier;
last1jsj:=INTPART(last1jsj/MINDIFF);
last1jsj:=last1jsj*MINDIFF; end
|
-- 作者:yukizzc -- 发布时间:2016/2/26 10:38:57 -- 被应用公式和引用的公式都用逐k |
-- 作者:lance0307 -- 发布时间:2016/2/26 11:27:07 -- 可以了 谢谢!
|