Skip to content
คู่มือออปชันทั้งหมด
การวัด historical volatilityอ่าน 10 นาที

วัด volatility จาก OHLC: เปรียบเทียบ Parkinson, Garman–Klass, Rogers–Satchell และ Yang–Zhang

เปรียบเทียบสูตรประมาณ variance จาก OHLC สมมติฐานเรื่อง drift และ overnight gap พร้อมตัวอย่างคำนวณสมมติจากสาม session

ในคู่มือนี้OHLC estimator วัดอะไร

สรุปสั้น

OHLC estimator ใช้ราคาเปิด สูงสุด ต่ำสุด และปิดเพื่อวัด variance ที่เกิดขึ้นแล้วในแต่ละ session สูตร Parkinson, Garman–Klass, Rogers–Satchell และ Yang–Zhang ใช้ข้อมูลและสมมติฐานไม่เหมือนกัน จึงเป็นการวัดย้อนหลัง ไม่ใช่การพยากรณ์ทิศทางหรือ volatility ในอนาคต

OHLC estimator วัดอะไร

OHLC ย่อมาจาก open, high, low และ close หรือราคาเปิด สูงสุด ต่ำสุด และปิดของแท่งราคาเดียวกัน หากกำหนดขอบเขต session ให้คงที่ high และ low จะบอกข้อมูลระหว่างทางที่ราคา close สองจุดเพียงอย่างเดียวมองไม่เห็น

สูตรต่อไปนี้ประมาณ variance ของ log return ต่อแท่งหรือต่อ session ถอดรากที่สองของ variance เพื่อได้ standard deviation ของช่วงนั้น การ annualize ต้องเลือกจำนวนช่วงให้ตรงกับข้อมูลและระบุสมมติฐาน ไม่ได้ทำให้ค่าจากอดีตกลายเป็น forecast ดู วิธีคำนวณ realized volatility เพื่อเปรียบเทียบกับแบบ close-to-close

กำหนดราคาและ session ให้ตรงกันก่อน

สำหรับแท่งที่ i ให้ Oᵢ เป็นราคาเปิด Hᵢ เป็นราคาสูงสุด Lᵢ เป็นราคาต่ำสุด และ Cᵢ เป็นราคาปิด ทั้งสี่ค่าต้องอยู่ใน session และชุดราคาที่นิยามเหมือนกัน โดยทั่วไป Hᵢ ≥ max(Oᵢ,Cᵢ) และ Lᵢ ≤ min(Oᵢ,Cᵢ)

กำหนดเขตเวลา ชั่วโมง session ความถี่แท่ง แหล่งราคา การปรับ split และ dividend รวมถึงวิธีจัดการข้อมูลขาดหายและรายการซื้อขายผิดปกติ ถ้าผู้ให้บริการกำหนดเวลาของแท่งรายวันต่างกัน high และ low ก็ครอบคลุมช่วงเวลาคนละช่วง

สูตรใช้ natural log ของอัตราส่วนราคาบวก การนำ close ที่ปรับแล้วไปจับคู่กับ high หรือ low ที่ยังไม่ปรับอาจสร้างการเคลื่อนไหวปลอม และราคา print ผิดเพียงรายการเดียวอาจทำให้ range กว้างขึ้นมาก

แท่งเทียนสามแท่งที่ไม่มีป้ายกำกับ มีลำตัวและไส้เทียนสูงต่ำต่างกัน พร้อมเส้นบอกช่วงจาง ๆ
ภาพแนวคิดแสดงลำตัวแท่งเทียนภายในช่วงราคาสูงสุดและต่ำสุด รูปทรงนี้ไม่ใช่ข้อมูลตลาดจริง

ตัวประมาณสามแบบใช้เส้นทางภายใน session

ในสูตรต่อไปนี้ mean คือค่าเฉลี่ยของแท่ง n แท่ง ตัวประมาณ Parkinson ใช้เฉพาะ high และ low:

σ²P = mean[(ln(Hᵢ/Lᵢ))²] ÷ (4 ln 2)

สูตรนี้ตั้งอยู่บนแบบจำลองเส้นทางต่อเนื่องที่ไม่มี drift และไม่ได้บวก gap จาก close ก่อนหน้าไปยัง open ปัจจุบันเป็นส่วนแยก ดู [งานของ Parkinson]({source:parkinson1980ExtremeValueVariance})

Garman–Klass ใช้ high, low, open และ close ภายใน session:

σ²GK = mean[0.5(ln(Hᵢ/Lᵢ))² − (2 ln 2 − 1)(ln(Cᵢ/Oᵢ))²]

พจน์ open-to-close เพิ่มข้อมูลระหว่างแท่ง แต่ไม่ได้ทำให้สูตรนี้ดีที่สุดในทุกสถานการณ์ ประสิทธิภาพขึ้นกับแบบจำลองราคาและคุณภาพของแท่ง และสูตรนี้ไม่มีพจน์แยกสำหรับผลตอบแทนจาก close วันก่อนถึง open วันนี้ แบบจำลองดั้งเดิมยังสมมติว่าเส้นทางราคาเป็นแบบต่อเนื่องและมี drift เป็นศูนย์ ดู [งานของ Garman และ Klass]({source:garmanKlass1980OhlcVolatility})

Rogers–Satchell ก็ใช้ราคาทั้งสี่ค่า:

σ²RS = mean[ln(Hᵢ/Oᵢ)ln(Hᵢ/Cᵢ) + ln(Lᵢ/Oᵢ)ln(Lᵢ/Cᵢ)]

ภายใต้แบบจำลองของสูตรนี้ไม่ต้องตั้งสมมติฐานว่า drift เป็นศูนย์ แต่ยังวัดเฉพาะภายใน session และไม่ได้ใส่การเคลื่อนไหวจาก close ก่อนหน้าถึง open เป็นพจน์เฉพาะ ดู [งานของ Rogers และ Satchell]({source:rogersSatchell1991VarianceEstimator})

Yang–Zhang เพิ่ม overnight gap

คำนวณผลตอบแทน gap uᵢ = ln(Oᵢ/Cᵢ₋₁) และผลตอบแทนภายใน session cᵢ = ln(Cᵢ/Oᵢ) ก่อน แล้ว Yang–Zhang รวม sample variance ทั้งสองกับค่าเฉลี่ยของ RS:

σ²YZ = s²overnight + k s²open-close + (1 − k) mean(RS)

โดย s²overnight คือ sample variance ของ uᵢ, s²open-close คือ sample variance ของ cᵢ และ mean(RS) คือค่าเฉลี่ยของพจน์ Rogers–Satchell เมื่อ n คือจำนวน observation ในรูปแบบนี้ k = 0.34 ÷ [1.34 + (n + 1)/(n − 1)]

ในตลาดที่ซื้อขายตลอด 24/7 คำว่า overnight หมายถึงการเปลี่ยนแปลงจาก close ของ bar ก่อนหน้าถึง open ของ bar ปัจจุบันตามขอบเขต bar ที่เลือก ไม่ได้แปลว่าตลาดปิดกลางคืน ควรกำหนดขอบเขต bar ให้สม่ำเสมอ

ต่างจากสามสูตรที่คำนวณเฉพาะใน session ข้างต้น Yang–Zhang รวมการเคลื่อนไหวจาก close ก่อนหน้าถึง open ปัจจุบันด้วย แต่ยังต้องใช้ขอบเขตเวลาที่สอดคล้องและข้อมูลที่เชื่อถือได้ สูตรไม่สามารถแก้ข้อมูลที่ขาดหรือราคา quote ที่ผิดได้ ดู [งานของ Yang และ Zhang]({source:yangZhang2000DriftIndependentOhlcVolatility})

ตัวอย่างสมมติจากสาม session

สมมติ close ก่อนหน้าที่ 100 และสาม daily bar ที่ต่อเนื่องกันถัดมามี (O,H,L,C) = (100,104,98,103), (105,108,102,103) และ (101,106,99,105) ตัวเลขทั้งหมดสร้างขึ้นเพื่ออธิบายวิธีคำนวณเท่านั้น ไม่ใช่ข้อมูลตลาด

แทนราคาในสูตรและหาค่าเฉลี่ยของสาม session จะได้ variance และ standard deviation ต่อ session โดยประมาณดังนี้:

ตัวประมาณVariance ต่อ sessionDaily standard deviation
Parkinson0.00137853.71%
Garman–Klass0.00155663.95%
Rogers–Satchell0.00154583.93%
Yang–Zhang0.00186464.32%

สำหรับ Yang–Zhang มี n = 3 และ k ≈ 0.1018 ผลตอบแทนระหว่าง session คือประมาณ 0, ln(105/103) = 0.01923 และ ln(101/103) = −0.01961 โดยมี sample variance ที่ใช้ตัวหาร n−1 ประมาณ 0.0003771 ส่วนผลตอบแทน open-to-close คือ 0.02956, −0.01923 และ 0.03884 โดยมี sample variance ที่ใช้ตัวหาร n−1 เท่ากับ 0.0009731; mean RS เท่ากับ 0.0015458 เมื่อนำองค์ประกอบเหล่านี้แทนในสูตร จะได้ variance ของ Yang–Zhang 0.0018646 และ daily standard deviation 4.32% ตัวอย่างเล็กและเป็นข้อมูลสมมติ ไม่ได้ใช้พิสูจน์ความแม่นยำของวิธีใด

ค่าที่ต่างกันไม่ได้จัดอันดับวิธี

ค่าต่างกันเพราะสูตรใช้ข้อมูลและจัดการ drift กับ gap ต่างกัน ค่าที่สูงกว่าไม่ได้หมายความว่าสูตรพบ “volatility จริง” ส่วนค่าที่ต่ำกว่าไม่ได้พิสูจน์ว่าตลาดสงบกว่า เปรียบเทียบได้เมื่อชุดข้อมูล bar, session และ convention ของ variance เหมือนกัน

การ annualize variance มักคูณด้วยจำนวน period ต่อปีแล้วถอดรากที่สอง จำนวน period ความคงที่ของกระบวนการ autocorrelation และชั่วโมงที่รวมในแท่งล้วนมีผลต่อการตีความ บทความ volatility clustering และ GARCH อธิบายอีกโจทย์หนึ่ง คือ conditional variance ในอนาคตตามแบบจำลอง

เมื่อ range ทำให้เข้าใจผิดได้

แท่งรายวันซ่อนลำดับเหตุการณ์ภายใน session ส่วน high และ low อ่อนไหวต่อรายการซื้อขายที่ผิดหรือบางมาก การกำหนดชั่วโมง session ต่างกันอาจจัด market gap เดียวกันลงคนละแท่ง ไม่มีสูตรใดในสี่สูตรบอกทิศทางราคาและตัวมันเองไม่ใช่สัญญาณซื้อขาย

บันทึกนิยาม session ความถี่แท่ง กฎการปรับราคา ความยาวหน้าต่าง วิธี annualize และข้อมูลที่ขาดไว้กับผลลัพธ์ จากนั้นตรวจว่ารูปแบบราคาและสมมติฐานตรงกับเครื่องมือและคำถามหรือไม่ ค่า variance ในอดีตไม่รับประกันช่วงราคาที่จะเกิดขึ้นในอนาคต

คำถามที่พบบ่อย

Q1สูตร OHLC volatility แบบใดแม่นยำที่สุด?

ไม่มีสูตรที่ดีที่สุดสำหรับทุกกรณี Parkinson, Garman–Klass, Rogers–Satchell และ Yang–Zhang ใช้แบบจำลองและวิธีจัดการ overnight gap ต่างกัน จึงควรเริ่มจากเทียบสมมติฐานกับข้อมูล

Q2Yang–Zhang นับการเปลี่ยนแปลงข้ามคืนหรือไม่?

นับ สูตรรวม sample variance ของ log return จาก close ก่อนหน้าถึง open ปัจจุบัน พร้อมองค์ประกอบภายใน session

Q3OHLC estimator พยากรณ์ volatility ในอนาคตหรือไม่?

ไม่ สูตรประมาณ variance ของราคาที่สังเกตแล้ว volatility ในอนาคตยังไม่ทราบ และต้องใช้แบบจำลองพยากรณ์ที่แยกต่างหากและผ่านการทดสอบ

แหล่งข้อมูลและการอ่านเพิ่มเติม

รายงานปัญหา

เราจะเตรียมอีเมลพร้อมลิงก์บทความนี้ Mark จะได้รับรายงานเมื่อคุณส่งอีเมลแล้วเท่านั้น

ตรวจสอบอย่างรวดเร็ว

อ่านคู่มือจบแล้ว ลองตอบคำถาม 3 ข้อ

คำถาม 1 / 3

คำถาม 01

ตัวประมาณ Parkinson ใช้ราคาใดบ้าง?

เลือกคำตอบเพื่อดูคำอธิบาย

อภิธานศัพท์ออปชัน

การวัดความผันผวนวิธีคำนวณ realized volatility: ผลตอบแทน ช่วงเวลา และ annualizationเรียนรู้สูตร realized volatility เหตุใดนิยาม log return และ annualization จึงสำคัญ และทางเลือกในการสุ่มตัวอย่างเปลี่ยนการเปรียบเทียบกับ implied volatility อย่างไรพลวัตของความผันผวนอธิบายการกระจุกตัวของความผันผวนและ GARCHเรียนรู้ว่าเหตุใดผลตอบแทนที่สงบและผันผวนจึงกระจุกตัว GARCH อัปเดต conditional variance อย่างไร persistence หมายถึงอะไร และเหตุใดการคาดการณ์จึงไม่ใช่สัญญาณออปชันคณิตศาสตร์ของความผันผวนVariance เทียบกับ volatility: ความแตกต่างของรากที่สองที่เปลี่ยนการตั้งราคาเรียนรู้ว่าเหตุใด variance คือ volatility ยกกำลังสอง แต่ละตัวสะสมผ่านเวลาอย่างไร และเหตุใด VIX, variance swaps และความเสี่ยงออปชันจึงเปรียบเทียบด้วยค่าเฉลี่ยง่าย ๆ ไม่ได้ความผันผวนIV Rank คืออะไรคำนวณ IV Rank จากช่วง high-low ที่กำหนด เปรียบเทียบกับ IV Percentile และทดสอบว่าค่านี้หมายถึงอะไรสำหรับออปชันที่แน่นอนความผันผวนIV Percentile คืออะไรคำนวณ IV Percentile จากช่วง lookback ที่กำหนด เปรียบเทียบกับ IV Rank และทดสอบว่าค่านี้บอกอะไรได้และบอกอะไรไม่ได้เกี่ยวกับการตั้งราคาออปชัน