La función oncalculate vuelve a ejecutar toda mi lógica cada vez que cambio el período de tiempo del gráfico.

 

Hola a todos, estoy creando mi primer indicador personalizado pero tengo un problema ¿Cómo hago para que la función no tenga que volver a ejecutarse cada vez que recibe nuevas cotizaciones porque cambia el marco de tiempo del gráfico?

¿Alguien puede ayudarme?

Traducción automática aplicada por el moderador.

The oncalculate function re-executes all my logic every time I change the chart timeframe.

Hello everyone, im making my first custom indicator but i have a problem How do I get the function to not have to be re-executed every time it receives new quotes because the chart timeframe changes?

somebody can help me?

Auto-translation applied by moderator

 
Efren Hernandez Partida:

Cuando cambias de marco temporal el terminal siempre obliga a recalcular todo el indicador, y eso no se puede evitar.

Lo que sí puedes hacer es organizar tu función de cálculo para que, en condiciones normales (cuando solo entran nuevos ticks o se forma una vela), procese solo lo necesario en lugar de recorrer todo el historial.

Para ello se utiliza el valor que el propio sistema pasa a la función (generalmente llamado prev_calculated), que indica cuántas barras ya estaban calculadas. Si ese valor es 0, significa que debes recalcular todo; si es mayor que 0, basta con actualizar desde prev_calculated - 1.

De esta forma el indicador no repite trabajo innecesario.

Nota: Este es el foro en español, por lo que debes comunicarte en dicho idioma.