ความผันผวนจะวัดความผันแปรของราคาของเครื่องมือทางการเงินในช่วงเวลาที่กำหนด ยิ่งช่วงราคากว้าง ความผันผวนก็จะยิ่งสูงขึ้น ยิ่งช่วงราคาแคบลง ความผันผวนก็จะยิ่งลดลง
นี่คือสูตรความผันผวนที่เราใช้สำหรับการคำนวณของเรา (รายสัปดาห์ รายเดือน และรายวัน):
//@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 mid month1 = 30month_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 = 7week_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)// 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 s plot(volatility(countOfBarsWeekAgoThisBar), title="Volatility.W")plot(volatility(countOfBars1MonthAgoThisBar),title="Volatility.M")plot(tr(true)*100/abs(low), title="Volatility.D")
Java
หมายเหตุ: ค่าสคริปต์นี้แตกต่างกันในข้อมูลในอดีตและข้อมูลเรียลไทม์เนื่องจาก timenow โปรดดู  https://www.tradingview.com/pine-script-docs/en/v4/essential/Indicator_repainting.html
สำหรับการแสดงภาพ คุณสามารถเพิ่มสคริปต์นี้ลงในแผนภูมิของคุณผ่าน Pine Editor โดยใช้กรอบเวลารายวันของแผนภูมิ อินดิเคเตอร์จะปรากฏบนแผนภูมิ ซึ่งการพล็อตจะแสดงค่าความผันผวนในแต่ละประเภท