![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ho un'idea. Scriverò più tardi.
l'idea è morta.
Chiederò agli sviluppatori di fare qualcosa come il sistema HistoryUpdated() per controllare se tutta la storia è stata aggiornata o no.
Gli sviluppatori non vi aiuteranno perché non lo faranno.
Già detto: se la differenza tra rates_total e prev_calculated è maggiore di 1, allora è historyUpdated
è maggiore di 0, non di 1.
И? Questo risolve il problema?
O non è un problema per voi ricalcolare l'intera storia su ogni nuova barra?
è maggiore di 0, non di 1.
И? Questo risolve il problema?
O non è un problema per voi ricalcolare l'intera storia su ogni nuova barra?
Vi è stato detto correttamente. Maggiore di 1. Quando appare una nuova barra, la differenza è 1.
E questo risolve completamente il problema.
Un indicatore normale impiega pochissimo tempo per ricalcolare completamente. Meno di un secondo.
Vi è stato detto correttamente. Più di 1. Quando appare una nuova barra, la differenza è 1.
E questo risolve completamente il problema.
Un indicatore normale impiega pochissimo tempo per ricalcolare completamente. Meno di un secondo.
Funziona solo se i buffer sono azzerati.
Funziona solo se si azzerano i buffer.
Mi scusi, ma mi permetta di chiedere:
- perché avete bisogno di assegnare rates_total e prev_calculated a variabili separate create su ogni tick qui?
- Nell'espressione dell'operatore condizionale if() e nel ciclo for() per ricalcolare la differenza di queste variabili?
- perché non introdurre semplicemente una variabile per la differenza tra rates_total e prev_calculated, per esempio limit?
L'implementazione può essere diversa a seconda del compito. Le sfumature possono essere diverse. Perché non vedi come viene attuato da altri, a seconda delle diverse condizioni? Compreso, e con l'aiuto del priming per capire, decidere, formare opzioni accettabili per se stessi, a seconda dei compiti?P.S. Aggiungerò altro a questo:
La tua idea sull'azzeramento (counted=0) nel blocco dell'operatore condizionale if(){} mi sembra chiara.
Nel caso in cui vi fosse più chiaro cosa intendo brevemente sopra, ecco un estratto della Documentazione, dalla sezione ... Basi del linguaggio / Funzioni / Funzioni di gestione degli eventi:
... Se dall'ultima chiamata di OnCalculate() i dati dei prezzi sono stati cambiati (è stata pompata una storia più profonda o sono stati riempiti i vuoti della storia), allora il valore del parametro di input prev_calculated sarà impostato a zero dal terminale stesso.
Funziona solo se si azzerano i buffer.
Non c'è bisogno di resettare nulla.
Se si azzera prev_caclulated, l'indicatore ricalcola completamente. E questo è corretto - non si sa cosa sia cambiato esattamente nella storia. Forse, qualche buco è stato caricato, forse le borchie sono state pulite da qualche parte. È obbligatorio ricalcolare completamente. In tutti gli altri casi, solo un'ultima barra sarà ricalcolata (quando appareuna nuova barra, le ultime due).
Mi scusi, ma mi permetta di chiedere:
- Perché avete bisogno di assegnare i valori di rates_total e prev_calculated a variabili separate su ogni tick?
- Nell'istruzione condizionale if() e nel ciclo for(), ricalcolate la differenza di queste variabili?
- perché non inserire semplicemente una variabile per la differenza tra rates_total e prev_calculated, ad esempio il limite?
L'implementazione può essere diversa a seconda del compito. Le sfumature possono essere diverse. Perché non vedi come viene attuato da altri, a seconda delle diverse condizioni? Compreso, e con l'aiuto del priming per capire, decidere, formare varianti accettabili per se stessi, a seconda dei compiti?Grazie. Buon punto.
Non lo è. È così che si può ricalcolare l'intera storia se c'è una lacuna.
P.S. Aggiungerò altro a questo:
La tua idea sull'azzeramento (counted=0) nel blocco dell'operatore condizionale if(){} mi sembra chiara.
Nel caso in cui vi fosse più chiaro cosa intendo brevemente sopra, ecco un estratto della Documentazione, dalla sezione ... Basi del linguaggio / Funzioni / Funzioni di gestione degli eventi:
... Se dall'ultima chiamata di OnCalculate() i dati dei prezzi sono stati cambiati (è stata pompata una storia più profonda o sono stati riempiti i vuoti della storia), allora il valore del parametro di input prev_calculated sarà impostato a zero dal terminale stesso.
Non c'è bisogno di resettare nulla.
Se si azzera prev_caclulated, l'indicatore ricalcola completamente. E questo è corretto - non si sa cosa sia cambiato esattamente nella storia. Forse, qualche buco è stato caricato, forse le borchie sono state pulite da qualche parte. È obbligatorio ricalcolare completamente. In tutti gli altri casi, solo un'ultima barra sarà ricalcolata (quando appareuna nuova barra, le ultime due).