Spero di non aver cancellato nulla di necessario, altrimenti il compilatore si lamenterebbe della parola else:
if(OrdersTotal()>0){// linea non necessaria - se non ci sono ordini, il contatore del ciclo sarà a zero e il ciclo non sarà eseguito for(int i=OrdersTotal()-1;i>=0;i--){// passa attraverso tutti gli ordini if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// senessun ordine è selezionato, allora... if(OrderMagicNumber()!=MagicNumber) continue; //se il numero magico non è il nostro, allora procedete ad un altro ordine if(OrderOpenTime()>=Time[0]) Torg=false; } // Ma cosa succede se l'ordine è ancora selezionato dalla lista? } }
P.S.
La linea che segnala un numero di errore quando si seleziona un ordine non dovrebbe essere stata rimossa per qualche motivo - a volte succede che salta in aria. In generale, la gestione degli errori è meglio usata ovunque possa verificarsi.
drknn: if(OrdersTotal()>0){// linea non necessaria - se non ci sono ordini, il contatore del ciclo sarà a zero e il ciclo non sarà eseguito for(int i=OrdersTotal()-1;i>=0;i--){// passa attraverso tutti gli ordini if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// senessun ordine è selezionato, allora. if(OrderMagicNumber()!=MagicNumber) continue; //se il numero magico non è il nostro, allora procedete ad un altro ordine if(OrderOpenTime()>=Time[0]) Torg=false; } // Ma cosa succede se l'ordine è ancora selezionato dalla lista? } }
Cosa succede se provi a controllare tu stesso questo ciclo nello script? Beh, solo stampando il risultato - quale posizione assume la variabile Torg nei diversi casi. Pensi di non poterlo fare da solo?
drknn: Cosa succede se provi a controllare tu stesso questo ciclo nello script? Beh, solo stampando il risultato - quale posizione assume la variabile Torg nei diversi casi. Pensi di non poterlo fare da solo?
Si è scoperto che un numero illimitato di ordini è stato aperto su una nuova barra. prima erano tutti aperti in una volta, ma ora si aspetta l'apertura di uno e tutti gli altri sono aperti.
No. Non è necessario dichiarare una variabile all'interno del ciclo ad ogni iterazione.
Spero di non aver cancellato nulla, altrimenti il compilatore si lamenterebbe della parola else:
bool Torg=true;
if(OrdersTotal()>0){for(int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
}
}
}
Spero di non aver cancellato nulla di necessario, altrimenti il compilatore si lamenterebbe della parola else:
if(OrdersTotal()>0){// linea non necessaria - se non ci sono ordini, il contatore del ciclo sarà a zero e il ciclo non sarà eseguito
for(int i=OrdersTotal()-1;i>=0;i--){// passa attraverso tutti gli ordini
if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// se nessun ordine è selezionato, allora...
if(OrderMagicNumber()!=MagicNumber) continue; //se il numero magico non è il nostro, allora procedete ad un altro ordine
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// Ma cosa succede se l'ordine è ancora selezionato dalla lista?
}
}
P.S.
La linea che segnala un numero di errore quando si seleziona un ordine non dovrebbe essere stata rimossa per qualche motivo - a volte succede che salta in aria. In generale, la gestione degli errori è meglio usata ovunque possa verificarsi.
if(OrdersTotal()>0){// linea non necessaria - se non ci sono ordini, il contatore del ciclo sarà a zero e il ciclo non sarà eseguito
for(int i=OrdersTotal()-1;i>=0;i--){// passa attraverso tutti gli ordini
if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// se nessun ordine è selezionato, allora.
if(OrderMagicNumber()!=MagicNumber) continue; //se il numero magico non è il nostro, allora procedete ad un altro ordine
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// Ma cosa succede se l'ordine è ancora selezionato dalla lista?
}
}
bool Torg;
if(OrdersTotal()==0) Torg=true;
if(OrdersTotal()>0){
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
if(OrderOpenTime()<Time[0]) Torg=true;
}
}
}
Che ne dite di questo?
Cosa succede se provi a controllare tu stesso questo ciclo nello script? Beh, solo stampando il risultato - quale posizione assume la variabile Torg nei diversi casi. Pensi di non poterlo fare da solo?
Non credo.
Scarica - ti aiuterà - http://depositfiles.com/files/eg4fmn3bp