¿Cómo se calcula la volatilidad en el Screener?
La volatilidad mide las variaciones del precio de un instrumento financiero en un intervalo de tiempo determinado. Cuanto más amplio sea el rango de precios, mayor será la volatilidad.
A continuación puede ver la fórmula de cálculo de la volatilidad (disponible en formato diario, semanal y mensual):
//@version=4
study("volatility")
fastSearchN(xs, x) => // xs - sorted, ascending
max_bars_back(xs, 366)
left = 0
right = min(bar_index,366)
mid = 0
if xs < x
0
else
for i = 0 to 9
mid := ceil((left+right) / 2)
if left == right
break
else if xs[mid] < x
right := mid
continue
else if xs[mid] > x
left := mid
continue
else
break
mid
month1 = 30
month_ago = timenow - 1000*60*60*24*month1
month_ago_this_bar = time - 1000*60*60*24*month1
countOfBars1MonthAgo = fastSearchN(time, month_ago)
countOfBars1MonthAgoThisBar = fastSearchN(time, month_ago_this_bar)
week1 = 7
week_ago = timenow - 1000*60*60*24*week1
week_ago_this_bar = time - 1000*60*60*24*week1
countOfBarsWeekAgo = fastSearchN(time, week_ago)
countOfBarsWeekAgoThisBar = fastSearchN(time, week_ago_this_bar)
// volatility
volatility(bb) =>
bb2 = bb
if bar_index == 0
bb2 := 365
if bb2 == 0
na
else
s = sum((high-low)/abs(low) * 100 / bb2, bb2)
if bb == 0
na
else
s
plot(volatility(countOfBarsWeekAgoThisBar), title="Volatility.W")
plot(volatility(countOfBars1MonthAgoThisBar),title="Volatility.M")
plot(tr(true)*100/abs(low), title="Volatility.D")
P.D: Los valores de este script son diferentes en las barras históricas que en las barras en tiempo real debido al parámetro timenow. Para más información: https://es.tradingview.com/pine-script-docs/en/v4/essential/Indicator_repainting.html
Si desea una representación visual, puede añadir la secuencia de comandos a su gráfico copiándola y pegándola en el editor Pine. Al pasar a un marco temporal diario, debería ver aparecer un indicador en el gráfico con valores para cada tipo de volatilidad.