Indicadores: Heikin Ashi Lines

 

Heikin Ashi Lines:

Una forma más sencilla de mostrar Heikin Ashi

Heikin Ashi Lines

Author: FMIC

 
   // Definir macros de secuenciación del bucle OnCalculate
      #ifdef __MQL4__   // para MQL4 (como series)
         #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             // para MQL5 (como no 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

¿Por qué no utilizas ArraySetAsSeries()? Esto permitiría usar las mismas macros para ambas versiones del lenguaje.

No es una crítica, solo es por curiosidad.

Supongo que simplemente te resulta más cómodo.

 
Increíblemente
[Eliminado]  
Vladislav Boyko #: ¿Por qué no utilizas ArraySetAsSeries()? Esto permitiría usar las mismas macros para ambas versiones del lenguaje. No es una crítica, solo es por curiosidad. Supongo que simplemente te resulta más cómodo.

He optado por utilizar macros para que la decisión se tome en tiempo de compilación, en lugar de ArraySetAsSeries(), que se ejecuta en tiempo de ejecución, en aras de una mayor eficiencia.

En este caso, dado que se trata de un indicador muy sencillo, la diferencia es prácticamente insignificante, pero en el caso de indicadores mucho más complejos, sí que puede haberla.

[Eliminado]  
Roberto Jacobs #: Increíblemente

Lo siento, pero no he entendido muy bien el sentido de tu mensaje. ¿Podrías explicarlo con más detalle?

 
Fernando Carreiro #:

He optado por utilizar macros para que la decisión se tome en tiempo de compilación, en lugar de utilizar ArraySetAsSeries(), que se ejecuta en tiempo de ejecución, con el fin de ganar algo de eficiencia.

En este caso, dado que se trata de un indicador muy sencillo, la diferencia es prácticamente inapreciable, pero en el caso de indicadores mucho más complejos, sí que puede suponer una diferencia.

¡Gracias!

 
Gracias, Fernando, me ha sido de gran ayuda como principiante. Gracias también por el consejo sobre los proyectos públicos. Ni siquiera sabía que existía. Por alguna razón, se me había pasado por alto esa función. Espero encontrar alguna documentación sobre cómo utilizarla.
[Eliminado]  
Vladislav Boyko #: ¡Gracias!
linfo2 #: Gracias , Fernando, me ha sido de gran ayuda para ser un principiante. Gracias también por el consejo sobre los proyectos públicos. Ni siquiera sabía que existía. Por alguna razón, se me había pasado por alto esa función. Espero encontrar alguna documentación sobre cómo utilizarla.

¡De nada!

 

Estaba buscando cómo se realizan los cálculos para el Heiken-Ashi y, en cuanto a los máximos, explican que es «el valor máximo entre el máximo, la apertura o el cierre del período actual», y «para los mínimos», el valor mínimo entre el mínimo, la apertura o el cierre del período actual. ¿No es eso lo mismo que decir que los máximos y mínimos coinciden con las barras? Si es así, tu idea de mostrarlos como líneas es sencilla y brillante: se puede ver la tendencia del Heiken-Ashi a primera vista sin renunciar a las velas normales.

Traducción automática aplicada por el moderador. En el foro en inglés, por favor, escribe en inglés.

[Eliminado]  
@Daniel Eduardo San Martin #: ¿No es eso lo mismo que decir que los máximos y mínimos coinciden con las barras?

La mayoría de las veces sí, pero cuando la apertura de Heikin Ashi (media móvil) se sitúa más allá del máximo o mínimo de la vela normal, entonces ese valor pasa a ser el máximo o mínimo de Heikin Ashi.

 
Fernando Carreiro #:

Lo siento, pero no he entendido muy bien el sentido de tu mensaje. ¿Podrías explicarlo con más detalle?

Creo que tu código es muy bueno y potente. No me he descargado el mq5.
Con el código para MT4 que has compartido, solo tengo que copiarlo y pegarlo en MetaEditor MQL5 y guardarlo como mq5, y todo funciona a la perfección.