Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1754
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
La situazione è la seguente: la variabile X memorizza l'indice della barra nella storia, sappiamo che quando appare una nuova barra, c'è uno spostamento, e quindi X punta già a una barra diversa. Come risolvere il problema? L'idea: ad ogni nuova barra aumentiamo il contatore (count++) e lo aggiungiamo a X. Così X punterà sempre alla stessa barra indipendentemente dall'offset. Ma c'è un problema - quando l'EA viene inizializzato la prima barra corrente non dovrebbe essere presa in considerazione. Penso che possa essere facilmente risolto se il conteggio è inizialmente uguale a -1. Cioè, sulla barra corrente dopo il conteggio dell'incremento sarà "0", e sulla prossima nuova barra (quando il primo spostamento di 1 barra è avvenuto dopo l'inizializzazione) sarà "1". Cosa ne pensate? Forse sto pensando nel posto sbagliato?
Se è un indicatore, è sufficiente
a tutti gli array e i buffer dell'indicatore utilizzato.
Allora la barra zero diventerà rates_total-1
La situazione è la seguente: la variabile X memorizza l'indice della barra nella storia, sappiamo che quando appare una nuova barra, c'è uno spostamento, e quindi X punta già a una barra diversa. Come risolvere il problema? L'idea: ad ogni nuova barra aumentiamo il contatore (count++) e lo aggiungiamo a X. Così X punterà sempre alla stessa barra indipendentemente dall'offset. Ma c'è un problema - quando l'EA viene inizializzato la prima barra corrente non dovrebbe essere presa in considerazione. Penso che possa essere facilmente risolto se il conteggio è inizialmente uguale a -1. Cioè, sulla barra corrente dopo il conteggio dell'incremento sarà "0", e sulla prossima nuova barra (quando il primo spostamento di 1 barra è avvenuto dopo l'inizializzazione) sarà "1". Cosa ne pensate? Forse sto pensando nel posto sbagliato?
Perché prendersi tutto questo disturbo?
È più facile per me)
Ma il processore è più pesante...
Ma il processore è più pesante...
La situazione è la seguente: la variabile X memorizza l'indice della barra nella storia, e sappiamo che quando appare una nuova barra, questa viene spostata e quindi X punta già a un'altra barra. Come risolvere il problema? L'idea: ad ogni nuova barra aumentiamo il contatore (count++) e lo aggiungiamo a X. Così X punterà sempre alla stessa barra indipendentemente dall'offset. Ma c'è un problema - quando l'EA viene inizializzato la prima barra corrente non dovrebbe essere presa in considerazione. Penso che possa essere facilmente risolto se il conteggio è inizialmente uguale a -1. Cioè, sulla barra corrente dopo il conteggio dell'incremento sarà "0", e sulla prossima nuova barra (quando il primo spostamento di 1 barra è avvenuto dopo l'inizializzazione) sarà "1". Cosa ne pensate? Forse sto pensando nel posto sbagliato?
Non c'è. Non c'è niente in X quando si carica EA/indicatore se è all'interno del terminale, a meno che non sia una variabile intu o extern o globale fuori dal terminale, quindi qualcosa deve essere scritto prima lì. E poi calcoliamo semplicemente i cambiamenti del numero totale di barre (la nuova apparizione delle barre deve essere considerata).
datetime BarTime;
Saluti. Puoi darmi un suggerimento? Come in mt5 all'inizializzazione o al tick definire i test?
Finora ho trovato solo OnTester(), che è chiamato appena prima della chiamata di OnDeinit().
@Valeriy Yastremskiy L'indice è posto in X ancora in OnInit(). Il mio codice è così:
La condizione con FlagNewBar mi sembra ridondante.