[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 1071

 
eddy:
é para isso que serve, é por isso que está no if()
Sim, mas você entra em um loop e, se a condição não for cumprida, você nunca sai do loop com sua construção de código, ele se torna infinito e não é interrompido. Você não pode ver qual é o parâmetro sec!, não é declarado.
 
eddy:
int sec=Seconds();

como não é declarado?:)

o ciclo deve ser interrompido quando a segunda muda

 
eddy:

como não é declarado?:)

o ciclo deve ser interrompido quando a segunda muda

Declarado seg, mas seg! (com um ponto de exclamação) ?
 
!=
é "não igual".
 
eddy:
é "não igual".
sec será sempre igual a Seconds(), porque esta última é uma constante e você atribui o valor da constante a "sec".
 
este laço no init(), sec declarado no mesmo lugar
 
Onde estão armazenadas as mensagens de "Alerta" e até quando? É possível lê-los não na janela "Sinal", mas abrindo o local onde estão localizados no terminal (há momentos em que a janela é fechada quando você muda para outra aplicação e você tem que iniciar o Expert Advisor novamente para vê-la, o que é inconveniente) ?
 

Por que este código funciona bem para um dc, mas para outro OrderModify erro 4051 (bilhete inválido)?

 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

Por que o ciclo não é interrompido?

 
eddy:

por que o laço não é interrompido?

tente enquanto (falso)

o laço funcionará durante o tempo que se seg!=segundos()

ou como este

enquanto(verdadeiro)

if(seg===Segundos()) quebra; // novo seg