[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 1071

 
eddy:
para eso es, por eso está en if()
Sí, pero entras en un bucle y, si no se cumple la condición, nunca sales del bucle con tu construcción de código, se vuelve infinito y no se interrumpe. No puedes ver cuál es el parámetro sec!, no está declarado.
 
eddy:
int sec=Seconds();

¿cómo no se declara?:)

el ciclo debe interrumpirse cuando el segundo cambia

 
eddy:

¿cómo no se declara?:)

el ciclo debe interrumpirse cuando el segundo cambia

Declarado sec, ¡pero sec! (con un signo de exclamación) ?
 
!=
es "no igual"
 
eddy:
es "no igual".
sec siempre será igual a Seconds(), porque esta última es una constante y se asigna el valor de la constante a "sec".
 
este bucle en init(), sec declara en el mismo lugar
 
¿Dónde se almacenan los mensajes de "Alerta" y hasta cuándo? ¿Es posible leerlos no en la ventana de "Señal", sino abriendo el lugar donde se encuentran en el terminal (hay veces que la ventana se cierra al cambiar a otra aplicación y hay que volver a iniciar el Asesor Experto para verlo, lo cual es un inconveniente)?
 

¿Por qué este código funciona bien para un dc, pero para otro OrderModify error 4051 (ticket no vá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 qué no se interrumpe el ciclo?

 
eddy:

¿por qué no se interrumpe el bucle?

try while (false)

el bucle se ejecutará mientras sec!=Seconds()

o así

while(true)

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