หัวใจหลักสำคัญของการสร้างระบบเทรดก็คือการทำ Robustness test คือ การทดสอบความแข็งแกร่งของระบบ ในสภาวะสภาพคล่องที่ต่ำ
สภาวะตลาดที่ผิดปกติ หรือข่าวที่เป็นด้านบวกหรือด้านลบมากๆที่เข้ามาระหว่างวัน ทำให้ราคาเกิดการเคลื่อนไหวอย่างรุนแรงว่าสามารถรอดในการจำลองได้หรือไม่
เเละทุกการทดสอบจะเป็นการทดสอบความคงทน "Robustness test"เเละทดสอบ Curve Fitting ของระบบทั้งสิ้น ด้วยเงื่อนไขหรือรูปเเบบการทดสอบจะเเตกต่างกันออกไป เพราะทางเราไม่รู้ตลาดในอนาคตจริงจำเป็นต้องทดสอบในหลายรูปเเบบเพื่อเผชิญหน้ากับตลาดในอนาคต

เเยกประเภทการทดสอบ

  • In sample / Out of sample

  • Monte Carlo test

  • System Parameters Permutation

  • Optimization Profile

  • Walk forward Optimization

In sample(IS)/Out of sample(OOS)

In Sample : IS ( ข้อมูลสำหรับเรียนรู้และสร้างระบบเทรด )

ช่วงเวลาที่สร้างระบบเทรด เรียนรู้ตลาด และ Optimized เพื่อหาค่าที่ทำกำไร ความเสี่ยง และค่าอื่นๆ ได้ตรงตามเงื่อนไขที่เราตั้งไว้ ซึ่งในส่วนนี้ใช้เวลานานมาก อย่างที่ทำอยู่ตอนนี้ก็ต้องใช้ Machine learning เพื่อให้มันเรียนรู้ตลาดในช่วงที่เรากำหนด

Out of sample : OOS ( ช่วงทดสอบระบบ )

เป็นช่วงเวลาที่นอกเหนือ IS (In sample) ช่วงนี้จะเป็นการ Robustness test (ทดสอบความเเข็งเเกร่ง) ระบบเทรดที่เราสร้างเพื่อทดสอบว่า เมื่อมีเหตุการณ์นอกเหนือจากช่วงที่สร้างระบบ มันสามารถเอาตัวรอดและทำกำไรให้เราได้หรือไม่

การสร้าง EA ส่วนใหญ่ จะทำเเค่ขั้นตอน In sample เท่านั้น สร้างเสร็จ back test สวยๆ ก็นำมาขายเลย และสุดท้ายก็สู้ตลาดไม่ไหวก็ค่อยๆออกจากตลาดไป เพราะไม่มีความเสถียร ไม่ยืดหยุ่นพอที่จะอยู่รอดทุกสภาวะ

ตัวอย่างการ IS/OOS

Robustness test : Monte Carlo

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

  • Randomize history data - จำลองสุ่มราคา ± 30%

เป็นการจำลองสุ่มราคาของคู่เงินขึ้นมาเพื่อทดสอบความแข็งแกร่งกับสภาวะราคาเปลี่ยนแปลงสภาวะ

  • Randomize strategy parameters - จำลองสุ่มค่า Parameters ± 20%
    เป็นการจำลองสุ่ม Parameter เงื่อนไขการซื้อ-ขาย ขึ้นมาเพื่อทดสอบความแข็งแกร่งกับสภาวะตลาดในความเป็นจริง


ตาราง ตัวอย่างการสุ่มจำลองค่า

  • Randomize Slippage, Spread - จำลองสุ่มค่า Slippage, Spread หรือ ค่าความคลาดเคลื่อนระหว่างราคาในจุดที่ระบบเกิดสัญญาณซื้อขายมากกว่าตลาดจริงโดยทำการจำลองการเกิดจากหลายๆสาเหตุเช่น สภาพคล่องที่ต่ำ, สภาวะตลาดที่ผิดปกติ หรือข่าวที่เป็นด้านบวกหรือด้านลบมากๆที่เข้ามาระหว่างวัน ทำให้ราคาเกิดการเคลื่อนไหวอย่างรุนแรงว่าสามารถรอดในการจำลองได้หรือไม่

  • Randomize starting bars - จำลองสุ่มการเริ่มเทรดสูงสุด 100 แท่งเทียน

  • Randomly skip trades, with probability 10% - จำลองสุ่มข้ามการซื้อขายด้วยความน่าจะเป็น ที่ 10% ในการซื้อขาย

Randomize starting bars และ Randomly skip trades, with probability 10% จะเป็นการทดสอบจำลองสุ่มซื้อ-ขายแบบการนับแท่งเทียนและ
สุ่มซื้อ-ขายแบบเป็นเปอร์เซนต์โดยทำการจำลองการเกิดจากหลายๆสาเหตุเช่น

จำลองปัญหาที่ 1. ปัญหารันต่างโบรคแล้วเปิดออเดอร์ไม่พร้อมกัน

จำลองปัญหาที่ 2. ขณะรันอยู่แล้ว server ปัญหา เป็นต้น

Robustness Test : System Parameters Permutation and Optimization Profile

System Parameters Permutation : การเปลี่ยนเเปลงพารามิเตอร์ระบบ

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

ข้อมูลสำคัญที่คำนวณโดย SPP คือ ค่ามัธยฐานสำหรับทุกสถิติประสิทธิภาพของกลยุทธ์ เพื่อหาเเนวโน้มค่ามัธยฐานของระบบที่เเท้จริง

  • Net profit, Drawdown, % Drawdown, Sharpe ratio

(Ref. http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2423187 )


Optimization Profile

วิเคราะห์ความเป็นไปได้ของชุดทดสอบทั้งหมดหากทำการปรับเปลี่ยนทุกๆ Parameter เพื่อดูประสิทธิภาพสูงสุดของระบบ

  • กำไรเฉลี่ยสำหรับการเพิ่มประสิทธิภาพทั้งหมดควรมากกว่า 0

  • การกระจายผลกำไรทั้งหมดมีความสม่ำเสมอมากที่สุด

Robustness test : Walk-Forward Optimization and Matrix

Walk forward Optimize
หลักการ
Walk forward Optimize จะเป็นการวิเคราะห์ระบบแบบก้าวเดินไปข้างหน้า โดยใช้ Optimization หาค่า optimized parameters จาก In-Sample Period ไปใช้ใน Backtesting ใน Out-Of-Sample Period ถัดๆไป เพื่อทดสอบระบบว่าเมื่อนำมาใช้งานจริงๆ (Out-Of-Sample Period) แล้วจะได้ผลลัพท์ที่ดีหรือใกล้เคียงจาก In-Sample Period

ติดต่อเรา ForexQuanteas.com

หาคุณมีข้อเสนอเเนะคุณสามารถติดต่อเราได้ที่นี่

Copyright2021, ForexQuanteas.com