Quantable Podcast EP18 : นักลงทุนสาย Quant ไม่ควรคาดเดาตลาดแต่ควรคาดการณ์ด้วย Monte Carlo Simulation
ในสายของ Quantitative Investment นั้น นอกจากเรื่องของการพยายามหาสมมติฐานเพื่อสร้างกลยุทธ์ เพื่อหาปัจจัยที่มีนัยยะสำคัญในการลงทุนหรือแม้กระทั่งเพื่อสร้างระบบการลงทุนที่มีเงื่อนไขชัดเจนในการตัดสินใจทุกขั้นตอน ยังมีอีกส่วนหนึ่งที่มีความสำคัญมากไม่แก้กันก็คือเรื่องของ “การทดสอบระบบที่เราทดสอบ” นั่นเอง ว่ามีความยั่งยืนแค่ไหน มีประสิทธิภาพแค่ไหน และพอจะประมาณการได้แค่ไหนว่าจะยังดีต่อไปกับเหตุการณ์ที่ยังไม่เกิดขึ้นในอนาคต เพราะการตั้งสมมติฐาน การทดสอบทั้งหมดมาจากข้อมูลที่เคยเกิดขึ้นแล้วในอดีต ทำให้หลายคนมองย้อนอดีตและสร้างวิธีที่ดีที่สุดจากเหตุการณ์ในอดีต ที่อาจจะไม่เกิดขึ้นอีกแล้วในอนาคต เรียกกันเท่ ๆ ว่า Over Fitting ในบทความนี้เราจึงอยากจะนำเสนอแนวคิดการ Simulation ที่อาจจะไม่ดีที่สุดแต่ง่ายในการทำความเข้าใจและนำไปต่อยอดเองได้ในอนาคตครับ
การจําลองด้วยวิธี Monte Carlo (Monte Carlo Simulation)
Monte Carlo Simulation ถูกคิดค้นขึ้นจากนักคณิตศาสตร์ชื่อ Stanislaw Ulam (ชาวโปแลนด์) และผู้ช่วยที่ชื่อว่า John Von Neumann ซึ่งตอนนั้นทำงานเกี่ยวกับการวิเคราะห์นิวเคลียร์ที่ Los Alamos Lab สิ่งที่เขาต้องการคือการวิเคราะห์ปัญหาหนึ่ง ๆ ในตอนนั้นแต่ไม่สามารถใช้วิธีการคณิตศาสตร์ทั่วไป จึงพยายามคิดวิธีการใหม่ ๆ จนเป็นที่มาของ Monte Carlo
การจำลอง Monte Carlo ในการเทรดนั้นหมายถึงกระบวนการสุ่มลำดับของการเทรดเพื่อนำมาประเมินผลทางสถิติของระบบนั้น ๆ ว่าเป็นอย่างไร อธิบายเพิ่มเติมคือจะใช้วิธีสุ่มเอา Trade List มา Shuffle เรียงสับเปลี่ยนเป็น Sequence ใหม่ของการเทรด ทำแบบนี้ไปเรื่อย ๆ ให้มี Sample ของ Sequence ในแบบต่าง ๆ กัน ได้กว่า 1,000 -10,000 รูปแบบ
Monte Carlo ในบางมุมก็เหมือนกับเป็นการหา Worst Case โดยให้ความสำคัญทุกเหตุการณ์เท่ากันหมด ซึ่งมันจะช่วยตัดความคาดหวังแบบครั้งต่อครั้งกับเหตุการณ์ที่ไม่เป็นธรรมชาติออกไป เช่น กำไรเยอะ ๆ ในไม้เดียวหรือขาดทุนเยอะ ๆ ในไม้เดียวออกเพราะเหตุการณ์ในลักษณะนั้นอาจจะไม่เกิดขึ้นอีกแล้วก็ได้ในอนาคต ซึ่งผลที่ได้คือคุณภาพของตัวระบบการลงทุน ที่สำคัญคือนักลงทุนจะคาดการณ์แบบประมาณการได้ (แทนที่จะเป็นคาดเดาเอาดื้อ ๆ)
How to Monte Carlo Work
- Back Test กลยุทธ์ของเรา เพื่อสร้างชุดข้อมูล (ระบบที่ทดสอบความจะมี Trade List ที่มีจำนวนมากหน่อย)
- สุ่มเลือก Trade List จากกข้อมูลการเทรดชุดดั้งเดิม เพื่อนำมาเรียงต่อ ๆ กันแล้วสร้างข้อมูลการเทรดชุดใหม่ขึ้น โดยจะสุ่มจาก Trade List ทั้งหมดที่มี คิดตามง่าย ๆ สมมุติว่าเรามีขวดโหลหนึ่งขวด ข้างในมีลูกแก้วต่างสีกันจำนวน 10 ลูก การสุ่มคือการเลือกหยิบลูกแก้วออกมาบันทึกผล ใส่กลับเข้าไปใหม่แล้วสุ่มต่อ นั่นหมายความว่า Trade List แบบดั้งเดิมทั้งหมดจากการทดสอบครั้งแรก จะถูกสุ่มออกมาใหม่ บางรายการถูกข้าม บางรายการซ้ำ บางรายการสลับตำแหน่ง
- การคํานวณกำไรขาดทุนในแต่ละการสุ่ม หลังจากนั้นจะใช้ Position Sizing ในการสร้างกราฟเงินทุนขึ้นมาใหม่
- บันทึกกราฟเงินทุนของระบบแบบการกระจายตัว (distribution) ประมวลผลข้อมูลที่ได้ เพื่อสร้างการกระจายตัวทางสถิติและกราฟขึ้นใหม่
ตัวอย่างการอ่านค่าและการตีความแบบจำลอง Monte Carlo
เพื่อให้ทุกท่านเห็นภาพมากขึ้นเราจึงหยิบตัวอย่างระบบหนึ่งที่ทำขึ้นประกอบเนื้อหา Quantable ใน EP เก่า ๆ มาให้ดูและจะใช้ตัวเลขจากโมเดลนั้นมาอธิบายในแบบจำลอง Monte Carlo นี้ครับ
สมมติฐานทั้งหมดมีดังต่อไปนี้
- ลงทุนในตลาดหุ้นไทยเท่านั้น
- ผลการทดสอบตั้งแต่ 1/1/2010 – 27/04/2021
- เงินลงทุนตั้งต้น 1 ล้านบาท
- กลยุทธ์ที่ใช้ Technical + Fundamental
จากภาพประกอบนี้อาจจะดูยากไปในครั้งแรก ๆ สำหรับทุกคน ลองค่อย ๆ อ่านตามไปนะครับ แถวแรกคือ Percentile ส่วนถัดไปก็คือ Final Equity หรือ End Equity, ผลตอบแทนต่อปี, Max DD เป็นจำนวนเงิน, Max DD% เป็นต้น วิธีการดูก็ง่ายมาก เช่น ตรง Percentile ที่ 25% ในช่องของ Annual Return คือ 29.26% หมายความว่า 25% จากการทดลองทั้งหมด จะมีค่า Annual น้อยกว่าหรือเท่ากับ 29.26% หรือก็คือ มีโอกาส 25% ที่กลยุทธ์ของเราจะทำเงินได้น้อยกว่า 29.26%
อย่างในช่องของ Max DD% ที่ระดับ Percentile 95% คือ – 12.98% หมายความว่าจากตัวอย่าง 95% ของการทดลองทั้งหมด การลดลงของเงินทุนหรือ Drawdown จะมีค่าน้อยกว่า 12.98%
จากภาพด้านบนเป็นการแสดงถึงค่า Max/Avg/Min และกราฟเงินทุนจากการทดสอบออกมา เป็นค่าที่สูงที่สุด ต่ำที่สุดของกราฟเงินทุนทั้งหมดที่ถูกสร้างขึ้นด้วยแบบจำลอง Monte Carlo ทำให้เราสามารถเห็นความน่าจะเป็นในอนาคตได้ว่า ถึงแม้จะเป็น Trade List เดียวกันก็สามารถที่จะสร้างผลลัพธ์ของพอร์ตที่แตกต่างกันออกมาได้ด้วย ถ้าหากว่าสถานการณ์ในอนาคตเปลี่ยนแปลงไปหรือทำให้ผู้ทดลองรู้ว่า เราใช้ข้อมูลในอดีตเพื่อมาออกแบบระบบที่ Over Fitting เกินไปรึเปล่า รวมถึงทำให้เราพอจะคาดการณ์แบบประมาณการในระดับหนึ่งของสิ่งที่เราจะต้องพบเจอ
ในส่วนของ Cumulative Distribution Function ของกราฟเงินทุนแต่ละแบบไม่ว่าจะเป็น Annual Profit, Drawdowns ก็สามารถเอามาดูได้เช่นกันครับ จากตัวอย่างในรูปข้างต้น ตีความได้ดังนี้ การกระจายตัวของ Annual Profit ประมาณการณ์ได้ว่า 90% ของระบบทั้งหมดจะมีผลตอบแทนที่เป็นบวก, 75% ประมาณการณ์ว่ามีผลตอบแทนสูงกว่า 30%
ในมุมของ Max DD% ที่ระดับ Percentile 80% ของการทดลองทั้งหมด การลดลงของเงินทุนหรือ Drawdown จะมีค่าน้อยกว่า 20% และการขาดทุนเป็นจำนวนมาก ๆ มีโอกาสเกิดน้อยลงเรื่อย ๆ ซึ่งในความเป็นจริงจะต้องมีการนำมาวิเคราะห์ต่อด้วยว่าโอกาสน้อย ๆ ที่ไม่น่าจะเกิดนั้น หากบังเอิญเกิดขึ้นจริง ทุกอย่างจะยังโอกาสอยู่หรือไม่ หรือที่เราอาจจะเคยผ่านหูผ่านมาตามาบ้างในเรื่องของการวิเคราะห์ Risk of Ruin ว่าเรามีโอกาสเจ๊งมากน้อยแค่ไหน
การลงทุนไม่มีอะไรแน่นอน 100%
สิ่งที่เราต้องการสื่อในบทความนี้ก็คือว่าแม้เราจะมีความรู้มากเท่าไหร่ พยายามค้นคว้าเรียนรู้มากแค่ไหน ในตลาดการลงทุนเปลี่ยนแปลงไปนาทีต่อนาที เราไม่มีทาง “รู้อนาคต” ได้อย่างแน่นอน ถึงแม้จะมีกลยุทธ์ที่วางแผนมาเป็นอย่างดี มีการอ่านค่าตีความโอกาสและความเป็นไปได้อยู่ตลอด แต่เราก็อาจจะเจอแจ็คพอตเข้าสักวัน เพราะฉะนั้นการเตรียมแผนฉุกเฉินที่หนึ่ง สอง สาม ยังมีความจำเป็นและจำเป็นตลอดไปในโลกการลงทุนครับ
ข้อมูลอ้างอิง
ZIPMEX
ติดตาม FINNOMENA Podcast ได้ทุกช่องทางที่คุณมี
App Spotify
https://finno.me/spotify
App Google podcasts
https://finno.me/googlepodcast
Apple podcast
https://finno.me/applepodcast
App Soundcloud
https://finno.me/soundcloud
Podbean
https://finno.me/podbean
Youtube
https://finno.me/youtubepodcast