2018-12-14 09:30:16.937 xn=280.85001
2018-12-14 09:30:16.937 hold=1.00000
2018-12-14 09:30:16.937 numbertrade=1.00000
2018-12-14 09:30:16.937 bkl=280.89999
2018-12-14 09:30:16.937 skl=280.29999
2018-12-14 09:30:16.937 price=280.85000
这是黄金的debugout一些结果~
小数点后第五位造成了我信号的误差~应该怎么解决?
[此贴子已经被作者于2018/12/14 9:57:45编辑过]
我感觉这个数值是随机在我指标上加减0.00001~导致信号不是大于就是小于~根本没法相等~本来没触发的信号变成了触发~
几年前问过你们~说是浮点小数误差~当时我还在交易股指~这个东西影响不是太大~
但现在交易黄金了~发现这东西频繁造成信号误差根本无法忽略
因为从交易所过来的行情数据本来就带有小数位的,您保留2位小数试试呢,看下信号是否会产生偏差
那等于我所有价格数据都得intpart(dynainfo(7)*100)/100这样操作了
xn:=dynainfo(7);//--------后台调试部分
FILEPATH:='C:\debug\'&str1&'.TXT'; DEBUGFILE(FILEPATH,'=======',0);
//--------动态函数~orderbook
DEBUGFILE(FILEPATH,'xn=%.5f',xn);
DEBUGFILE(FILEPATH,'xn1=%.5f',round(xn*10000)/10000);
你们试试上面的调试代码吧~if1812 t1903 au1906几个合约上~
xn1还是有误差~消除不了~你们是否还有其他办法?
您试试下面的方法
xn:dynainfo(7),PRECISION2;//保留2位小数
xn:dynainfo(7),PRECISION3;//保留3位小数
或者
xn:ROUNDS(dynainfo(7),3 );
[此贴子已经被作者于2018/12/14 13:45:55编辑过]
没用~麻烦你帮忙一起调试一下看看能否找到合适的解决方案