В чем тут ошибка???

 

Я пишу советники первый день, прошу помощи)

Этот простой советник открывает сделку на каждый тик, хотя я делаю проверку наличия ордеров, в чем проблема??? И он не хочет их закрывать, помогите.

 

//+------------------------------------------------------------------+

//|                                                    muvingi-1.mq4 |

//|                        Copyright 2013, MetaQuotes Software Corp. |

//|                                        http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link      "http://www.metaquotes.net"


//--- input parameters

extern double    LotTrend;

extern int       stop;

extern int       take;

//+------------------------------------------------------------------+

//| expert initialization function                                   |

//+------------------------------------------------------------------+

int init()

  {

//----

   

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| expert deinitialization function                                 |

//+------------------------------------------------------------------+

int deinit()

  {

//----

   

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| expert start function                                            |

//+------------------------------------------------------------------+

int start()

  {

//----

   if (iMA(Symbol(),PERIOD_H4,25,0,1,4,0)>iMA(Symbol(),PERIOD_H4,100,0,1,4,0))

   {

     if(OrderType()==OP_SELL)

        {

          OrderClose(OrderTicket(),OrderLots(),Bid,30,White);

          OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0,0,"",5,0,Green);

        }

     int total=OrdersTotal();   

     if (total==0)

        {

          OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0,0,"",5,0,Green);

        }   

   }     

   if (iMA(Symbol(),PERIOD_H4,25,0,1,4,0)<iMA(Symbol(),PERIOD_H4,100,0,1,4,0))  

   {   

      if(OrderType()==OP_BUY)

        {

          OrderClose(OrderTicket(),OrderLots(),Ask,30,White);

          OrderSend(Symbol(),OP_SELL,0.01,Bid,30,0,0,"",5,0,Green);

          

        }

      int total1=OrdersTotal();   

      if (total1==0) 

        {

          OrderSend(Symbol(),OP_SELL,0.01,Bid,30,0,0,"",5,0,Green);

        }   

   }

   

//----

   return(0);

  }

//+------------------------------------------------------------------+ 

MetaTrader 5 Trading Platform / MetaQuotes Software Corp.
  • www.metaquotes.net
MetaTrader 5 trading platform designed to arrange brokerage services in Forex, CFD, Futures, as well as equity markets
 
Вам на форум по четвёрке. Сюда.
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - MQL4 форум
  • www.mql5.com
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - MQL4 форум
 
artmedia70:
Вам на форум по четвёрке. Сюда.
Различие очень большое в коде и есть ли смысл углубляться в четверке или переходить на 5?
 

Mr.Trader4:

не хватает OrderSelect, примерно вот так надо :


if(OrdersTotal() == 1)
    {
    if(OrderSelect(..., ..., MODE_TRADES))
      {
      if(OrderType()==OP_SELL)
        {
        OrderClose(OrderTicket(),OrderLots(),Bid,30,White);
        OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0,0,"",5,0,Green);
        .........
        }
      }
    }
Причина обращения: