Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 33

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
Evidenziato può restituire 0. BCS ha incontrato.
Sì, broker disonesti. Ci mettevano anche i numeri negativi.
Sarebbe bene che gli sviluppatori avessero un limite di valori possibili per ogni parametro quando i broker impostano i simboli.
Cosa c'è esattamente che non va? Questa era la domanda - cosa sto facendo di sbagliato per ottenere i dati degli indicatori da un timeframe non nativo?
Esempio: l'indicatore viene eseguito su M1, e i dati di AO dovrebbero essere ottenuti da M5. Così, mentre abbiamo limite>1 (la storia deve essere ricalcolata), AO da M5 restituisce zero con assenza di errore di dati. Non appena la storia viene calcolata (limit==0), i dati iniziano ad arrivare da AO con M5.
Per cominciare - non c'è bisogno di fare queste voci:
All'inizio pensavo che stessi assegnando una variabile al suo stesso valore.
Il prossimo:
Non c'è bisogno di copiare durante l'inizializzazione. L'inizializzazione non serve a questo scopo. Inoltre, questo record non sarà significativo quando si richiedono dati da TF più vecchi, che al momento della richiesta da OnInit() non saranno ancora calcolati.
Ma questa registrazione è sufficiente per essere fatta solo una volta nella fase di inizializzazione.
Inoltre... um... Soggettivamente, non è così che farei io.
Mi piace dividere il programma in:
1. Prima esecuzione (analisi della storia);
2. Corse successive:
2.1. ogni spunta;
2.2. La barra formata;
Cioè
E solo dopo - ciclo di calcolo principale (funzione).
Le vostre funzioni di copia danno errori non informativi. Il codice non è molto buono.
Non c'è controllo della sincronizzazione dei dati del vecchio TF.
E la cosa più importante qui è capire la sequenza. Consiglio di creare un indicatore di prova, in modo che richieda solo i dati del TF maggiore al primo avvio e per capire come viene fatta la copia. Cioè rimuovere questo dall'inizio del codice:
E disattiva il primo e l'ultimo elemento dell'array. E solo allora, se necessario, cambiare la direzione dell'indicizzazione.
Per cominciare - non c'è bisogno di fare queste voci:
All'inizio ho pensato che stessi assegnando ad una variabile il proprio valore.
Il prossimo:
Non c'è bisogno di copiare durante l'inizializzazione. L'inizializzazione non serve a questo scopo. Inoltre, questo record non sarà significativo quando si richiedono dati da TF più vecchi, che al momento della richiesta da OnInit() non saranno ancora calcolati.
Ma questa registrazione è sufficiente per essere fatta solo una volta nella fase di inizializzazione.
Inoltre... um... Soggettivamente, non è così che farei io.
Mi piace dividere il programma in:
1. Prima esecuzione (analisi della storia);
2. Corse successive:
2.1. ogni spunta;
2.2. La barra formata;
Cioè
E solo dopo - ciclo di calcolo principale (funzione).
Le vostre funzioni di copia danno errori non informativi. Il codice non è molto buono.
Non c'è controllo della sincronizzazione dei dati del vecchio TF.
E la cosa più importante qui è capire la sequenza. Consiglio di creare un indicatore di prova, in modo che richieda solo i dati del TF principale al primo avvio e per capire come viene fatta la copia. Cioè rimuovere questo dall'inizio del codice:
E disattiva il primo e l'ultimo elemento dell'array. E solo allora, se è necessario, cambiare la direzione dell'indicizzazione.
Faccio delle variabili che mi sono chiare a colpo d'occhio. Se non li capite, fateli in un modo in cui li capite ;).
Inizio sempre a scrivere le variabili non globali con una lettera minuscola - la ragione è semplice: l'intelligenza maiuscola...
Questo è il codice di test, poiché il codice non-test è abbastanza grande, e su MT4 vola quando si cambia il traf, e non ci sono errori di dati mancanti - tutto è sempre lì. Ma MT5 quando passo mtf solo per mezzo minuto carica la storia, e poi non funziona con i dati non è il suo TF - dice circa la loro assenza.
Ecco perché ho discusso su cosa stavo facendo di sbagliato. Si è scoperto che è necessario richiedere i dati per tutti i client utilizzati nell'init. Penso che se non si conosce in anticipo il numero stimato di telefoni usati, è necessario richiederli tutti. Solo uno per mezzo minuto conta. Ce ne sono 21 in totale...
C'è di nuovo qualcosa che non va?
In MT5 ci vuole solo mezzo minuto per scaricare la storia quando si cambia un etf
ha scritto su di esso
maggiori dettagli qui
https://www.mql5.com/ru/forum/1111/page1871#comment_4866969
https://www.mql5.com/ru/forum/1111/page1871#comment_4867939
Questo è e sarà. Più TF o simboli richiederà, più lento sarà l'inizio.
ha scritto su di esso
maggiori dettagli qui
https://www.mql5.com/ru/forum/1111/page1871#comment_4866969
https://www.mql5.com/ru/forum/1111/page1871#comment_4867939
Più TF o personaggi sono interrogati, più lento sarà l'avvio.
Sarebbe bello se solo quando avvio l'indicatore per la prima volta. Ho mezzo minuto di caricamento della cronologia ogni volta che cambio di orario. So che non dovrebbe essere così, ma... Sto facendo qualcosa di sbagliato... Sto cercando di accedere a un timeframe non nativo in un solo indicatore.
Bene, misurate la velocità di copia dei dati da un altro periodo e vedete dov'è il collo di bottiglia.
Se hai bisogno di usare diversi indicatori da diversi TF per i calcoli - hai bisogno di ottenere la maniglia di ogni TF.
Se volete che sia più veloce, riducete la dimensione della cronologia nel terminale.
Hai eseguito il mio indicatore di prova? Sta raccogliendo dati?
Se hai bisogno di usare diversi indicatori da diversi TF per i calcoli - hai bisogno di ottenere la maniglia di ogni TF.
Se volete che sia più veloce, riducete la dimensione della cronologia nel terminale.
Hai eseguito il mio indicatore di prova? Sta raccogliendo dati?
No, non l'ho fatto.
Risulta che se avete bisogno di TUTTI i timeframe, dovreste creare 21 maniglie dell'indicatore AO? Non è uno spreco?
No, non l'ho ancora eseguito.
Risulta che se avete bisogno di TUTTI i timeframe, dovete creare 21 maniglie di indicatori AO? Non è uno spreco?