Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1737
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Naturalmente, il programma non sta aspettando che il terminale in un thread separato registri alcuni dati.
Grazie, voglio dire
Non capisco perché "-1" viene lanciato di volta in volta se dopo la pausa il Print(i); prima della pausa c'è i-- e if (i==0), che è il comando di uscita se i ha già raggiunto lo 0 all'interno dell'operatore. Poiché i è usato anche più in basso nel codice, in Close[i], produce l'errore "out of range
Non capisco perché "-1" viene lanciato di volta in volta se dopo la pausa il Print(i); prima della pausa c'è i-- e if (i==0), che è il comando di uscita se i ha già raggiunto lo 0 all'interno dell'operatore. Poiché i è usato anche più in basso nel codice, in Close[i], produce l'errore "out of range
Non capisco perché "-1" viene lanciato di volta in volta se dopo la pausa il Print(i); prima della pausa c'è i-- e if (i==0), che è il comando di uscita se i ha già raggiunto lo 0 all'interno dell'operatore. Poiché i è usato anche più in basso nel codice, in Close[i], produce l'errore "out of range
Dopo la pausa, esce dal ciclo all'operatore successivo al ciclo, dopo che il ciclo itera fino alla fine dell'iterazione in quel punto e ne inizia una nuova.
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// Nel log dice (-1), come mai... e, quindi, l'errorearray out of range, perché Close[-1] non avviene.
Voglio dire, ho ragione nel capire che dopo la pausa nell'intestazione(i; i>0; i--) la terza espressione "i--" viene ancora eseguita?
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// Il log dice (-1), come mai... e, quindi, l'errorearray out of range, perché Close[-1] non avviene.
Voglio dire, ho ragione nel capire che dopo la pausa nell'intestazione(i; i>0; i--) la terza espressione "i--" viene eseguita comunque?
Correttamente scrive
Si toglie non solo nell'intestazione, ma anche nel corpo del ciclo.Scrive correttamente.
Non chiedetemi che tipo di stronzate scrivo nel mio codice. Voglio solo capire le sfumature di questo operatore) Sembra che nel corpo ho specificato "è ora di lasciare qui, perché i=0", ma l'operatore prende e ancora una volta esegue l'espressione, anche se dovrebbe passare il controllo all'operatore successivo
Non chiedetemi che tipo di sciocchezze sto scrivendo. Voglio solo capire le sfumature di questo operatore) È come se nel corpo avessi specificato "è il momento di lasciare qui, perché i=0", ma l'operatore prende e ancora una volta esegue l'espressione, anche se dovrebbe passare il controllo all'operatore successivo
Sì, l'hai fatto, ma l'hai tolto prima di questo controllo. Scrivilo in questo modo
ci sarà un risultato diverso
Sì, l'hai fatto, ma l'hai tolto prima di questo controllo. Scrivilo così
aah... capito. Capito.
Grazie a tutti per le vostre pronte risposte.
ahh... Capito. Capito.
Grazie a tutti per le vostre pronte risposte.
Il tuo codice stampa 0, non -1...
Probabilmente -1 stampato da qualche altra parte, molto probabilmente l'intero codice è nelle stampanti...
Prima di cercare di risolvere il problema, è necessario identificarlo... Assicurati che ci sia e localizzalo prima di risolverlo...