Home Indicatore tecnico Post

Dimensione delle Candele: Indicatore per MetaTrader 5

Allegato
18269.zip (2.74 KB, Scarica 0 volte)

Oggi parliamo di un indicatore fondamentale per i trader: la dimensione delle candele. Questo indicatore calcola la grandezza della barra utilizzando una formula semplice: "minuendo" meno "deduzione". I termini "minuendo" e "deduzione" possono essere uno dei quattro valori: apertura, massimo, minimo o chiusura.

Puoi limitare il numero di barre per cui viene visualizzata la dimensione nei parametri di input (InpNumberOfBars). Questo numero rimane costante anche quando si apre una nuova barra.


Sincronizzazione delle barre e oggetti grafici

Gestione degli oggetti grafici

I nomi degli oggetti vengono memorizzati nell'array m_arr_names[], la cui dimensione corrisponde a InpNumberOfBars. Ma perché usiamo un array invece di una semplice variabile stringa? È una sorta di riserva per il futuro.

Formazione del nome dell'oggetto

Il nome dell'oggetto associato alla barra 'index' si forma secondo la seguente formula:

name[index] = m_prefix + ("high_" o "low_") + TimeToString(time[index])

Quando è necessario eliminare tutti gli oggetti

Gli indicatori vengono scaricati nei seguenti casi:

  • rimozione dell'indicatore dal grafico;
  • chiusura del terminale (se l'indicatore era attivo sul grafico);
  • caricamento di un template, se l'indicatore è attivo su quel grafico;
  • chiusura del grafico su cui l'indicatore era attivo;
  • cambio del profilo, se l'indicatore era attivo su uno dei grafici del profilo precedente;
  • cambio del simbolo e/o del timeframe del grafico su cui l'indicatore è attivo;
  • modifica degli input dell'indicatore.

Per questo motivo, eliminiamo completamente gli oggetti grafici creati:

  • in OnDeinit()
  • in OnInit() (giusto per sicurezza, nel caso ci siano oggetti orfani non eliminati)
  • in OnCalculate(), quando prev_calculated==0.

Inoltre, puliamo l'array m_arr_names[]:

  • In OnCalculate(), quando prev_calculated==0 o quando prev_calculated!=rates_total

Mantenere un numero costante di oggetti grafici:

Quando appare una nuova barra, la condizione prev_calculated!=rates_total si attiva. In questo caso, tutti gli oggetti vengono eliminati e l'array m_arr_names[] viene svuotato.


Post correlati

Commento (0)