[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1071

 
eddy:
это и нужно, для того он и в if()
Да, но Вы заходите в цикл, а, если условие не выполняется, то из цикла не выходите при вашей конструкции кода никогда, он становится бесконечным и не прерывается. Не видно, что за параметр sec!, он не объявлен.
 
eddy:
int sec=Seconds();

как уж не объявлен?:)

при смене секунды цикл должен прерваться

 
eddy:

как уж не объявлен?:)

при смене секунды цикл должен прерваться

Объявлен sec, а sec! (с восклицательным знаком) ?
 
!=
это "не равно"
 
eddy:
это "не равно"
sec всегда будет равно Seconds(), т.к. последняя - это константа и Вы величину константы присваиваете параметру "sec".
 
этот цикл в init(), sec объявлена там же
 
Где хранятся сообщения "Alert" и до какого времени ? Можно ли их прочитать не в окошке "Сигнал", а открыв место, где они расположены в терминале (просто бывают моменты при остановленном советнике, когда окошко закрывается при переключении на другое приложение компа и чтобы окно вновь появилось - нужно запускать советника вновь, что неудобно) ?
 

почему этот код у одного дц работает нормально, у другого OrderModify error 4051 (invalid ticket)?

 void Modify ()
      int total = OrdersTotal();
      for(int i=total-1;i>=0;i--)
      {
       OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
       if   (OrderModify (OrderTicket(),OrderOpenPrice(),
            OrderOpenPrice()-NormalizeDouble(300*Point,Digits),
            OrderTakeProfit(),0,CLR_NONE)== false)
         {
          Modify();
         }
       }
 
         int sec=Seconds();
       while(true)
         if(sec!=Seconds()) break;   // new sec

почемуто цикл не прерывается?

 
eddy:

почемуто цикл не прерывается?

попробуй так while (false)

у тебя цикл выполняется пока sec!=Seconds()

или так

while(true)

if(sec==Seconds()) break; // new sec

Причина обращения: