mql4检查订单是否存在多次执行

时间:2017-12-18 09:40:25

标签: mql4

我正在使用此代码检查我的代码中是否存在售价为buy1和sell1的订单。 不知何故,一些订单被执行两次。 不应该发生,因为我正在检查是否有任何与同一个公益组织的未结订单。 任何人都能看到什么错误?

<img id="image" src="https://i.stack.imgur.com/TiYE3.jpg?s=32&g=1" onclick="moveright()" />

1 个答案:

答案 0 :(得分:0)

每当您尝试将 OrderTakeProfit() 值与其他 double 进行比较时,请记住舍入和浮动表示。

E.g。如果你需要将0.10与你认为是0.10的另一个double进行比较 - 你可能会惊讶于0.10是0.09(9)6或0.10(0)4

这就是为什么有时你可能找不到这样的订单。

double o = Point / 2;    // initialize in OnInit(), declare in global vars
...

bool CheckOrderBuy( double tp ){
   for ( int i = OrdersTotal() - 1; i >= 0; i-- ){
         if ( !OrderSelect( i, SELECT_BY_POS ) )continue;
         if (  fabs( OrderTakeProfit() - tp ) <  o
            &&       OrderType()              == OP_BUY
               ) return true;
   }
   return false;
}