看你写的应该不会错,不过你把ATR归零那段写了吗?
然后呢还有个办法, 你这就是说 开仓到现在是多久。 所以呢仔细看函数表,有个叫做自上次开仓至今周期数的函数 ,嗯那,在配下REF
REF(ATR,XXX)
XXX= 自开仓至今多少周期的函数
搞定
if 开仓条件 and holding=0 then begin
开仓语句;
aa:=atr;
end
多加一个条件试试看
回楼主:你说ATR会变化是因为你的“开仓条件”又实现了。
IF 开仓条件 then begin
BUY(HOLDING=0,XXX,XXX,XX)
END
类似上面这写法,第二行只要前头定义是=0 而不是 1或者别什么布尔形态。 IF后续内容就算实现也是不执行的。
但不代表说IF不“运行” 你知道的IF特性就是会一直运行这与while不同。
所以呢你如果想知道为何ATR会变换 只要在下面加一个 I:=I+1; 然后你观察下I ,我估计这个I会好几次求和。
因此你就可以判断,前面"开仓条件" 又实现了几次。
。。。 断点追几次就会发现问题。要善于用断点。