Walk-forward analysis — ทดสอบความแข็งแกร่งของกลยุทธ์การเทรด
Walk-forward analysis คือการทดสอบความแข็งแกร่งของกลยุทธ์ที่ Robert Pardo ได้เป็นระบบไว้ในหนังสือ The Evaluation and Optimization of Trading Strategies ซึ่งตีพิมพ์โดย Wiley ในปี 2008 และกองทุนเชิงระบบทั่วโลกได้ใช้วิธีนี้เป็นตัวกรองมาตรฐานก่อนอนุญาตให้กลยุทธ์ใดเข้าสู่การเทรดจริงนับแต่นั้น แนวคิดนั้นตรงไปตรงมา: แทนที่จะปรับค่าพารามิเตอร์ครั้งเดียวบนข้อมูลประวัติทั้งหมด คุณแบ่งประวัติออกเป็นคู่ของหน้าต่าง in-sample และ out-of-sample ซ้ำๆ และกลยุทธ์จะได้รับสิทธิ์ใช้งานจริงก็ต่อเมื่อยังคงแสดง edge บนข้อมูลที่ไม่เคยใช้ปรับค่ามาก่อน
ทำไม curve-fitting จึงเป็นปัญหาที่ walk-forward แก้ไข
การ backtest แบบทั่วไปที่นักเทรดสแกนพารามิเตอร์นับพันชุดแล้วเลือกชุดที่ดีที่สุดมักสร้างกราฟทุนที่สวยงามกว่าความเป็นจริงเสมอ ตัวปรับค่าอ่านสัญญาณรบกวน (noise) ในข้อมูลอดีตว่าคือสัญญาณจริง เส้นค่าเฉลี่ยเคลื่อนที่ 14 วันเอาชนะ 12 วันไม่ใช่เพราะมันฉลาดกว่า แต่เพราะ noise ในช่วงเดือนนั้นๆ บังเอิญเรียงตัวเข้ากัน สัญญาณเตือนของปัญหานี้ ซึ่งครอบคลุมในคู่มือการทดสอบย้อนหลังของเรา ได้แก่ กราฟทุนที่ราบเรียบเกินจริง อัตราชนะเกิน 75% ใน 200 ครั้ง profit factor เกิน 3.5 และความอ่อนไหวสูงต่อการเปลี่ยนพารามิเตอร์เล็กน้อย walk-forward ลิดรอนความสามารถของตัวปรับค่าในการเรียนรู้ข้อมูลที่ใช้ตัดสินกลยุทธ์ในท้ายที่สุด
กลไกหน้าต่างเลื่อน — ทีละขั้นตอน
ขั้นแรกคือแบ่งข้อมูลประวัติ ซึ่งโดยทั่วไปคือข้อมูลสะอาด 10 ปีบนคู่สกุลเงินหลักที่กรอบเวลา M30 ขึ้นไป ออกเป็นบล็อกต่อเนื่อง หน้าต่าง in-sample แรกอาจครอบคลุมปี 2018 ถึง 2021 โดยมีหน้าต่าง out-of-sample คือปี 2022 บนบล็อก in-sample คุณรันการปรับค่าเต็มรูปแบบ: ให้ระบบทดสอบสแกนพารามิเตอร์หลายร้อยชุดและคืนค่าชุดที่ให้ผลตอบแทนดีที่สุดที่ drawdown ยอมรับได้ จากนั้นแช่แข็งชุดที่ชนะและรันกลยุทธ์ด้วยพารามิเตอร์นั้นบน out-of-sample 2022 โดยไม่แก้ไขโค้ดหรือปรับค่าซ้ำ ขั้นที่สามคือเลื่อนหน้าต่างไปตามความยาวของบล็อก out-of-sample: in-sample ใหม่ 2019 ถึง 2022, out-of-sample ใหม่ 2023 ปรับค่าใหม่ แช่แข็ง ทดสอบ เลื่อน หลัง 5 ถึง 7 รอบเช่นนี้ คุณจะได้ผล out-of-sample 5 ถึง 7 ชุดที่เป็นอิสระจากกัน และค่าเฉลี่ยของมันคือตัวแทนที่ซื่อสัตย์ที่สุดของสิ่งที่บัญชีจริงจะสร้างได้ วิธีใช้งานจริงใน MT5 ผ่านตัวเลือกใน Strategy Tester ครอบคลุมอยู่ในคู่มือ backtesting MT4 และ MT5 ของเรา
rolling กับ anchored — สองรูปแบบ
ในรูปแบบ rolling หน้าต่าง in-sample มีความยาวคงที่และเลื่อนไปข้างหน้าเหมือนหนอนผีเสื้อ: 4 ปีเสมอ แต่มีจุดเริ่มต้นและสิ้นสุดต่างกัน กลยุทธ์จะลืมสิ่งที่เกิดขึ้นนานมาแล้วและมุ่งเน้นที่ปีล่าสุด ซึ่งในทางปฏิบัติหมายความว่ามันตอบสนองต่อการเปลี่ยนแปลง regime ได้เร็วกว่า หลังจากความผันผวนสูงในปี 2020 หรือวัฏจักรการขึ้นดอกเบี้ยปี 2022 กลยุทธ์ rolling walk-forward จะใช้พารามิเตอร์ที่ปรับให้เข้ากับโลกใหม่ในรอบถัดไปแล้ว รูปแบบ anchored รักษาจุดเริ่มต้นคงที่และปล่อยให้หน้าต่าง in-sample เติบโต: 2018 ถึง 2021 ก่อน แล้ว 2018 ถึง 2022, แล้ว 2018 ถึง 2023 ข้อมูลที่มากขึ้นมักให้พารามิเตอร์ที่เสถียรกว่าระหว่างรอบ แต่ปรับตัวช้ากว่า กฎเบื้องต้นที่ใช้ได้ผล: เลือก rolling สำหรับระบบ trend-following, breakout และ momentum; เลือก anchored สำหรับกลยุทธ์ mean-reversion ที่เสถียรซึ่งพึ่งพาแนวรับ/แนวต้านระดับลึก
Walk-forward efficiency และวิธีอ่านค่า
WFE คืออัตราส่วนของผลตอบแทนต่อปี out-of-sample หารด้วยผลตอบแทนต่อปี in-sample มักแสดงเป็นเปอร์เซ็นต์ ค่าที่ใกล้ 1.0 น่าสงสัย ระดับการถ่ายทอดที่สมบูรณ์แบบแบบนั้นแทบไม่เคยเกิดขึ้นนอกระบบ trend-following ที่เรียบง่ายที่สุด และเมื่อเกิดขึ้น มักมีอะไรรั่วไหลระหว่างหน้าต่าง ช่วง 0.5 ถึง 0.75 คือที่อยู่ตามธรรมชาติของกลยุทธ์ที่แข็งแกร่ง และนี่คือช่วงที่ควรพิจารณาการใช้งานจริง ค่าในช่วง 0.3 ถึง 0.5 บ่งชี้การ fitting กับ noise ระดับปานกลาง กลยุทธ์จับ edge จริงบางอย่าง แต่ชุดกฎมีพารามิเตอร์มากเกินไป ค่าต่ำกว่า 0.3 คือการสารภาพ curve-fitting อย่างชัดเจน และตัวชี้วัดนี้กำลังบอกนักเทรดในสิ่งที่อีโก้ไม่อยากฟัง นั่นคือลดความซับซ้อนของกฎ อย่าตามหาการทดสอบอีกครั้งที่ตัวเลขจะดูดีในที่สุด สาเหตุรากเหง้าอีกอย่างของ WFE ต่ำคือตัวชี้วัดที่ repaints บาร์ประวัติ สัญญาณที่ repaints ไม่เหมาะสำหรับการทดสอบ walk-forward เพราะข้อมูล in-sample ดูดีกว่าความเป็นจริงแบบ real-time เสมอ
ตัวอย่างประกอบ — สองกลยุทธ์ภายใต้การพิจารณา
ลองนึกภาพกลยุทธ์สองแบบบน EUR/USD ทั้งคู่ทดสอบบนข้อมูล M30 ครอบคลุมปี 2018 ถึง 2023 ในรูปแบบ rolling โดยมีหน้าต่าง in-sample 4 ปีและ out-of-sample 1 ปี กลยุทธ์ breakout ให้ในรอบแรก อัตราชนะ in-sample 70% และผลตอบแทนต่อปี 30%; ในหน้าต่าง out-of-sample ที่ตรงกัน อัตราชนะลดลงเหลือ 55% และผลตอบแทนเหลือ 12% ต่อปี WFE คือ 12 หารด้วย 30 ได้ 0.4 ทั้ง 5 รอบ WFE เฉลี่ยอยู่ในช่วง 0.38 ถึง 0.45 กลยุทธ์จับ edge จริงบางอย่าง แต่ logic ของจุดเข้าซื้อขายมีรายละเอียดมากเกินไปและต้องลดความซับซ้อน กลยุทธ์ที่สอง ซึ่งเป็น trend-follower สร้างจากค่าเฉลี่ยเคลื่อนที่ ให้อัตราชนะ in-sample 60% และผลตอบแทนต่อปี 25%; out-of-sample 58% และ 20% WFE 0.8 พารามิเตอร์เปลี่ยนน้อยกว่า 20% ระหว่างรอบ กลยุทธ์นี้สมควรนำไปทดสอบต่อบนบัญชีทดลอง (demo account) ตัวเลขทั้งหมดเป็นเพียงการอธิบาย แสดงให้เห็นวิธีอ่านผลทดสอบ ไม่ใช่สิ่งที่คาดหวังจากกลยุทธ์เฉพาะใดๆ
“เป้าหมายทั้งหมดของ walk-forward analysis คือการเปิดเผยผลการดำเนินงานแบบ real-time จากเงินจริงของกลยุทธ์การเทรด โดยไม่ต้องเทรดด้วยเงินจริงในเวลาจริงจริงๆ” — Robert Pardo, 2008
สิ่งที่ walk-forward ไม่สามารถทำได้
แม้แต่ walk-forward ที่ผ่านการทดสอบด้วย WFE สูงกว่า 0.5 อย่างสบายก็ไม่รับประกันกำไรในการเทรดจริง การทดสอบนี้อาศัยข้อสมมติเงียบอยู่: regime ที่ถูกจับภาพในหน้าต่าง out-of-sample ต้องคล้ายกับ regime ที่กลยุทธ์จะเทรดจริงเพียงพอ หากข้อมูลประวัติมีความผันผวนสูงสองครั้งใหญ่และวัฏจักรดอกเบี้ยสองรอบ แต่กลยุทธ์จะเทรดเข้าสู่ช่วง range ยาวที่ความผันผวนต่ำและการเคลื่อนไหวจากข่าวน้อย ค่าเฉลี่ย out-of-sample อาจไม่สะท้อนสิ่งที่เกิดขึ้นจริง นั่นคือเหตุผลที่วิธีปฏิบัติที่มีวินัยไม่ใช่การพึ่งพา walk-forward อย่างเดียว แต่ต้องรวมกับ forward test บนบัญชีทดลอง 3 ถึง 6 เดือน บวกกับการจำลอง Monte Carlo ที่จัดลำดับ trade แบบสุ่มและแสดงการกระจายของ equity curve ที่เป็นไปได้ walk-forward เป็นตะแกรงที่ดีมาก ไม่ใช่คำทำนาย เช่นเดียวกับการทดสอบประวัติอื่นๆ ทั้งหมด บริบทวิธีการที่กว้างขึ้นสามารถอ่านเพิ่มเติมได้ในtrader's workshop บน ForexMechanics
ขั้นตอนถัดไปของคุณ
- ดึงข้อมูลประวัติราคาของคู่สกุลเงินที่คุณเทรดจริงและแยกข้อมูล M30 หรือ M15 ห้าปีล่าสุดออกมา จากนั้นแบ่งออกเป็นคู่หน้าต่าง 5 คู่โดยใช้ in-sample 4 ปีและ out-of-sample 1 ปีต่อคู่ โดยเลื่อนจุดเริ่มต้นทีละ 1 ปีในแต่ละรอบ เพื่อให้คุณสามารถเปรียบเทียบผล out-of-sample ในสภาพตลาดที่แตกต่างกันและรวบรวมการสังเกตอิสระอย่างน้อย 5 ชุด
- รันการปรับค่าพารามิเตอร์เต็มรูปแบบบนหน้าต่าง in-sample แรก ปี 2018 ถึง 2021 เท่านั้น บันทึกชุดพารามิเตอร์ที่ดีที่สุด แช่แข็งอย่างสมบูรณ์ และรัน backtest เดียวบน out-of-sample 2022 ที่ตรงกันโดยไม่มีการปรับค่าเพิ่มเติม ทำซ้ำวัฏจักรนี้สำหรับคู่หน้าต่างทั้ง 5 คู่ และบันทึกผลตอบแทนต่อปีและ drawdown จากทุก out-of-sample run ในตาราง
- คำนวณ WFE สำหรับแต่ละรอบในฐานะอัตราส่วนของผลตอบแทน out-of-sample ต่อผลตอบแทน in-sample จากนั้นดูทั้งค่าเฉลี่ยและค่ามัธยฐาน หากค่ามัธยฐานลดลงต่ำกว่า 0.5 หรือพารามิเตอร์กระโดดมากกว่า 50% ระหว่างรอบ กลยุทธ์กำลัง fit noise และการตอบสนองที่ถูกต้องคือลดความซับซ้อนของ logic การเข้าสถานะ ไม่ใช่พยายามปรับค่าอีกรอบ
- สำหรับกลยุทธ์ที่ผ่านด่าน walk-forward ด้วย WFE สูงกว่า 0.5 ให้เพิ่มตัวกรองอีกสองชั้นก่อนเสี่ยงเงินจริง: ทดสอบ forward testing 3 ถึง 6 เดือนบนบัญชีทดลองโดยใช้พารามิเตอร์ที่แช่แข็งหลังจากรอบสุดท้าย บวกกับการจำลอง Monte Carlo ที่สับเปลี่ยนลำดับ trade แบบสุ่มและ drawdown ที่ percentile ที่ 95 ต้องอยู่ภายในความทนทานความเสี่ยงส่วนตัวของคุณ
แหล่งอ้างอิงและบรรณานุกรม
-
MetaQuotes MetaTrader 5 Strategy Tester — Forward Testing · opis trybu forward testing wbudowanego w Strategy Tester i jego roli w walce z over-optimisation www.metatrader5.com ↗
-
MetaQuotes MetaTrader 5 Help — Strategy Optimization · oficjalna dokumentacja MT5 o optymalizacji parametrów i forward testing przeciw overfittingowi www.metatrader5.com ↗
-
QuantStart Successful Backtesting of Algorithmic Trading Strategies — Part I · omówienie czterech klasycznych biasów backtestu: optimisation, look-ahead, survivorship, psychological tolerance www.quantstart.com ↗
-
MQL5 Community Articles on Strategy Testing in MQL5 · kuratorska kolekcja artykułów wspólnoty MQL5 o backtestingu i walk-forward www.mql5.com ↗
คำถามที่พบบ่อย
walk-forward แตกต่างจากการแบ่ง in-sample / out-of-sample แบบเดี่ยวอย่างไร?
การแบ่ง hold-out แบบดั้งเดิมตัดหน้าต่างเดียวที่ท้ายประวัติและทดสอบกลยุทธ์ที่นั่นด้วยพารามิเตอร์ที่ปรับบนข้อมูลส่วนที่เหลือ มันเป็นการตรวจสอบความแข็งแกร่งครั้งเดียวที่ให้ตัวเลขหนึ่งตัวและจบ walk-forward ทำซ้ำแบบฝึกหัดนี้หลายครั้ง หน้าต่าง out-of-sample แรกคือ 2022, ที่สองคือ 2023, ที่สามคือ 2024 และพารามิเตอร์จะถูกปรับค่าใหม่บนบล็อก in-sample ที่เลื่อนไปข้างหน้าก่อนแต่ละหน้าต่าง ดังนั้นนักเทรดจึงไม่ต้องพึ่งพาโชคของปีเดียว โดยรวม 5 ถึง 10 หน้าต่าง out-of-sample และผลกระทบของโชคลดลงอย่างมาก ข้อดีที่สองคือ walk-forward สะท้อนวิธีที่การใช้งานจริงดำเนินการ: ปรับค่า, แช่แข็ง, เทรด 1 ปี, ปรับค่าใหม่ นั่นคือวิธีที่กองทุนเชิงระบบส่วนใหญ่ดำเนินการ การแบ่ง hold-out เดี่ยวไม่สามารถจับความเป็นวัฏจักรนี้ได้
วิธีตีความ WFE และเกณฑ์ใดที่สำคัญ?
Walk-forward efficiency คำนวณจากผลตอบแทนต่อปี out-of-sample หารด้วยผลตอบแทนต่อปี in-sample บอกคุณว่า "คำสัญญา" in-sample ที่รอดพ้นจากการสัมผัสกับข้อมูลที่ยังไม่เคยเห็นมีเท่าไร ค่าที่ใกล้ 1.0 น่าสงสัย ระดับการถ่ายทอดที่สมบูรณ์แบบแบบนั้นหาได้ยากนอกระบบ trend-following ที่เรียบง่ายที่สุด และเมื่อเกิดขึ้นมักมีอะไรรั่วไหลระหว่างหน้าต่าง ช่วง 0.5 ถึง 0.75 คือช่วงปกติของกลยุทธ์ที่ควรค่าแก่การใช้งานจริง ช่วง 0.3 ถึง 0.5 บ่งชี้การ fitting กับ noise ระดับปานกลาง กลยุทธ์จับสิ่งที่จริงบางอย่างได้ แต่ชุดกฎมีพารามิเตอร์มากเกินไป ค่าต่ำกว่า 0.3 คือการสารภาพ curve-fitting อย่างชัดเจน และตัวชี้วัดบอกนักเทรดในสิ่งที่อีโก้ไม่อยากฟัง: ลดความซับซ้อนของกฎ อย่าทดสอบอีกครั้ง เกณฑ์ไม่ใช่เกณฑ์เดียวเสมอ คุณต้องดูความเสถียรของพารามิเตอร์ระหว่างรอบด้วย (การกระโดดมากกว่า 50% ชี้ไปที่ความอ่อนไหวสูงเกินไป) และการกระจายของ drawdown ในหน้าต่าง out-of-sample ทั้งหมด ไม่ใช่แค่ค่าเฉลี่ย
เมื่อไรควรเลือกรูปแบบ rolling แทน anchored?
รูปแบบ rolling ใช้หน้าต่าง in-sample ความยาวคงที่ เช่น 4 ปี และเลื่อนไปตามความยาวของหน้าต่าง out-of-sample ก่อนทุกรอบ ข้อดีคือการตอบสนองต่อการเปลี่ยนแปลง regime: ปีที่ความผันผวนต่ำ 2017 ถึง 2019 และปีที่ความผันผวนสูง 2020 ถึง 2023 คือสองโลกที่แตกต่างกัน และกลยุทธ์ trend-following เรียนรู้โลกที่มันจะเทรดจริงในขั้นต่อไป รูปแบบ anchored เริ่มหน้าต่าง in-sample ที่จุดเริ่มต้นคงที่และปล่อยให้มันเติบโต: 2018 ถึง 2021 ก่อน, แล้ว 2018 ถึง 2022, แล้ว 2018 ถึง 2023 ข้อมูลที่มากขึ้นให้พารามิเตอร์ที่เสถียรกว่าระหว่างรอบแต่ปรับตัวช้ากว่า กฎที่ใช้ได้ผล: เลือก rolling สำหรับระบบ trend-following และ breakout; เลือก anchored สำหรับกลยุทธ์ mean-reversion ที่เสถียรซึ่งพึ่งพาแนวรับ/แนวต้านระดับลึก ประวัติสั้นต่ำกว่า 5 ปี anchored ชนะโดยบีบข้อมูลที่มีอยู่ให้ได้มากที่สุด; ประวัติมากกว่า 10 ปีที่สะอาด rolling กลายเป็นมาตรฐาน
walk-forward ที่ผ่านการทดสอบรับประกันกำไรในการเทรดจริงหรือไม่?
ไม่ walk-forward คือการทดสอบความแข็งแกร่งทางสถิติที่แข็งแกร่งที่สุดที่นักเทรดรายย่อยมีอยู่ในมือ แต่มันอาศัยข้อสมมติเงียบอยู่: regime ตลาดในหน้าต่าง out-of-sample ต้องคล้ายกับ regime จริงเพียงพอให้พารามิเตอร์ที่รอดพ้นยังมีความหมาย หากกลยุทธ์เรียนรู้ตลาดปี 2018 ถึง 2023 ซึ่งเป็นช่วงที่มีความผันผวนสูงสองครั้งใหญ่และวัฏจักรดอกเบี้ยสองรอบ แล้วเทรดตั้งแต่มกราคม 2024 ในสภาพแวดล้อมที่ต่างออกไป (range ยาว, ความผันผวนต่ำ, การเคลื่อนไหวจากข่าวน้อยลง) ค่าเฉลี่ย out-of-sample อาจไม่สะท้อนสิ่งที่เกิดขึ้นจริง นั่นคือเหตุผลที่วิธีปฏิบัติที่มีวินัยไม่ใช่การพึ่งพา walk-forward อย่างเดียว แต่ต้องรวมกับ forward test 3 ถึง 6 เดือนบนบัญชีทดลองบวกกับการจำลอง Monte Carlo ที่เรียงลำดับ trade แบบสุ่มและแสดงการกระจายของ equity curve ที่เป็นไปได้ มีเพียงไฟเขียวสามดวงพร้อมกัน ได้แก่ walk-forward ที่มี WFE สูงกว่า 0.5, forward test บนบัญชีทดลองที่สอดคล้องกับความคาดหวัง และ drawdown ที่ percentile ที่ 95 ของ Monte Carlo ต่ำกว่า 25% เท่านั้นที่ให้เหตุผลสมเหตุสมผลสำหรับการใช้เงินทุนจริง เนื้อหานี้เป็นเพียงข้อมูลการศึกษา ไม่ใช่คำแนะนำการลงทุน