Analogo a iBarShift - pagina 8

 
Vitaly Muzichenko:

Ho controllato rapidamente: c'è una funzione che funziona da più di un giorno, ho sostituitoiBarShift3 e ho ottenuto che l'EA non funzionasse correttamente. Questa è la conclusione che ne ho tratto.

Ecco quello che uso io

Provate con la vostra funzione a fare questo:

Print("iBarShift1 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:01')));
Print("iBarShift0 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:00')));

La vostra funzione darà valori diversi, ma l'ora è la stessa. Questo significa che non funziona.

La funzione nativa in MQL4 dà gli stessi valori.

AncheiBarShift3 dà gli stessi valori, ma per i periodi D1, W1 e MN1 è ugualmente sbagliato. Devo modificare un po' il codice. So come farlo e lo farò più tardi quando avrò abbastanza tempo.

Altrimenti, queste funzioni si comportano allo stesso modo, solo che iBarShift3 è molto più veloce.


ZS: Mi dispiace. La vostra funzione funziona correttamente. Ho inserito il codice sbagliato. È il mio che non si comporta correttamente sui periodi D1, W1 e MN1. Lo aggiusterò oggi stesso.

 
Sono già confuso dai pilastri di programmazione - quindi quale funzione ora conta esattamente tutto su tutti i TF?
 
Aleksey Vyazmikin:
Sono già confuso dai pilastri della programmazione - quindi quale funzione conta accuratamente su tutti i TF al giorno d'oggi?
A rigor di logica, la funzione più lenta sembra ottenere il risultato giusto :-)
 
Aleksey Vyazmikin:
Sono già confuso dai pilastri di programmazione - quindi quale funzione ora conta esattamente tutto su tutti i TF?
https://www.mql5.com/ru/forum/743/page7#comment_6995147
 
Aleksey Vyazmikin:
Sono già confuso dai pilastri di programmazione - quindi quale funzione ora conta esattamente tutto su tutti i TF?
E funziona tutto correttamente quando ci sono salti di barra!
 
Yury Kirillov:
Se guardate la logica, il più lento sembra averla azzeccata :-)

No, il più lento non è corretto, a giudicare dall'indicatore postato prima.

Yury Kirillov:
E funzionano tutti correttamente quando ci sono degli spazi vuoti nelle barre!

Questo è molto importante, perché a volte il tempo passa e non c'è nessuna barra, specialmente su piccoli TF, poi il numero di barre con i minuti può essere diverso in giorni diversi...

 
Vitaly Muzichenko :

Ho controllato rapidamente: c'è una funzione che funziona da più di un giorno, ho sostituito iBarShift3 e ho ottenuto che l'EA non funzionasse correttamente. Questa è la conclusione che ne ho tratto.

Ecco quello che sto usando

Questo è il mio codice. Qualche problema?

 
Nikolai Semko :
...

Tutti gli algoritmi che erano disponibili prima, compreso quello di @Alain Verleyen, hanno situazioni anomale.

È possibile creare un analogo completo di iBarShift MQL4, ma il codice sarà molto ingombrante e non vedo alcun senso in esso.

Quale problema avete trovato?

 
Alain Verleyen:

Quale problema ha rilevato?

Forum sul trading, sistemi di trading automatico e test di strategia

iBarShift analogico

Nikolai Semko, 2018.04.04 17:47

Provate con la vostra funzione a fare questo:

Print("iBarShift1 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:01')));
Print("iBarShift0 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:00')));

La vostra funzione darà valori diversi, ma l'ora è la stessa. Quindi non funziona.

In MQL4 la funzione nativa dà gli stessi valori.

Anche iBarShift3 dà gli stessi valori, ma per i periodi D1, W1 e MN1 è ugualmente sbagliato. Devo modificare un po' il codice. So come farlo e lo farò più tardi quando avrò abbastanza tempo.

Altrimenti, queste funzioni si comportano allo stesso modo, solo che iBarShift3 è molto più veloce.


ZS: Mi dispiace. La vostra funzione funziona correttamente. Ho inserito il codice sbagliato. È il mio che non si comporta correttamente sui periodi D1, W1 e MN1. Lo aggiusterò oggi stesso.


 
Vitaly Muzichenko :

Grazie.