Cambiare il TF è un problema - pagina 6

 
Vasyl Nosal:
Tutto qui? Non ci saranno glitch?
Non è il codice ad essere difettoso. :) Prendilo e usalo.
 
Sergei Vladimirov:

Vladimir, perché lo stai facendo dentro OnCalculate()? Intendo le ultime due righe - reinizializzazione degli array. Avete entrambi i buffer calcolati su ogni barra, è un'azione inutile.

if(prev_calculated==0)
{
   limit=rates_total-1;
   ArrayInitialize(up_arr,EMPTY_VALUE);
   ArrayInitialize(down_arr,EMPTY_VALUE);
}
Perché avete deciso che l'inizializzazione sarà eseguita ad ogni tick? La condizione prev_calculated==0 viene eseguita una o due volte all'inizio dell'indicatore. Durante l'operazione prev_calculated==0 può diventarlo se la storia viene cambiata - ma raramente o mai e il cambiamento della storia richiede il ricalcolo dell'indicatore.
 
Sergei Vladimirov:
Non è il codice ad essere difettoso. :) Prendilo e usalo.

Grazie:))))))))))))))))))))))))))))))))))))))))))))))))))

Chi è il prossimo?

 
Karputov Vladimir:
Perché avete deciso che l'inizializzazione avverrà ad ogni tick? La condizione prev_calculated==0 viene eseguita una o due volte all'avvio dell'indicatore. Durante l'operazione prev_calculated==0 può diventare se la storia è cambiata - ma raramente o addirittura mai e il cambiamento della storia richiede il ricalcolo dell'indicatore.
Si può fare a meno dell'azzeramento dei buffer durante il caricamento della storia?
 
Karputov Vladimir:
Cosa vi fa pensare che l'inizializzazione avverrà ad ogni tick?
Dove l'ho scritto? Chiedevo perché reinizializzi i buffer in OnCalculate() se poi hai entrambi i buffer calcolati su tutte le barre.
 
Sergei Vladimirov:
Dove l'ho scritto? Chiedevo perché reinizializzi i buffer in OnCalculate() se poi hai entrambi i buffer calcolati su tutte le barre.
Dichiarazione errata. Quando prev_calculated==0 bypasso successivamente tutte le barre, ma non garantisce la sostituzione di tutti i valori nei buffer degli indicatori. Pertanto, quando prev_calculated==0 è necessario cancellare i buffer degli indicatori.
 
Vasyl Nosal:

Grazie:))))))))))))))))))))))))))))))))))))))))))))))))))

Chi è il prossimo?

Perché mentire?

 
Karputov Vladimir:
Dichiarazione errata. Quando prev_calculated==0,bypasso successivamentetutte le barre, manon garantisce la sostituzione di tutti i valori neibuffer degli indicatori. Quindi, a prev_calculated==0 ho bisogno di cancellare i buffer degli indicatori.

Sì? Puoi farmi un esempio di quando nel tuo codice qualche valore di qualche buffer non viene riempito? Tranne forse la prima barra della storia.

 
Sergei Vladimirov:

Perché mentire?

Genio.

Hai provato a passare a una coppia senza storia e poi a un altro TF?

 
Sergei Vladimirov:

Non era una dichiarazione, era una domanda.

Sì? Forse puoi darci un esempio, quando nel tuo codice qualche valore di qualche buffer non viene riempito?

Facciamo così: prendete il codice 1.43 da questo post e commentate le righe:

if(prev_calculated==0)
{
   limit=rates_total-1;
//ArrayInitialize(up_arr,EMPTY_VALUE);
//ArrayInitialize(down_arr,EMPTY_VALUE);
}

e guardare il risultato quando si scorre il grafico fino alla parte posteriore della storia e avere la storia caricata.

Motivazione: