การใช้ออปชันเพื่อป้องกันความเสี่ยง
สมมติว่าคุณมีพอร์ตการลงทุนที่มีสินทรัพย์หนึ่งรายการ คือ IBM จะป้องกันความเสี่ยงของพอร์ตด้วยวิธี delta hedging โดยใช้ European put option บน IBM
ขั้นแรก ให้คำนวณมูลค่า European put option โดยใช้สูตรราคาออปชัน Black-Scholes โดยกำหนดราคาใช้สิทธิ์ X เท่ากับ 80 และเวลาจนครบกำหนด T เท่ากับ 1/2 ปี อัตราดอกเบี้ยไร้ความเสี่ยงอยู่ที่ 2% และราคา spot S เริ่มต้น ที่ 70
จากนั้น สร้าง delta hedge โดยคำนวณ delta ของออปชันด้วยฟังก์ชัน bs_delta() แล้วใช้ค่านี้ป้องกันความเสี่ยงจากการเปลี่ยนแปลงของราคาหุ้นไปที่ 69.5 ผลลัพธ์ที่ได้คือพอร์ตที่ delta neutral ซึ่งประกอบด้วยทั้งออปชันและหุ้น
ฟังก์ชัน black_scholes() และ bs_delta() พร้อมใช้งานใน workspace แล้ว
ดูซอร์สโค้ดของฟังก์ชัน black_scholes() และ bs_delta() ได้ ที่นี่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การบริหารความเสี่ยงเชิงปริมาณด้วย Python
คำแนะนำการฝึกหัด
- คำนวณราคาของ European put option ที่ราคา spot 70
- หาค่า
deltaของออปชันโดยใช้ฟังก์ชันbs_delta()ที่ราคา spot 70 - คำนวณ
value_changeของออปชันเมื่อราคา spot ลดลงเหลือ 69.5 - แสดงให้เห็นว่าผลรวมของการเปลี่ยนแปลงราคา spot และ
value_changeที่ถ่วงน้ำหนักด้วย 1/deltaมีค่า (ใกล้เคียง) ศูนย์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Compute the annualized standard deviation of `IBM` returns
sigma = np.sqrt(252) * IBM_returns.std()
# Compute the Black-Scholes value at IBM spot price 70
value = black_scholes(S = ____, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put")
# Find the delta of the option at IBM spot price 70
delta = bs_delta(S = ____, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put")
# Find the option value change when the price of IBM falls to 69.5
value_change = ____(S = 69.5, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put") - ____
print( (69.5 - 70) + (1/delta) * ____ )