MQL4待定订单错误#130

时间:2018-08-13 12:08:28

标签: mql4 mql forex

我遇到错误:

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. 待定买入交易价格将比上一支蜡烛的最高价高3点(即:TradePriceOpen =高[1] + 3点)。

  2. “待定卖出”交易价格将比上一支蜡烛的低点低3点(即:TradePriceOpen =低[1]-3点)。

止损:

  1. SL将比倒数第二个蜡烛的最低止损待定订单价低3点(即:SL =低[2]-3点)。
  2. SL将比倒数第二个蜡烛的最高买入止损挂单高3点(即:SL =高[2] + 3点)。

止盈:

  1. 目标价将比止损待定订单中的交易价格低10点(即:TP = TradePriceOpen-10点)。
  2. 目标价将比止损待定订单中开仓的价格高10点(即:目标价= TradePriceOpen + 10点)。

1 个答案:

答案 0 :(得分:0)

您的止损逻辑被颠倒了。您不能在买单上设置高于订单输入价格的止损,反之亦然。