ค่าความผันผวนคำนวณอย่างไรใน Screener?

ความผันผวนจะวัดความผันแปรของราคาของเครื่องมือทางการเงินในช่วงเวลาที่กำหนด ยิ่งช่วงราคากว้าง ความผันผวนก็จะยิ่งสูงขึ้น ยิ่งช่วงราคาแคบลง ความผันผวนก็จะยิ่งลดลง

นี่คือสูตรความผันผวนที่เราใช้สำหรับการคำนวณของเรา (รายสัปดาห์ รายเดือน และรายวัน):

//@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 โดยใช้กรอบเวลารายวันของแผนภูมิ อินดิเคเตอร์จะปรากฏบนแผนภูมิ ซึ่งการพล็อตจะแสดงค่าความผันผวนในแต่ละประเภท