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?
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.
intOnCalculate(...)
{
// индекс последнего посчитанного на прошлом вызове бара// с которого начинаем расчётint nStartBar = rates_total - MathMax(prev_calculated, 1);
for(int i = nStartBar; i >= 0; i--)
{
// рассчитываем индикатор на всех непосчитанных барах
}
}
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).
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.
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 lo farà. È 0 poi non 0 poi 0 di nuovo (quando si carica la storia un paio di volte).
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).
No. Senza azzeramento sarà quello che mostrano gli screenshot.
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).