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

  1. Back Test กลยุทธ์ของเรา เพื่อสร้างชุดข้อมูล (ระบบที่ทดสอบความจะมี Trade List ที่มีจำนวนมากหน่อย)
  2. สุ่มเลือก Trade List จากกข้อมูลการเทรดชุดดั้งเดิม เพื่อนำมาเรียงต่อ ๆ กันแล้วสร้างข้อมูลการเทรดชุดใหม่ขึ้น โดยจะสุ่มจาก Trade List ทั้งหมดที่มี คิดตามง่าย ๆ สมมุติว่าเรามีขวดโหลหนึ่งขวด ข้างในมีลูกแก้วต่างสีกันจำนวน 10 ลูก การสุ่มคือการเลือกหยิบลูกแก้วออกมาบันทึกผล ใส่กลับเข้าไปใหม่แล้วสุ่มต่อ นั่นหมายความว่า Trade List แบบดั้งเดิมทั้งหมดจากการทดสอบครั้งแรก จะถูกสุ่มออกมาใหม่ บางรายการถูกข้าม บางรายการซ้ำ บางรายการสลับตำแหน่ง
  3. การคํานวณกำไรขาดทุนในแต่ละการสุ่ม หลังจากนั้นจะใช้ Position Sizing ในการสร้างกราฟเงินทุนขึ้นมาใหม่
  4. บันทึกกราฟเงินทุนของระบบแบบการกระจายตัว (distribution) ประมวลผลข้อมูลที่ได้ เพื่อสร้างการกระจายตัวทางสถิติและกราฟขึ้นใหม่

ตัวอย่างการอ่านค่าและการตีความแบบจำลอง Monte Carlo

เพื่อให้ทุกท่านเห็นภาพมากขึ้นเราจึงหยิบตัวอย่างระบบหนึ่งที่ทำขึ้นประกอบเนื้อหา Quantable ใน EP เก่า ๆ มาให้ดูและจะใช้ตัวเลขจากโมเดลนั้นมาอธิบายในแบบจำลอง Monte Carlo นี้ครับ

สมมติฐานทั้งหมดมีดังต่อไปนี้

  1. ลงทุนในตลาดหุ้นไทยเท่านั้น
  2. ผลการทดสอบตั้งแต่ 1/1/2010 – 27/04/2021
  3. เงินลงทุนตั้งต้น 1 ล้านบาท
  4. กลยุทธ์ที่ใช้ 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%

สิ่งที่เราต้องการสื่อในบทความนี้ก็คือว่าแม้เราจะมีความรู้มากเท่าไหร่ พยายามค้นคว้าเรียนรู้มากแค่ไหน ในตลาดการลงทุนเปลี่ยนแปลงไปนาทีต่อนาที เราไม่มีทางรู้อนาคตได้อย่างแน่นอน ถึงแม้จะมีกลยุทธ์ที่วางแผนมาเป็นอย่างดี มีการอ่านค่าตีความโอกาสและความเป็นไปได้อยู่ตลอด แต่เราก็อาจจะเจอแจ็คพอตเข้าสักวัน เพราะฉะนั้นการเตรียมแผนฉุกเฉินที่หนึ่ง สอง สาม ยังมีความจำเป็นและจำเป็นตลอดไปในโลกการลงทุนครับ

ข้อมูลอ้างอิง

  1. https://www.siamquant.com/
  2. http://thaiquants.com/
  3. https://en.wikipedia.org/wiki/Monte_Carlo_method

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