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

Valentina Chukhlib  

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

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

 

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

//|                                                    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
Valentina Chukhlib  
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);
        .........
        }
      }
    }
Причина обращения: