【问题标题】:Mql4 order is not close autoMql4 订单未关闭自动
【发布时间】:2021-02-26 05:31:16
【问题描述】:

我想用 MT4 简单移动平均线 20 周期回测简单的 EA 仅买入

我看到一个买入信号,最多有 3 个订单正在运行 但是当价格低于 MA20 时它不会自动关闭订单 帮我处理

void OnTick()
  {
   double sma20 = iMA(Symbol(),PERIOD_H1,20,0,MODE_SMA,PRICE_CLOSE,0);
   if(OrdersTotal()<3)
     {
      if(Low[1]>sma20)
        {
         bool ticket = OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,NULL,0,0,clrAliceBlue);
        }
     }

   for(int i=0; i<= OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderType()==OP_BUY)
           {
            if(Close[1] < sma20)
              {
               bool ticket_close = OrderClose(OrderTicket(),OrderLots(),Ask,3,clrAliceBlue);
              }
           }

        }
     }

  }

【问题讨论】:

    标签: mql4


    【解决方案1】:

    要关闭类型为OP_BUY 的订单,您应该使用Bid 插入的Ask 价格。

    检查为什么订单没有关闭GetLastError(),在您的情况下应该如下所示:

    bool ticket_close = OrderClose(OrderTicket(),OrderLots(),Bid,3,clrAliceBlue);
    if(!ticket_close){
        Print("Error closing the order id: ", OrderTicket(), ", Error code: ", GetLastError()); 
    }
    

    【讨论】:

    猜你喜欢
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多