Indicadores: ColorZerolagMomentumOSMA

 

ColorZerolagMomentumOSMA:

Velocidad suavizada de cambio del indicador ColorZerolagMomentum, representada por un histograma de color, que permite determinar con bastante precisión la dirección de la tendencia actual.

Fig. 1. ColorZerolagMomentumOSMA

Autor: Nikolay Kositsin

[Eliminado]  

Hola, me gustaría discutir este punto. En este indicador tiene una comprobación:

if(BarsCalculated(Momentum1_Handle)<rates_total
      || BarsCalculated(Momentum2_Handle)<rates_total
      || BarsCalculated(Momentum3_Handle)<rates_total
      || BarsCalculated(Momentum4_Handle)<rates_total
      || BarsCalculated(Momentum5_Handle)<rates_total
      || rates_total<min_rates_total)
      return(0);

Resulta que si el número de barras de uno de los indicadores utilizados es menor que rates_total, el indicador se recalcula completamente (porque return(0)). ¿No sería mejor poner todas las comprobaciones de igualdad con rates_total por separado y, en caso de no coincidencia, return(prev_calculated)? Porque entonces sólo se recalculará la última barra (cuando BarsCalculated() == rates_total) y no todo el histórico.

Gracias de antemano por la respuesta.

 
Tapochun:

Hola, me gustaría discutir este punto. En este indicador tiene una comprobación:

Resulta que si el número de barras de uno de los indicadores utilizados es menor que rates_total, el indicador se recalcula completamente (porque return(0)). ¿No sería mejor poner todas las comprobaciones de igualdad con rates_total por separado y, en caso de no coincidencia, return(prev_calculated)? Porque entonces sólo se recalculará la última barra (cuando BarsCalculated() == rates_total) y no todo el histórico.

Gracias de antemano por tu respuesta.

Sí, en principio tu lógica es bastante razonable. Una vez intenté hacerlo así, pero algo no funcionó, pero no recuerdo exactamente qué fue. Sólo recuerdo que pillé el indicador en esta variante de código en algún fallo y decidí dejarlo como estaba.