כיצד מחושבת התנודתיות במסנן?

התנודתיות מודדת את וריאציות המחירים של מכשיר פיננסי לאורך פרק זמן מוגדר. ככל שטווח המחירים רחב יותר, כך התנודתיות גבוהה יותר. ככל שטווח המחירים יהיה צר יותר כך התנודתיות נמוכה יותר.

להלן נוסחת התנודתיות בה אנו משתמשים לחישובים שלנו (שבועי, חודשי ויומי):

//@version=4
study("volatility")fastSearchN(xs, x) => // xs - sorted, ascendingmax_bars_back(xs, 366)    left  = 0    right = min(bar_index,366)    mid = 0if xs < x        0elsefor i = 0 to 9            mid := ceil((left+right) / 2)if left == right                breakelse if xs[mid] < x                right := mid                continueelse if xs[mid] > x                left := mid                continueelsebreak        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 := 365if 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")
Java

הערה: ערכי סקריפט זה שונים בהיסטוריה ובזמן אמת בגלל זמן, ראה https://www.tradingview.com/pine-script-docs/en/v4/essential/Indicator_repainting.html

לתצוגה חזותית, תוכל להוסיף סקריפט זה לגרף שלך באמצעות עורך הפיין באמצעות מסגרת הזמן היומית של הגרף. מתנד יופיע בגרף, ויוצגו ערכים עבור כל סוג של תנודתיות.