[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 1071

 
eddy:
Ecco a cosa serve, ecco perché è in if()
Sì, ma si entra in un ciclo e, se la condizione non è soddisfatta, non si esce mai dal ciclo con la costruzione del codice, diventa infinito e non si interrompe. Non si può vedere qual è il parametro sec!, non è dichiarato.
 
eddy:
int sec=Seconds();

come non è dichiarato?:)

il ciclo deve essere interrotto quando il secondo cambia

 
eddy:

come non è dichiarato?:)

il ciclo deve essere interrotto quando il secondo cambia

Dichiarato sec, ma sec! (con un punto esclamativo) ?
 
!=
non è "uguale"
 
eddy:
è "non uguale".
sec sarà sempre uguale a Seconds(), perché quest'ultimo è una costante e voi assegnate il valore della costante a "sec".
 
questo ciclo in init(), sec dichiarato nello stesso posto
 
Dove sono conservati i messaggi di "Allarme" e fino a quando? È possibile leggerli non nella finestra "Signal", ma aprendo il posto dove si trovano nel terminale (ci sono volte in cui la finestra viene chiusa quando si passa a un'altra applicazione e bisogna avviare nuovamente l'Expert Advisor per vederli, il che è scomodo) ?
 

Perché questo codice funziona bene per un dc, ma per un altro OrderModify errore 4051 (biglietto non valido)?

 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

Perché il ciclo non viene interrotto?

 
eddy:

perché il ciclo non viene interrotto?

prova mentre (falso)

il ciclo verrà eseguito finché sec!=Seconds()

o come questo

mentre(vero)

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