Monte Carlo Simulation

วันนี้เราจะมาพูดถึงอีกหนึ่งเรื่องที่ได้ยินบ่อยๆ คือ “Monte Carlo” แบบ 101 กันครับโดยเราจะไม่ลงสมการอะไรมาก แต่จะเน้นให้เห็นว่าการ Random เกี่ยวข้องกับการลงทุนอย่างไร และเราจะเอาความรู้ตรงนั้นมาทำอะไรได้บ้าง

ที่มาที่ไปของ Monte Carlo

ชื่อ “Monte Carlo” นั้นมาจาก เมือง “Monte Carlo” ของประเทศ โมนาโก ซึ่งเป็นเมืองที่โด่งดังเรื่องคาสิโนมากที่สุดในโลกเมืองหนึง ว่าด้วยการพนันนั้นก็ คือ เกมส์ ที่มีความน่าจะเป็นทางคณิตศาสตร์มากมายเข้ามาเกี่ยวข้อง หรือ มีการ Random มากมายเกิดขึ้น เช่น ความน่าจะเป็นในการได้เงินที่เกิดจากการเล่นเครื่องเล่นจำพวก Slot Machine, การทอยลูกเต๋า เป็นต้น คาสิโนจึงเป็นแรงบันดาลใจให้นำมาเป็นชื่อของโมเดลทางสถิติเพื่อสร้างแบบจำลองเสมือน (Simulation) ตัวแปรสุ่มเหล่านั้น

01.jpg

Casino Monte Carlo ที่ Monaco

ถ้าจะถามว่า “จะเอา Monte Carlo มาใช้งานในด้านการลงทุนได้ยังไงดี?” คำตอบคงไม่พ้น

1) การสร้างแบบจำลองเสมือน (Simulation) เพื่อหาสเถียรภาพของระบบจำพวก Risk/Reward จากการ Backtest ว่าระบบของเราจะยังคงมีเสถียรภาพแค่ไหนถ้าเราไปปรับค่าตัวแปรตัวใดตัวหนึงด้วยวิธีการ Monte Carlo

2) มีส่วนในการนำมาทำนายอนาคตได้เช่นการทำ Option Pricing

นอกเหนือจากทางการลุงทุน Monte Carlo ยังได้ไปปรับใช้หลากหลายสาขาวิชาทั่วโลกทีเดียวครับ ทั้งทาง Engineer, Physical sciences sinvทาง Computer Science หลายอัลกอริทึ่มก็ต้องอาศัยหลักการนี้เช่นกัน

โลกเรานี้มันช่าง Random: ปัญหาตั้งต้น

ถ้าว่าตามทษฏษี “Random Walk” ที่มีการตั้งสมมุติฐานว่า “การเคลื่อนที่ของหุ้นหรือ Asset ใดในตลาดการเงินนั้นล้วนเป็นการสุ่มในแต่ละวัน” (ไม่ว่าตลาดจะมีประสิทธิภาพแบบเข้ม หรือ อ่อนก็จะมีการสุ่มผสมอยู่มากน้อยลดหลั่นกันไป) เราไม่สามารถทำนายได้อย่างแน่ชัด เช่น

ตัวอย่างแรก ราคาหุ้น AAA ตั้งต้น ณ วันที่ 23 เมษายน เท่ากับ 15 บาท โดยให้มีราคาเปลี่ยนแปลง x เป็นตัวแปรสุ่มที่เราไม่สามารถกำหนดได้

  • ราคาหุ้นวันที่ 24 เมษายน 2562 อยู่ที่ 15 บาท ดังนั้น ราคาหุ้นวันเมื่อวาน + ราคาหุ้นที่เปลี่ยนแปลงไป(x) = 15 + x โดยที่ x = 0
  • ราคาหุ้นวันที่ 26 เมษายน 2562 อยู่ที่ 13 บาท ดังนั้น ราคาหุ้นวันเมื่อวาน + ราคาหุ้นที่เปลี่ยนแปลงไป(x) = 15 + x โดยที่ x = -2
  • ราคาหุ้นวันที่ 25 เมษายน 2562 อยู่ที่ 14 บาท ดังนั้น ราคาหุ้นวันเมื่อวาน + ราคาหุ้นที่เปลี่ยนแปลงไป(x) = 13 + x โดยที่ x = 1

ตัวอย่างที่ 2 สมมุติว่าค่า commission คงที่ 0.25% โดย ค่าคลาดเคลื่อน (Slippage) เปนตัวแปรสุ่ม x ที่เราไม่สามารถควบคุมได้(อาจจะคุมได้แค่กันไม่ให้มันเกินเท่าไหร่จึงไม่เข้าซื้อออเดอร์นั้นๆ)

  • เทรดออเดอร์ที่ 1 จะมี cost เป็น ค่า commission 0.25% + slippage(x) สมมุติวันนั้นเข้าเทรดได้ค่า slippage ที่ 1% ดังนั้น 0.25% + 1% โดยที่ x = 1%
  • เทรดออเดอร์ที่ 2 จะมี cost เป็น ค่า commission 0.25% + slippage(x) สมมุติวันนั้นเข้าเทรดได้ค่า slippage ที่ 3% ดังนั้น 0.25% + 3% โดยที่ x = 3%
  • เเทรดออเดอร์ที่ 3 จะมี cost เป็น ค่า commission 0.25% + slippage(x) สมมุติวันนั้นเข้าเทรดได้ค่า slippage ที่ 5% ดังนั้น 0.25% + 5% โดยที่ x = 5%

ดังนั้นจะเห็นว่าโลกแห่งความจริงของเราจะบางอย่างที่เรากำหนดกะเกณฑ์อย่างแม่นยำไม่ได้เสมอ เราจะให้มันเป็นตัวแปร x ไป ดังนั้นเราจึงสามารถนำความรู้ตรงนี้มาสร้างวิธีการวัดผล ที่ไม่ได้ อ้างอิงกับค่าเพียง “ค่าเดียว” โดดๆเพราะค่าที่เกิดขึ้นมานั้นมันเป็นเพียงส่วนหนึง ของความน่าจะเป็นที่อาจจะเกิดขึ้นได้ การใช้เพียง “ค่าเดียว” มันไม่เพียงพอที่จะนำมาประเมินความเสี่ยงด้วยสถิติ ตัวแปร x ควรจะมีความ Random อยู่พอสมควร เช่น ถ้าเราตั้งทำซิมูเลชั่นการซื้อขายหุ้น แล้วเราตั้งค่า Slippage(x) ไว้ที่ 5% ต่อครั้งการเทรด ในการเทรดจริงมันคงไม่ได้ Slippage เท่านี้ตลอดเวลาแน่ครับ อาจจะมีครั้งไหนที่มี Slippage มากกว่าหรือน้อยกว่าที่เราตั้งไว้ด้วย Monte Carlo ได้ถูกนำเข้ามาแก้ไขในส่วนของปัญหานี้ครับ

แล้ว Monte Carlo Simulation คืออะไรกันแน่?

Monte Carlo เป็นวิธีการหนึงที่ถูกนำมาประยุกต์ใช้งานด้านตัวแปรสุ่ม x ด้านบนมันซะ เหมือนการทอยลูกเต๋าในคาสิโนที่ Monte Carlo น่ะครับ ถ้าเราทอยลูกเต๋า 2 ลูก รอบเดียว เราก็ยังคงไม่รู้ distribution ของมัน แต่ยิ่งเราทอยเต๋าจำนวนมากครั้งพอ เราก็พอที่จะรู้การแจกแจงของมัน ว่าโอกาสของการได้ค่าจากการทอยลูกเต๋าสองลูกไม่เท่ากัน เช่น ค่า 6 จะได้จาก (1,5) (2,4) (3,3) (4,2) (5,1) จะเห็นว่า โอกาสที่จะทอยได้ 3 กับ 3นั้นมีโอกาสออกได้แค่รูปแบบเดียว ขณะที่ 4 กับ 2 และ 5 กับ 1 เกิดได้ 2 ครั้ง นั่นแหละครับ ถ้าเราทำซัก หมื่นรอบแสนรอบ เราก็พอจะเห็นความน่าจะเป็นชัดขึ้นเรื่อยๆ นี่เป็นไอเดียของการนำมาใช้ในจำลองแบบเสมือน (Simulation)ข้อมูลการลงทุนครับ

โดยในการ Simulationแต่ละวัน สมมุติว่าเราจะทำการ Simulation การซื้อขายซักปีหนึงก็แล้วกัน เราก็มาดูว่าเราสนใจค่าอะไรในนั้น เช่นถ้าเราสนใจค่า commission เราก็ให้ค่ามันเป็นตัวแปร x แล้วในแต่ละวันที่ทำการ ค่า x ก็จะมีค่าแตกต่างกันไป เราอาจจะกำหนด ช่วงระยะของการ Random ได้ เช่น เราจะให้ค่า Random ของ Slippage อยู่ในระยะไม่เกิน 10-15% เป็นต้น จากนั้นเราก็ทำไปจนครบระยะเวลาของการเทรด 1 ปี นับเป็น 1 รอบการ Simulation

อย่างที่บอกครับ ค่าเดียวมันไม่พอ เราก็ ทำ Simulation ใหม่แบบด้านบน ทำไปหลายๆรอบ ในแต่ระรอบก็จะ สถานการณ์ของ Slippage แตกต่างกันไป สมมุติ เราทำซัก 1000 รอบ อาจจะมีซัก 13 รอบที่ทำให้ระบบของเรามีผลกำไรลดลง หรือ มีความเสี่ยงเช่น Drawdown เพิ่มขึ้นอย่างมีนัยยะสำคัญได้

03.png

ตัวอย่างการทำ Simulation หุ้้นตัวหนึงเป็นระยะเวลา 1 ปีจำนวน 1000 รอบ

พอจะเห็นอะไรแล้วใช่ไหมครับ ใช่แล้วครับ เมื่อเราทำการ Simulation มากครั้งพอ เราจะได้ข้อมูลทางสถิติที่สำคัญมาครับ เราก็จะทำการจำลองนี้เป็นจำนวนมากๆครั้งเข้าไว้(อาจจะทำไปซักหมื่นครั้งแสนครั้งไปเลยก็ได้) เพื่อให้มีจำนวนเพียงพอที่จะนำค่าที่ได้จากการสุ่มเหล่านั้นมาหา ความน่าจะเป็น (Probability) ของค่าที่เราต้องการวัด เราอาจจะใช้หาโอกาสที่เราจะเจ๊ง (Risk of Ruin) เช่น “มีโอกาสกี่เปอร์เซ็นที่ระบบของเราจะมี Maximum Drawdown มากกว่า 40%” หรือ “ระบบของเรามีโอกาสที่จะขาดทุนมากที่สุดใน 1 วัน มากกว่า 10% นั้นมีกี่เปอร์เซ็น” เป็นต้น

01

ตัวอย่าง ผลลัพธ์ที่ได้จากการทดลอง Monte Carlo simulation เมื่อนำมาประเมินเป็น Cumulative function

จากรูปด้านบน จะสังเกตุได้ว่า แทนที่ผลลัพธ์จากออกมาเป็นเลขชุดเดียวว่าระบบทำกำไรได้กี่เปอร์เซน กลับออกมาในรูปแบบ Cumulative distribution ระหว่างค่า กำไร และ ความน่าจะเป็น แทนครับ จากรูปก็จะมีโอกาสน้อยกว่าหรือเท่ากับ 20% ที่ระบบนี้จะทำกำไรต่ำกว่า ~90$ เป็นต้น

สรุป

การที่เราทำการสุ่มตัวแปรต่างๆก็เพื่อ คาดเดาอนาคตที่เราไม่อาจควบคุมได้นั่นเอง เราพยายาม ”เดา” อนาคตให้หลากหลายรูปแบบ เพื่อที่จะประเมินโอกาสเกิดเหตุการณ์ทั้งด้านดีด้านแย่ของระบบเราได้นั่นเอง แทนที่เราจะบอกว่า ระบบ A จะได้ Drawdown 20% เราก็จะมามองมันเป็นความน่าจะเป็น มีโอกาสที่ระบบ A จะเกิด จะเกิด Drawdown มากกว่า 20% นั้นอยู่ที่ xx% เป็นต้น

การทำความเข้าใจ Monte Carlo นี้ถือว่าสำคัญ และ ควรทำเป็นอย่างยิ่งครับ เนื่อง ทฤษฏี Monte Carlo นับเป็นทฤษฏีที่มีประโยชน์มากใน Quantitative Finance และ ยังเป็นรากฐานให้กับโมเดลต่างๆ มากมาย รวมทั้ง Option Pricing ด้วย

จะเห็นว่าบทความตัวนี้จะไม่มีสมการเท่าไหร่นัก เพราะผมจะเก็บไว้เล่าในบทความหน้า เราไปดูสมการที่อยู่เบื้องหลัง Monte Carlo สำหรับ Option Pricing ตัวหนึงกันแบบเจาะดูสมการด้านในของมันว่ามันทำงานกันยังไง และสมการแต่ละตัวมีความหมายอย่างไร และทำไมมันจึงสมเหตุสมผล(ซึ่งจะมีสอนในคอร์สของเราด้วย)

ขอบคุณที่สละเวลาอ่านบทความครับ หวังว่าจะมีประโยชน์บ้างไม่มากก็น้อย

cr. https://www.investopedia.com/articles/investing/11…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s