Il fatto è che non ho intenzione di fare stupidamente controlli su ogni linea per tutte le occasioni confondendo e ingombrando il codice. Se questo è fuori questione allora... si aggiungono le stampelle, un progetto piuttosto grande è finalmente completamente rifatto e funzionante...
E in generale, sono solo stupito di questo approccio... Si scopre che non è la prima volta che si pone una tale domanda (e sono sicuro che più di una volta in futuro si presenterà in altre persone), e ogni volta "per la prima volta" a spendere un sacco di tempo di lavoro tuo e di altri per spiegare che cosa è necessario fare per bypassare questo bug ...
L'unica cosa da fare è aggiungere in TESTER che raccomandato in quel thread solo UN sonno (1000) all'inizio di Expert Advisor.
Non deve essere tale che la shell implichi dei glitch, e questi glitch devono essere evitati nel codice. E il TERMINALE funziona bene e correttamente, non ci sono ERRORI (in questa situazione). Ma il funzionamento del tester è DIVERSO da quello del terminale.
ps EQU ciao:)
Ancora una volta, lo ripeto. Abbiamo raccomandato in anticipo come lavorare con gli indicatori, lo abbiamo descritto nella documentazione (qualcuno semplicemente non legge la documentazione).
Subito dopo aver creato una maniglia dell'indicatore, non ci sono ancora dati. Devono essere calcolati in un altro thread. Il fatto di ottenere immediatamente i dati nel terminale del cliente, consideratelo una fortuna. Ancora una volta si può non ottenere i dati.
Il tester è più deterministico del terminale - lì tutto è molto più sincrono. E subito dopo aver creato una maniglia non otterrete mai dei dati. In questo caso "mai" è equivalente a "qualche volta". Per "qualche volta" è ancora necessario organizzare un qualche tipo di controllo. Quindi mettete un anello di controllo con uno slittamento. E tutto sarà come nella vita.
PS Beh, non creare un nuovo handle ad ogni iterazione - è sbagliato da qualsiasi punto di vista.
Ancora una volta, lo ripeto. Abbiamo raccomandato in anticipo come devono essere gestiti gli indicatori e lo abbiamo descritto nella documentazione (qualcuno semplicemente non legge la documentazione).
Subito dopo la creazione della maniglia dell'indicatore, non ci sono ancora dati. Devono essere calcolati in un altro thread. Il fatto di ottenere immediatamente i dati nel terminale del cliente, consideratelo una fortuna. Ancora una volta si può non ottenere i dati.
Il tester è più deterministico del terminale - lì tutto è molto più sincrono. E subito dopo aver creato una maniglia non otterrete mai dei dati. In questo caso "mai" è equivalente a "qualche volta". Per "qualche volta" è ancora necessario organizzare un qualche tipo di controllo. Quindi mettete un anello di controllo con uno slittamento. E tutto sarà come nella vita.
PS Beh, non dovresti creare un nuovo handle ad ogni iterazione - è sbagliato da qualsiasi punto di vista.
Allora abbiamo bisogno di due funzioni (tempo extra...). Questo tiene conto del fatto che i dati dell'indicatore nel codice sono sempre diversi. Andrà bene?
Qualcuno sa come ottenere l'indice della sessione di trading corrente per la funzione SymbolInfoSessionTrade(). La guida dice solo il numero della sessione per la quale voglio ottenere l'ora di inizio e di fine. L'indicizzazione delle sessioni inizia da 0.
Si prega di avvisare. Questa linea all'inizio dell'EA è necessaria
Se no, in quali casi è necessario?
Se il trading in mql5-programma è proibito (per esempio, se hai deselezionato la casella che permette il trading in questo EA quando lo avvii), allora non verrà eseguito alcun trading. L'Expert Advisor stesso funzionerà come al solito. Controllate voi stessi.
Seduto... Guardare...
Non crederò mai che MQL5 e MQL4 siano stati scritti dallo stesso team.((((
MQ4 - volare...
MQ5 è un gioco da ragazzi. Senza offesa - ma...((((
Non ho visto questo thread... stessa cosa...
Il fatto è che non ho intenzione di fare stupidamente controlli su ogni linea per tutte le occasioni confondendo e ingombrando il codice. Se questo è fuori questione allora... si aggiungono le stampelle, un progetto piuttosto grande è finalmente completamente rifatto e funzionante...
E in generale, sono solo stupito di questo approccio... Si scopre che non è la prima volta che si pone una tale domanda (e sono sicuro che più di una volta in futuro si presenterà in altre persone), e ogni volta "per la prima volta" a spendere un sacco di tempo di lavoro tuo e di altri per spiegare che cosa è necessario fare per bypassare questo bug ...
L'unica cosa da fare è aggiungere in TESTER che raccomandato in quel thread solo UN sonno (1000) all'inizio di Expert Advisor.
Non deve essere tale che la shell implichi dei glitch, e questi glitch devono essere evitati nel codice. E il TERMINALE funziona bene e correttamente, non ci sono ERRORI (in questa situazione). Ma il funzionamento del tester è DIVERSO da quello del terminale.
ps EQU ciao:)
Ancora una volta, lo ripeto. Abbiamo raccomandato in anticipo come lavorare con gli indicatori, lo abbiamo descritto nella documentazione (qualcuno semplicemente non legge la documentazione).
Subito dopo aver creato una maniglia dell'indicatore, non ci sono ancora dati. Devono essere calcolati in un altro thread. Il fatto di ottenere immediatamente i dati nel terminale del cliente, consideratelo una fortuna. Ancora una volta si può non ottenere i dati.
Il tester è più deterministico del terminale - lì tutto è molto più sincrono. E subito dopo aver creato una maniglia non otterrete mai dei dati. In questo caso "mai" è equivalente a "qualche volta". Per "qualche volta" è ancora necessario organizzare un qualche tipo di controllo. Quindi mettete un anello di controllo con uno slittamento. E tutto sarà come nella vita.
PS Beh, non creare un nuovo handle ad ogni iterazione - è sbagliato da qualsiasi punto di vista.
Ancora una volta, lo ripeto. Abbiamo raccomandato in anticipo come devono essere gestiti gli indicatori e lo abbiamo descritto nella documentazione (qualcuno semplicemente non legge la documentazione).
Subito dopo la creazione della maniglia dell'indicatore, non ci sono ancora dati. Devono essere calcolati in un altro thread. Il fatto di ottenere immediatamente i dati nel terminale del cliente, consideratelo una fortuna. Ancora una volta si può non ottenere i dati.
Il tester è più deterministico del terminale - lì tutto è molto più sincrono. E subito dopo aver creato una maniglia non otterrete mai dei dati. In questo caso "mai" è equivalente a "qualche volta". Per "qualche volta" è ancora necessario organizzare un qualche tipo di controllo. Quindi mettete un anello di controllo con uno slittamento. E tutto sarà come nella vita.
PS Beh, non dovresti creare un nuovo handle ad ogni iterazione - è sbagliato da qualsiasi punto di vista.
Allora abbiamo bisogno di due funzioni (tempo extra...). Questo tiene conto del fatto che i dati dell'indicatore nel codice sono sempre diversi. Andrà bene?
Leggi l'articolo Restrizioni e controlli in esperti
Si prega di avvisare. Questa linea all'inizio dell'EA è necessaria
Se no, quando è necessario?Si prega di avvisare. Questa linea all'inizio dell'EA è necessaria
Se no, quando è necessario?Questa funzione controlla se questa casella di controllo è abilitata:
Si prega di avvisare. Questa linea all'inizio dell'EA è necessaria
Se no, in quali casi è necessario?Questa funzione controlla se questa casella di controllo è abilitata:
No, questo è un messaggio su un'altra casella di controllo che è selezionata quando l'esperto o lo script viene avviato