【问题标题】:MQL4 Pending Order error # 130MQL4 挂单错误 # 130
【发布时间】:2018-08-13 12:08:27
【问题描述】:

我收到错误:

EURUSD,H4:OrderSend 失败,错误 #130

请高手指点我哪里出错了?

void OnTick()
  {
   
   H1EMAprev = NormalizeDouble(iMA(NULL,PERIOD_H1,14,0,MODE_EMA,PRICE_CLOSE,1), 5);
   H4EMAprev = NormalizeDouble(iMA(NULL,PERIOD_H4,14,0,MODE_EMA,PRICE_CLOSE,1), 5);
   StopLossBuy = High[2] + (30 * Point);
   StopLossSell = Low[2] - (30 * Point);

   if(
      Close[1]>H4EMAprev && 
      Close[1]>H1EMAprev
      )
     { 
      Price = NormalizeDouble(High[1] + (30 * Point), 5);
      TpOrderOne = NormalizeDouble(Price + (100 * Point), 5);

      //Pending order BUY
      Ticket1 = OrderSend(Symbol(),OP_BUYSTOP,1,Price,3,StopLossBuy,TpFirstOrder,"Pending Buy Order 1",16384,0,clrGreen);
      
      if(Ticket1<0)
       {
        Print("OrderSend failed with error #",GetLastError());
       }
      else
       {
        Print("OrderSend placed successfully");
       }
     }

   if(
      Close[1]<H4EMAprev && 
      Close[1]<H1EMAprev
      )
     {
      
      Price = NormalizeDouble(Low[1] - (30 * Point), 5);
      TpOrderOne = NormalizeDouble(Price - (100 * Point),5 );
      
      //Pending order BUY
      Ticket1 = OrderSend(Symbol(),OP_SELLSTOP,1,Price,3,StopLossSell,TpFirstOrder,"Pending Buy Order 1",16384,0,clrGreen);
      
      if(Ticket1<0)
       {
        Print("OrderSend failed with error #",GetLastError());
       }
      else
       {
        Print("OrderSend placed successfully");
     }

  }

请高手指点我哪里出错了?

我希望我的 EA 像这样工作:
交易开放标准:

  1. 如果最后一根蜡烛的收盘价高于 EMA(指数移动平均线)(即:收盘[1] > EMA),则买入交易将在当前蜡烛开始时立即打开。
  2. 如果最后一根蜡烛的收盘价低于 EMA(指数移动平均线)(即:收盘[1]

开仓价格:

  1. Pending Buy 交易价格将比最后一根蜡烛的高点高 3 点(即:TradePriceOpen = High[1] + 3 点)。

  2. Pending Sell 交易价格将比最后一根蜡烛的低点低 3 点(即:TradePriceOpen = Low[1] - 3 点)。

止损:

  1. SL 将低于卖出止损挂单中倒数第二根蜡烛的低点 3 点(即:SL = Low[2] - 3 点)。
  2. 止损将比买入止损挂单中倒数第二根蜡烛的高点高 3 点(即:止损 = 高[2] + 3 点)。

获利:

  1. TP 将比 Sell Stop Pending Order 中的交易开仓价格低 10 个点(即:TP = TradePriceOpen - 10 个点)。
  2. TP 将比买入止损挂单交易的开仓价高 10 个点(即:TP = TradePriceOpen + 10 个点)。

【问题讨论】:

  • 这不会编译,因为您有 'TpFirstOrder' 作为止盈,但您从未声明过它。请更正代码以更进一步

标签: mql4 mql forex


【解决方案1】:

您的止损逻辑是相反的。您不能在买入订单上设置高于订单入场价格的止损,反之亦然。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2019-01-19
    相关资源
    最近更新 更多