Comment la volatilité est-elle calculée dans le Screener ?
La volatilité mesure les variations de prix d'un instrument financier sur une période de temps donnée. Plus la fourchette de prix est large, plus la volatilité est élevée. Plus la fourchette de prix est étroite, plus la volatilité est faible.
Voici la formule de volatilité que nous utilisons pour nos calculs (hebdomadaire, mensuel et quotidien) :
//@version=4study("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 midmonth1 = 30month_ago = timenow - 1000*60*60*24*month1month_ago_this_bar = time - 1000*60*60*24*month1countOfBars1MonthAgo = fastSearchN(time, month_ago)countOfBars1MonthAgoThisBar = fastSearchN(time, month_ago_this_bar)week1 = 7week_ago = timenow - 1000*60*60*24*week1week_ago_this_bar = time - 1000*60*60*24*week1countOfBarsWeekAgo = fastSearchN(time, week_ago)countOfBarsWeekAgoThisBar = fastSearchN(time, week_ago_this_bar)// volatilityvolatility(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 splot(volatility(countOfBarsWeekAgoThisBar), title="Volatility.W")plot(volatility(countOfBars1MonthAgoThisBar),title="Volatility.M")plot(tr(true)*100/abs(low), title="Volatility.D")
JavaNote : les valeurs de ce script sont différentes en historique et en temps réel à cause du timenow, voir https://www.tradingview.com/pine-script-docs/en/v4/essential/Indicator_repainting.html
Pour un affichage visuel, vous pouvez ajouter ce script à votre graphique via l'éditeur Pine en utilisant l'horizon temporel quotidien du graphique. Un indicateur apparaîtra sur le graphique, dont les tracés montreront les valeurs pour chaque type de volatilité.