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
Basta chiamare start() da init () ...e sarete in start() anche senza tick in arrivo!
grazie u 2
Espandendo il mio link sopra... Eseguo un EA separato per monitorare lo stato della connessione. In pratica ha tutto il codice per il mio test codificato all'interno di start con uno sleep alla fine. Start è fondamentalmente un grande ciclo, quando finisce, torna all'inizio. Ma piuttosto che aspettare un tick per innescare lo start, chiamo start() dentro init(). In questo modo start() continua a fare il ciclo con lo sleep e init() non finisce mai, quindi il codice viene eseguito in base agli intervalli di tempo dallo sleep piuttosto che aspettare un tick... il link sopra mostra il principio...
hth
V
Basta chiamare start() da init () ...e ti troverai in start() anche senza tick in arrivo!
nessuno dei due risolve il problema perché anche init() non parte se non c'è connessione
l'unico modo per farlo è con uno script; il problema è che non c'è modo di aprire il terminale con uno script Loaded
nessuno dei due risolve il problema perché anche init() non parte se non c'è connessione
l'unico modo per farlo è con uno script; il problema è che non c'è modo di aprire il terminale con uno script caricato
Diamo un'occhiata agli strumenti di MT4i.com. Li uso per monitorare la connessione e inviare avvisi via mail o sms.
http://www.mt4i.com/mtdashboard.aspx
Basta chiamare start() da init () ...e sarai in start() anche senza tick in arrivo!
NO! Questo non è permesso. init() dovrebbe tornare dopo 2 secondi. Non è permesso che init si blocchi! Tutti i tipi di problemi potrebbero nascere (e nasceranno) da questo.
Basta fare il ciclo in start e aspettarsi che start venga chiamato automaticamente al prossimo tick disponibile dopo il caricamento dell'EA. Ci sono stati dei tick prima che la connessione cadesse, quindi il tuo ciclo sarà già in esecuzione quando questo evento si verifica.
Se avete davvero bisogno di innescare uno start() dall'interno di init() perché avete bisogno che venga eseguito nel fine settimana, allora l'unico modo corretto è usare il trucco PostMessage() per imporre un tick. Si invia il messaggio e poi si lascia che init ritorni! MT4 chiamerà poi start() nel modo normale e init() non si bloccherà.
Vedi il prossimo post per un esempio.
E questo è lo stesso dello script precedente ma implementato come un EA, dimostrando entrambi i concetti in un EA.
In init() si enqueue il primissimo tick per innescare il primo start() e poi in start() produrrà altri tick in un ciclo infinito. Questi tick saranno poi raccolti da tutti gli indicatori sullo stesso grafico.
Questo è l'unico modo corretto per forzare uno start() dall'interno di init() in un EA. Non ti è permesso farlo in un indicatore, dato che la start() verrà eseguita nel thread della GUI.
prova a mettere questo EA su un grafico, chiudi il terminale, poi disabilita la tua connessione internet e accendi il tuo terminale (mentre la connessione a internet è spenta) e vedrai che non funziona
prova a mettere questo ea su un grafico, chiudi il terminale, disattiva la tua connessione internet e accendi il tuo terminale (mentre la connessione a internet è spenta) e vedrai che non funziona
Ma dovrebbe continuare a funzionare una volta che è stato avviato in condizioni normali (che dovrebbe essere il caso d'uso normale). Provate a disconnettervi dopo che è stato avviato.
E serve come esempio di come evitare un init() bloccante ed eseguirlo come un EA invece di uno script.
Ma dovrebbe continuare a funzionare una volta che è stato avviato in condizioni normali (che dovrebbe essere il caso d'uso normale). Provate a disconnettervi dopo che è stato avviato.
E serve come esempio di come evitare un init() bloccante ed eseguirlo come un EA invece di uno script.
Hai ragione, ma non sto cercando una soluzione alla situazione che descrivi, sto cercando una soluzione alla situazione che descrivo, e al momento l'unica soluzione che ho trovato, che, software esterno, eseguirà uno script