วัด 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 ต่อ session | Daily standard deviation |
|---|---|---|
| Parkinson | 0.0013785 | 3.71% |
| Garman–Klass | 0.0015566 | 3.95% |
| Rogers–Satchell | 0.0015458 | 3.93% |
| Yang–Zhang | 0.0018646 | 4.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 ข้อ
คำถาม 01
ตัวประมาณ Parkinson ใช้ราคาใดบ้าง?
เลือกคำตอบเพื่อดูคำอธิบาย
อภิธานศัพท์ออปชัน
Volatility calculated from price changes that occurred under a stated return, sampling-window, and annualization rule; different conventions can produce different values.
อ่านคู่มือฉบับละเอียดGARCHA time-series model that updates conditional variance from past squared shocks and prior variance; it models volatility persistence, not return direction.
อ่านคู่มือฉบับละเอียดVarianceThe average squared deviation of returns from their mean; its square root is standard deviation, so variance aggregates differently from volatility percentages.
อ่านคู่มือฉบับละเอียด