Variable: Myholding=0;
DEBUGFILE('C:\test.txt','VS:%.0f',Myholding);
IF ISLASTBAR THEN
BEGIN
IF Myholding=0 THEN
BEGIN
Myholding:=1;
DEBUGFILE('C:\test.txt','Myholding:%.0f',Myholding);
END
END
按照我的理解,在Myholding:=1后,应该保持为1。但实际测试文件的结果如下:
2010-07-28 11:12:00.265 VS:0
2010-07-28 11:12:00.265 Myholding:1
2010-07-28 11:12:05.734 VS:0
2010-07-28 11:12:05.734 Myholding:1
2010-07-28 11:12:10.718 VS:0
2010-07-28 11:12:10.718 Myholding:1
2010-07-28 11:12:15.718 VS:0
2010-07-28 11:12:15.718 Myholding:1
2010-07-28 11:12:20.734 VS:0
2010-07-28 11:12:20.734 Myholding:1
2010-07-28 11:12:25.718 VS:0
2010-07-28 11:12:25.718 Myholding:1
2010-07-28 11:12:30.734 VS:0
2010-07-28 11:12:30.734 Myholding:1
2010-07-28 11:12:35.718 VS:0
2010-07-28 11:12:35.734 Myholding:1
能请教一下是怎么回事?Variable定义的全局变量为什么被不停地初始化了呢?
原文链接:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=2262&page=5
因为islastbar会被行情不断的刷新,会进行多次计算,所以如果不断的保存值,也会造成程序不可控,所以这样设计是合理的。
我现在设计的走完K线是这样设计的,islastbar就直接exit
然后就计算到上根K线为止,信号判断取上根K线的值就是了。
如果你要直接判断是否倒数第二根K线,可以用barpos=datacount-1来判断