Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Зарегистрируйся на MQL5.community и оставляй комментарии!
Vt
21
Vt 2016.02.16 17:06 

Будьте добры, подскажите, почему не выполняется столь элементарная операция (просто игнорируется)? В фрагменте кода я красными комментариями указал строки ее объявления и изменения. Изменение вот не работает вообще!!!

Код:

  int kolpos=0;
  long abc=0;  //Вот здесь объявлена та самая переменная, значение которой будет увеличиваться по мере исполенения условий ниже
      if(SELL==true)
         {
            if
               (  
                    iVolume(Symbol(), Period(), 3)<iVolume(Symbol(), Period(), 2)
                && iVolume(Symbol(), Period(), 2)<iVolume(Symbol(), Period(), 1)
                
                && Close[3]> Close[2]
                && Close[2]> Close[1]
                
                && (Open[3]-Close[3])<=3*Point && (Open[3]-Close[3])>0*Point && (Close[3]!=Open[3])
                && (Open[2]-Close[2])<=3*Point && (Open[2]-Close[2])>0*Point && (Close[2]!=Open[2])
                && (Open[1]-Close[1])<=3*Point && (Open[1]-Close[1])>0*Point && (Close[1]!=Open[1])
                
                && Volume[0]<2
                  
               )   
                   {
                     kolpos=0; 
            
                     for (int pos=OrdersTotal(); pos>0; pos--)
                        {
                           OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
                              if (OrderSymbol()==Symbol() && OrderType()<2)
                                 kolpos++;
                        }
                     if (kolpos==0)
                        {
                           OrderSend (Symbol(), OP_SELLSTOP, Lot,  Bid-10*Point,  3,   0,  Bid-TP*Point-10*Point,  IntegerToString(abc, 0), Magic,   0, Red);
                           OrderSend (Symbol(), OP_BUYSTOP,  Lot,  Ask+10*Point,  3,   0,  Ask+TP*Point+10*Point,  IntegerToString(abc, 0), Magic,   0, Green);
                           Print("Order Send №", abc); 
                           abc++; //Должна изменяться переменная, но ее изменений при работе советника не происходит, она по-прежнему остается равной 0 всегда. 
                        } 
                  } 
         }
Vasyl Nosal
18205
Vasyl Nosal 2016.02.16 18:54  
А ордера открываются?
Vt
21
Vt 2016.02.16 19:40  
eevviill:
А ордера открываются?
Да, ордера открываются как надо, но закрываются как не надо (как раз-таки из-за того, что не изменяется данная переменная) и вывод в журнал работает. И в журнале все время одна и та же строчка, при открытии ордеров, сколько бы их не было открыто кодом, приведенным выше: "Order Send №0"
Alexey Viktorov
5175
Alexey Viktorov 2016.02.16 19:43  
daux:

Будьте добры, подскажите, почему не выполняется столь элементарная операция (просто игнорируется)? В фрагменте кода я красными комментариями указал строки ее объявления и изменения. Изменение вот не работает вообще!!!

Код:


Ну наверное к ночи ум за разум заходит:)))))))

Переменная объявлена локальной и при каждом проходе инициализируется нулём, потом печатается 0 и после этого переменная увеличивается на единицу после чего вновь инициализируется нулём...

Vt
21
Vt 2016.02.16 19:59  
AlexeyVik:

Ну наверное к ночи ум за разум заходит:)))))))

Переменная объявлена локальной и при каждом проходе инициализируется нулём, потом печатается 0 и после этого переменная увеличивается на единицу после чего вновь инициализируется нулём...

Ах, блин, точно!!! Спасибо!!!))))))) Да, и вы правы: к ночи действительно ум за разум заходит! x))
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий