Monte Carlo Simulation

วันนี้เราจะมาพูดถึงอีกหนึ่งเรื่องที่ได้ยินบ่อยๆ คือ  “Monte Carlo” กันครับ ถ้าจะถามว่า “จะเอา Monte Carlo มาใช้งานในด้านการลงทุนได้ยังไงดี?” คำตอบคงไม่พ้น 1) การ  “Simulation”   เพื่อหาสเถียรภาพของระบบจำพวก Risk/Reward จากการ Backtest ซึ่งในความเป็นจริงแล้วเราจะหาเสถียรภาพค่าจากอะไรก็ได้ที่เราสนใจจะวัดมัน แต่ค่าที่ไม่มีสาระมากนักก็ไม่ต้องหาก็ได้นะ (ฮาาา) หรือ 2) เราอาจจะอยากจะลองนำ Monte Carlo มาลองนำมาทำนายอนาคตก็ได้เช่นกัน เช่น pricing option, predict volatility บทความนี้ผมจะนำ Monte Carlo มาพูดให้ฟังตามความเข้าใจอันจำกัดของตัวผมเองแบบคร่าวๆ นะครับ ที่มาที่ไปของ Monte Carlo ชื่อ “Monte … Continue reading Monte Carlo Simulation

Python Basic : Portfolio (Equal Weight vs Random Weight)

ในบทความนี้เราจะมาทำการทดลองในส่วนของ  “การจัดสรรพอร์ตฟอลิโอ” กันครับ มาดูว่าการจัดพอร์ตนั้นมันมีผลกับ กำไร และ ความเสี่ยง ของเรามากน้อยแค่ไหน และ มาดูกันว่า เจ้าคำพูด “Higher Risk = Higher Return” น่ะ มันจริงเท็จแค่ไหน! การทดลองนี้ผมเขียนขึ้นด้วย Python โค้ด สามารถนำไปทดลองใช้ได้เลยครับ ยินดีแบ่งปันครับ ขอแค่ได้ผลอย่างไร อย่าลืมมาพูดคุยแลกเปลี่ยนกันบ้างนะครับ ผมจะยินดีมากถ้าได้แลกเปลี่ยนความคิดเห็นกับนักวิจัยท่านอื่นๆ ครับ มาเริ่มกันดีกว่า … 1) import libraries  ที่จำเป็นต้องใช้งาน ก่อนอื่นเราต้อง import Library ที่จำเป็นต้องใช้ ในที่นี้ คือ numpy คือ Library … Continue reading Python Basic : Portfolio (Equal Weight vs Random Weight)

Python Basic Risk & Return part 2 : Standard Deviation

หัวใจสำคัญของบทความชุด Python basic risk & return นี้คือ การวิเคราะห์หาค่าความเสี่ยงของหุ้นที่เราสนใจ จากบทความตอนที่ 1 เราได้พูดถึงการประเมินค่าความเสี่ยงและผลกำไรต่อหุ้นอย่างง่ายๆ โดยอาศัยเพียงแค่ความเข้าใจทฤษฏีการแจกแจงปกติ (Normal distribution)  เท่านั้น …ในบทความนี้ เราจะมาคำนวณหาค่าความเสี่ยงของหุ้นที่เราสนใจกันให้ลึกเข้าไปอีกนิด โดยใช้หลักการของ Standard deviation เขียนโดย Python 3.5  เช่นเคยนะครับ การคำนวณจะยังคงเป็นการคำนวณง่ายๆ ที่ไม่ซับซ้อนอีกเช่นเดิม  🙂 ** พาร์ทที่ 1  ของบทความนี้สามารถอ่านได้ที่ link นี้ครับ Python Basic Risk & Return (part 1) Normal distribution ** … Continue reading Python Basic Risk & Return part 2 : Standard Deviation

Python for trading: Optimization

หลังจากหายไปนานเพราะทำวิจัยหนักไม่ค่อยว่างเลยช่วงนี้ วันนี้เราจะมาลองทดลองเขียน Optimization ใน Python ดูหน่อยนะครับ โดยที่ความจริงการทำอะไรแบบนี้ในโปรแกรมสำเร็จรูปอย่าง Amibroker คงง่ายมากกว่าการมาทำเองอยู่มาก แต่ทำไมเราจึงควรลองทำเองด้วยโปรแกรมที่สามารถวิเคราะห์ข้อมูลโดยเฉพาะ เช่น Python R หรือ Matlab? เหตุผลก็คือ ความยืดหยุ่นในการโปรแกรม เราจะสามารถปรับอะไรได้เยอะกว่าโปรแกรมสำเร็จรูป สามารถวิเคราะห์ข้อมูลด้วย Stat ได้ในระดับที่ลึกกว่า สนับสนุนการวิจัยเชิง Machine Learning ได้อย่างเต็มรูปแบบ ตัวอย่าง เช่น Deep Learning ที่กำลังดังๆตอนนี้ (จริงๆที่เมืองนอกดังมาหลายปีแล้วครับ) ซึ่ง ณ เวลานี้ ไม่มีทางเลยที่จะทำในโปรแกรมสำเร็จรูปได้ สามารถสร้าง Product ของตัวเอง ที่สามารถพัฒนา Algorithm … Continue reading Python for trading: Optimization

Random Walk Part 1 : Getting to Know the Stage

การที่เราจะมานั่งทำระบบเทรดสิ่งที่ผมคิดว่าสำคัญมากคือ เราต้องเข้าใจก่อนว่า “เรากำลังเจอกับอะไร?” เรากำลังทำอะไร บนสมมุติฐานของอะไร สภาพตลาดที่ว่าเป็นอย่างไรกันแน่ เชื่อว่าหลายคนก็คงจะเคยได้ยิน ทฤษฎี Random Walk กันมาบ้างแล้ว มันคือ ทฤษฎีที่บอกไว้ว่าตลาดหุ้นนั้นคาดการณ์ได้ยากเพราะมันเคลื่อนไหวอย่างค่อนข้างไร้รูปแบบ เพราะ ณ วินาทีใดเวลาหนึงๆนั้น ตลาดหุ้นได้มีตัวแปรหลายอย่างมากระทบ จนทำให้มันไม่สามารถคาดการณ์ได้ จนเปรียบเสมือนกับว่าการขึ้นลงของราคาหุ้นนั้นเกิดจากการเดาสุ่ม ในบทนี้เราจะมาดูกันว่า ตลาดหุ้นที่ว่าแรนด้อม จากสายตาของการจะสร้างโมเดลทำนายด้วย Machine Learning มอง Feature ผ่านการแรนด้อมนั้นอย่างไร?และจะส่งผลแบบไหนกัน? ก่อนอื่นลองของนิดหนึงนะครับ (รูปที่ 1) คือรูปราคาปิดของหุ้นตัวหนึงกับอีกตัวเป็นหุ้นที่ผมสังเคราะห์ขึ้นมาเองง? หรือว่า ทั้งสองคือกราฟราคาปิดของหุ้นทั้งคู่ล่ะ? คำตอบ คือ อันล่างคือตอบที่ถูกต้อง มันคือดัชนี SET ตั้งแต่ปี มกราคม 2013 ถึงปี … Continue reading Random Walk Part 1 : Getting to Know the Stage

Portfolio optimisation

Portfolio optimisation เป็นอีกขั้นนตอนที่นับว่าสำคัญมากๆ ในบริหารจัดการพอร์ตให้มีประสิทธิภาพอยู่เสมอ หนึ่งในเทคนิคที่น่าสนใจสำหรับการสร้าง Optimal Portfolio คือ การประยุกต์ใช้ Efficient frontier ซึ่งน่าจะเป็นเทคนิคที่รู้จักกันดีใหม่กลุ่มนักลงทุน ร่วมกับการคำนวณ Risk และ Return เทคนิคนี้ ไม่เชื่อก็ต้องเชื่อ เมื่อนำมาใช้กับการจัดการพอร์ตแล้ว มีประสิทธิภาพน่าสนใจจริงๆ จากตัวอย่าง เป็นพอร์ตที่ประกอบไปด้วยหุ้น 5 ตัว เราทำการจำลองการจัดการพอร์ตออกมาทั้งหมด 1000 รูปแบบ ค่า return กระจายตัวอยู่ระหว่าง -0.025% ไปจนถึง +0.05% ในขณะที่ค่า ความเสี่ยง (Std.) อยู่ที่ 0.425% ไปจนถึง 0.7% … Continue reading Portfolio optimisation

Basic Pairs Trading (1) : Idea of Cointegration

Pair trading เป็นอีกหนึ่ง strategy ที่ได้รับความสนใจอย่างกว้างขวางในกลุ่มของ Hedge funds ในบทความนี้ก็จะขอถือโอการมาแบ่งบันความรู้ในเรื่องการใช้เทคนิค Cointegration ในการทำ pair trading กันค่ะ บทความนี้มี 2 ชุดด้วยกัน ชุดที่สองสามารถอ่านได้ในลิงก์ด้านล่างค่ะ https://qtmlresearch.com/2017/08/28/basic-pair-trading-2-%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%B8%E0%B8%81%E0%B8%95%E0%B9%8C%E0%B9%83%E0%B8%8A%E0%B9%89-cointegration/ Pair trading? เป็นเทคนิคการเทรดอย่างนึงที่มีการประกันความเสี่ยงโดยทำการเทรดเป็น “คู่” เวลาเปิด order ก็จะมีการเปิดสถานะ long และ short พร้อมๆ กัน บนคู่หุ้นที่ต้องการ” Pair trading ถือ เป็นเทคนิคการ hedging อย่างหนึ่งที่ได้รับความนิยมกันอย่างแพร่หลายในกลุ่ม hedge funds จนบางครั้งมีการเข้าใจผิดกันไปว่า … Continue reading Basic Pairs Trading (1) : Idea of Cointegration