double 类型数值比较,结果未必达到预期效果

Jiayou Hu  

突然发现出了很多错误提示,这个错误大概意思就是,修改订单的时候参数没有任何更改,比如止盈止损没有发生改变,就会出现这样的错误提示。

>>> TradeError:Sell 订单执行错误! 10025 不改变请求 No changes, LE:4756

然后打印了一下日志,我惊呆了

Print("oFile.Tp(",oFile.Tp,") != oDeal.Tp(",oDeal.Tp,") : ", (oFile.Tp != oDeal.Tp));
Print("oFile.Sl(",oFile.Sl,") != oDeal.Sl(",oDeal.Sl,") : ", (oFile.Sl != oDeal.Sl));


Lin Luo  
加幅度限制,价格变动在一定幅度内不发送修改请求。
Tiecheng Fu  
Jiayou Hu:

突然发现出了很多错误提示,这个错误大概意思就是,修改订单的时候参数没有任何更改,比如止盈止损没有发生改变,就会出现这样的错误提示。

>>> TradeError:Sell 订单执行错误! 10025 不改变请求 No changes, LE:4756

然后打印了一下日志,我惊呆了


double数值比较,格式化Norma……一下试一试

Jiayou Hu  
Tiecheng Fu:

double数值比较,格式化Norma……一下试一试

NormalizeDouble 是可以的

目前2种方法都可以解决,更推荐用  NormalizeDouble

Print("oFile.Tp(",NormalizeDouble(oFile.Tp,Digits()),") != oDeal.Tp(",NormalizeDouble(oDeal.Tp,Digits()),") : ", (NormalizeDouble(oFile.Tp,Digits()) != NormalizeDouble(oDeal.Tp,Digits())));

>>  oFile.Tp(1.18755) != oDeal.Tp(1.18755) : false


Print("oFile.Tp(",(string)oFile.Tp,") != oDeal.Tp(",(string)oDeal.Tp,") : ", ((string)oFile.Tp != (string)oDeal.Tp));

>>  oFile.Tp(1.18755) != oDeal.Tp(1.18755) : false
原因: