Mql4 MQL 4 ordersend错误138仅在测试中,不在实时演示中

Mql4 MQL 4 ordersend错误138仅在测试中,不在实时演示中,mql4,Mql4,我收到ordersend错误138,无论是买入还是卖出,但仅在后台测试中,而不是在现场演示中。我已试着调整滑动,但没有效果。有人知道怎么了吗 double price = iClose(Symbol(), PERIOD_H1, 1); if (up > down && up > sideway){ double stoploss = NormalizeDouble(price-piploss*Point, Digits); double

我收到ordersend错误138,无论是买入还是卖出,但仅在后台测试中,而不是在现场演示中。我已试着调整滑动,但没有效果。有人知道怎么了吗

double price = iClose(Symbol(), PERIOD_H1, 1);
   if (up > down && up > sideway){
      double stoploss = NormalizeDouble(price-piploss*Point, Digits);
      double takeprofit = NormalizeDouble(price+pipgain*Point, Digits);
      int ticket = OrderSend(Symbol(), OP_BUY, 1, price, 5, stoploss, takeprofit, "buy", 16384, 0, clrGreen);
      if (ticket<0){
         Print("Order send error: ", GetLastError());
      } else{
         Print("Order success");
      }
   } else if (down > up && down > sideway) {
      double stoploss = NormalizeDouble(price+piploss*Point, Digits);
      double takeprofit = NormalizeDouble(price-pipgain*Point, Digits);
      int ticket = OrderSend(Symbol(), OP_SELL, 1, price, 5, stoploss, takeprofit, "sell", 16384, 0, clrGreen);
      if (ticket<0){
         Print("Order send error: ", GetLastError());
      } else{
         Print("Order success");
      }
   } else {
      Print("sideway");
   }
     }
double price=iClose(符号(),句号为1);
如果(向上>向下和向上>侧向){
双止点损失=标准化双倍(价格损失*点,数字);
double takeprofit=NormalizeDouble(价格+点数增益*点数,位数);
int ticket=OrderSend(Symbol(),OP_BUY,1,price,5,stoploss,takeprofit,“BUY”,16384,0,绿色);
if(票证向上和向下>侧向){
双止点损失=标准化双倍(价格+点损失*点,数字);
double takeprofit=NormalizeDouble(价格点增益*点,位数);
int ticket=OrderSend(Symbol(),OP_SELL,1,price,5,stoploss,takeprofit,“SELL”,16384,0,绿色);

如果(票您的价格接近上一个H1蜡烛。可能您以前做过开放式酒吧检查。无论如何,您的计算可能需要时间,这就是强烈建议
刷新率()的原因
发送订单前。接下来,在发送市场订单时,您应该使用常量
Ask
Bid
,它们在刷新费率后更新。否则您将收到不同的错误(133、136、138).

您的价格接近上一个H1蜡烛。可能您以前做过开栏检查。无论如何,您的计算可能需要时间,因此强烈建议
刷新率()
在发送订单之前。接下来,在发送市场订单时,应使用常量
Ask
Bid
,它们在刷新费率后更新。否则,您将收到不同的错误(133、136、138)