Nel mio precedente codice, ho utilizzato il tempo per rilevare una nuova candela. Oggi, invece, ci concentreremo sul conteggio delle barre per individuare una nuova candela. Questo metodo è molto più leggero e veloce rispetto all'approccio basato sul tempo.
Vediamo insieme come implementarlo:
- Dichiarare le variabili con il tipo di dato intero per memorizzare il conteggio delle barre.
- Assegnare il conteggio delle barre alla variabile BarsTotal_OnInt durante l'inizializzazione.
- Utilizzare la funzione iBars(); per assegnare il conteggio delle barre alla variabile BarsTotal_OnTick nel grafico live. Questa variabile viene aggiornata ad ogni tick.
- Utilizzare commenti e avvisi per verificare l'accuratezza del codice.

Ed ecco il codice:
int BarsTotal_OnInt; int BarsTotal_OnTick; //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'Expert | //+------------------------------------------------------------------+ int OnInit() { BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // Assegna il totale delle barre all'inizializzazione return(INIT_SUCCEEDED); } void OnTick() // Funzione OnTick { BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // Memorizza l'ammontare più recente if(BarsTotal_OnTick > BarsTotal_OnInt) // È arrivata una nuova candela { BarsTotal_OnInt = BarsTotal_OnTick; // Aggiorna la cronologia. Alert("È arrivata una nuova candela"); Comment("Conteggio barre in cronologia -: ", BarsTotal_OnInt, "\n", "Conteggio barre in live -: ", BarsTotal_OnTick); // Il tuo codice va qui. -------------------------- // Puoi aggiornare un "flag" / variabile da utilizzare anche in seguito. } }
Commento 0