Indicatori: Heikin Ashi Lines

Heikin Ashi Lines:

Un modo più semplice per visualizzare l'Heikin Ashi

Heikin Ashi Lines

Author: FMIC

   // Definizione delle macro di sequenziamento del ciclo OnCalculate
      #ifdef __MQL4__   // per MQL4 (come serie)
         #define  MOnCalcNext(  _index          ) ( _index--             )
         #define  MOnCalcBack(  _index, _offset ) ( _index + _offset     )
         #define  MOnCalcCheck( _index          ) ( _index >= 0          )
         #define  MOnCalcValid( _index          ) ( _index < rates_total )
         #define  MOnCalcStart \
            ( rates_total - ( prev_calculated < 1 ? 1 : prev_calculated ) )
      #else             // per MQL5 (come non-serie)
         #define  MOnCalcNext(  _index          ) ( _index++             )
         #define  MOnCalcBack(  _index, _offset ) ( _index - _offset     )
         #define  MOnCalcCheck( _index          ) ( _index < rates_total )
         #define  MOnCalcValid( _index          ) ( _index >= 0          )
         #define  MOnCalcStart \
            ( prev_calculated < 1 ? 0 : prev_calculated - 1 )
      #endif

Perché non usi ArraySetAsSeries()? In questo modo sarebbe possibile utilizzare le stesse macro per entrambe le versioni del linguaggio.

Non sto criticando, sono solo curioso.

Immagino che per te sia semplicemente più comodo così.

Incredibilmente
[Eliminato]
Vladislav Boyko #: Perché non usi ArraySetAsSeries()? Questo permetterebbe di utilizzare le stesse macro per entrambe le versioni del linguaggio. Non è una critica, sono solo curioso. Immagino che per te sia semplicemente più comodo.

Ho scelto di utilizzare le macro in modo che la decisione avvenga in fase di compilazione, anziché con ArraySetAsSeries(), che opera in fase di esecuzione, per ottenere una maggiore efficienza.

In questo caso, dato che si tratta di un indicatore molto semplice, non fa davvero molta differenza, ma per indicatori molto più complessi può farne.

[Eliminato]
Roberto Jacobs #: Incredibile

Mi scuso, ma non ho capito bene il significato del tuo post. Potresti spiegarti meglio?

Fernando Carreiro #:

Ho scelto di utilizzare le macro in modo che la decisione venga presa in fase di compilazione anziché tramite ArraySetAsSeries(), che opera in fase di esecuzione, per ottenere una maggiore efficienza.

In questo caso, trattandosi di un indicatore molto semplice, la differenza è praticamente irrilevante, ma per indicatori molto più complessi può fare la differenza.

Grazie!

Grazie Fernando, è stato davvero utile per un principiante. Grazie anche per il consiglio sui progetti pubblici. Non sapevo nemmeno che esistesse. In qualche modo mi era sfuggita quella funzione. Spero di trovare qualche guida su come utilizzarla.
[Eliminato]
Vladislav Boyko #: Grazie!
linfo2 #: Grazie Fernando, è stato incredibilmente utile per un principiante. Grazie anche per il consiglio sui progetti pubblici. Non sapevo nemmeno che esistesse. In qualche modo mi era sfuggita questa funzionalità. Spero di trovare della documentazione su come utilizzarla.

Prego!

Stavo cercando di capire come vengono effettuati i calcoli per l’Heiken-Ashi e, per quanto riguarda i massimi, spiegano che si tratta del “valore massimo tra il massimo, l’apertura o la chiusura del periodo corrente”, mentre “per i minimi” si tratta del “valore minimo tra il minimo, l’apertura o la chiusura del periodo corrente”. Non equivale forse a dire che i massimi e i minimi coincidono con le barre? Se è così, la tua idea di visualizzarli come linee è semplice e geniale: si può cogliere a prima vista il trend dell’Heiken-Ashi senza rinunciare alle normali candele.

Traduzione automatica applicata dal moderatore. Sul forum in inglese, si prega di scrivere in inglese.

[Eliminato]
@Daniel Eduardo San Martin #: Non equivale forse a dire che i massimi e i minimi coincidono con le barre?

Nella maggior parte dei casi sì, ma quando l'apertura Heikin Ashi (media mobile) si trova al di fuori del massimo/minimo della candela normale, allora quella diventa il massimo/minimo Heikin Ashi.

Fernando Carreiro #:

Mi scuso, ma non ho capito bene il significato del tuo post. Potresti spiegarti meglio?

Trovo che il tuo codice sia davvero ottimo e potente. Non ho scaricato il file mq5.
Con il codice per MT4 che hai condiviso, mi è bastato copiarlo e incollarlo in MetaEditor MQL5 e salvarlo come mq5, e tutto funziona alla perfezione.