"กลยุทธ์ที่แข็งแกร่งที่สุด คือกลยุทธ์ที่รอดพ้นจากสถานการณ์ที่เลวร้ายที่สุดได้"
เรียนรู้การทำ Stress Test ประเมินความเสี่ยงเชิงลึกของกลยุทธ์เมื่อต้องเจอกับเหตุการณ์ที่ไม่คาดฝัน (Black Swan)
หายนะของโมเดลที่ดู "สมบูรณ์แบบ"
Stress Testing และ Black Swan
การจำลองข้อมูลแบบสุ่ม (Randomness)
สร้าง Stress Test Dashboard
ประเมินความเปราะบางของพอร์ต
ไม่มีใครทำนายอนาคตได้
ทำไมผล Backtest สวยหรู ถึงมักจะพังเมื่อเจอตลาดจริง?
โมเดลนี้ชนะตลาดมาตลอด 10 ปีที่ผ่านมา กราฟพุ่งขึ้นสวยงาม ไม่มีทางเจ๊ง!
จู่ๆ ก็มีโรคระบาดระดับโลกเกิดขึ้น! (เหตุการณ์ที่ไม่เคยมีในข้อมูลอดีต) โมเดลรับมือไม่ทัน พอร์ตพังพินาศ
การจำลองสถานการณ์ตลาดที่รุนแรงกว่าปกติ เพื่อดูว่าพอร์ตฟอลิโอหรือกลยุทธ์ของเราจะ "พัง" หรือไม่ เช่น ตลาดหุ้นตก 50% รวดเดียว
เหตุการณ์ที่คาดไม่ถึงอย่างรุนแรง มีโอกาสเกิดน้อยมาก (Rare Event) แต่เมื่อเกิดแล้วจะส่งผลกระทบมหาศาล และเรามักจะหาเหตุผลอธิบายได้หลังเกิดไปแล้ว
สร้างไฟล์ lesson7_intro.py ลองใช้ Numpy จำลองความผันผวนแบบสุ่ม
สร้างไฟล์ stress_dash.py สร้างส่วนรับค่าพารามิเตอร์สำหรับทดสอบความเครียด
พิมพ์ต่อ: จำลองผลตอบแทนตลาด 12 เดือน แบบมีทั้งขึ้นและลง
พิมพ์ต่อ: ตอนนี้เราจะเอาพารามิเตอร์ความเครียดที่ปรับใน Sidebar มาใส่ในโมเดล
พิมพ์ต่อ: เราอยากรู้ว่าจุดต่ำสุดของพอร์ต Stressed Portfolio ลงไปลึกแค่ไหน
พิมพ์โค้ดชุดสุดท้าย: สรุปตัวเลขเพื่อตัดสินความแข็งแกร่งของพอร์ต
เราจะใช้ Stress Test เพื่อปรับปรุงกลยุทธ์ได้อย่างไร?
ถ้า Stress Test บอกว่าพอร์ตเราจะพังเมื่อตลาดหุ้นตก 40% เราก็ต้องกลับไปที่ Asset Allocation (บทที่ 5) เพื่อลดสัดส่วนหุ้นลง หรือหา Tactical Rule (บทที่ 6) ที่ไวขึ้น
อย่างน้อยถ้าวิกฤตเกิดขึ้นจริง เราก็ "รู้ล่วงหน้า" แล้วว่าพอร์ตเราจะติดลบได้มากสุดแค่ไหน ทำให้เราไม่ตกใจกลัว (Panic Sell) เหมือนนาย A ในเคสก่อนๆ
"โมเดลทางการเงินทุกอัน 'ผิด' หมด
แต่บางอันก็มีประโยชน์"
(All models are wrong, but some are useful)
- George E. P. Box
"เราใช้โค้ดและข้อมูล ไม่ใช่เพื่อเดาว่าพรุ่งนี้หุ้นจะขึ้นหรือลง
แต่เพื่อสร้างพอร์ตที่พร้อมรับมือกับทุกสถานการณ์!"