斑竹好,请看下面的后台程序化代码。我遇到的情况是在“工具--数据管理--全局变量里”看到extgbdataset('baitangjizhi',jizhi);
extgbdataset('baitangpingcang',pingcang);
extgbdataset('baitangcontrol',control);
extgbdataset('baitangunit',unit);这四个全局变量都根据所编写的公式发生了值的改变(即不为0),所以我认为下单的代码应该是被执行了,但是却没有出现预警条件,也没有出现实盘的下单。这种情况在模拟盘和实盘都出现过,有时候可以正常预警和下单,有时候又不行,以至于我难以分析出到底是哪里出了问题。请问可能是什么原因导致的?这里unit:= 仓量 * tasset / (止损幅度 * atr * MULTIPLIER)得出来的值是一个大于1的非整数,类似3.21这样的一个值,是否对这个值做取整处理对tbuy的运行有影响吗?
jizhi:= 0;
pingcang:= 0;
unit:= 0;
control:= 0;
if close > mafilter and close > ma(close, 10) then BEGIN
unit:= 仓量 * tasset / (止损幅度 * atr * MULTIPLIER);
tbuy(1,unit,mkt);
control:= 1;
jizhi:= close;
pingcang:= close + 止损幅度 * atr;
end;
extgbdataset('baitangjizhi',jizhi);
extgbdataset('baitangpingcang',pingcang);
extgbdataset('baitangcontrol',control);
extgbdataset('baitangunit',unit);
为什么会是零手?unit的计算公式得出的结果不是0
如果条件没有成立,extgbdataset是不会赋予全局变量非0的值的。我看到在工具-数据管理-全局变量里,四个全局变量都按照begin-end之内的计算公式发生了赋值,所以认tbuy的语句应该是执行了的,但是没有下单。经常都可以正常下单,但是偶尔又没有下单。