Walk-forward analysis — kiểm thử độ bền cho chiến lược giao dịch

Xác minh lần cuối: · Nội dung luôn có giá trị
Cảnh báo rủi ro · YMYL Bài viết này chỉ mang tính giáo dục và không phải là lời khuyên đầu tư. Giao dịch trên thị trường Forex tiềm ẩn rủi ro mất vốn cao — ESMA cho biết từ 74% đến 89% tài khoản nhà đầu tư bán lẻ thua lỗ. Giao dịch ký quỹ ngoại hối dành cho cá nhân không được cấp phép tại Việt Nam; hãy tham khảo ý kiến chuyên gia tài chính được cấp phép trước khi đưa ra bất kỳ quyết định nào.

Walk-forward analysis là phương pháp kiểm thử độ bền mà Robert Pardo hệ thống hóa trong cuốn The Evaluation and Optimization of Trading Strategies do Wiley xuất bản năm 2008, và từ đó đến nay các quỹ giao dịch hệ thống coi đây là bộ lọc mặc định trước khi cho phép một chiến lược tiếp xúc với vốn thật. Ý tưởng cốt lõi khá rõ ràng: thay vì tối ưu hóa tham số một lần trên toàn bộ lịch sử dữ liệu, bạn chia lịch sử thành các cặp cửa sổ in-sample và out-of-sample lặp đi lặp lại — và chỉ chiến lược nào duy trì được lợi thế trên dữ liệu chưa từng được hiệu chỉnh mới xứng đáng triển khai vào thực hành giao dịch thực tế.

Curve-fitting là vấn đề mà walk-forward giải quyết

Một backtest thông thường — khi trader quét qua hàng nghìn tổ hợp tham số rồi chọn ra kết quả tốt nhất — hầu như luôn tạo ra một đường cong vốn đẹp hơn bất kỳ thực tế nào có thể mang lại. Bộ tối ưu hóa nhìn vào nhiễu trong lịch sử và xem đó là tín hiệu: đường trung bình 14 kỳ vượt trội hơn đường 12 kỳ không phải vì nó "thông minh" hơn, mà đơn giản là nhiễu thị trường trong những tháng đó đã xếp theo cách thuận lợi cho nó. Các dấu hiệu của bệnh này được trình bày chi tiết trong các bài về chiến lược giao dịch hệ thống: đường cong quá mượt, tỷ lệ thắng trên 75% sau 200 lệnh, profit factor vượt 3,5, và nhạy cảm cực độ với những thay đổi nhỏ trong tham số. Walk-forward tước bỏ khả năng của bộ tối ưu hóa khi học từ chính dữ liệu mà chiến lược sẽ bị đánh giá cuối cùng.

Cơ chế cửa sổ trượt — từng bước một

Đầu tiên, bạn chia lịch sử giá — thường là mười năm dữ liệu sạch của các cặp tiền chính ở khung M30 hoặc cao hơn — thành một chuỗi các khối. Cửa sổ in-sample đầu tiên có thể bao gồm giai đoạn 2018 đến 2021, và cửa sổ out-of-sample tương ứng là năm 2022. Trên khối in-sample, bạn chạy tối ưu hóa toàn diện: để phần mềm kiểm thử quét qua hàng trăm tổ hợp tham số và trả về bộ có lợi nhuận tốt nhất ở mức sụt giảm vốn (drawdown) chấp nhận được. Sau đó, bạn đóng băng bộ tham số thắng và chạy chiến lược với chính xác những tham số đó trên out-of-sample 2022 — không chỉnh sửa code, không tối ưu lại. Bước thứ ba là dịch chuyển cửa sổ theo độ dài của khối OOS: in-sample mới là 2019 đến 2022, out-of-sample mới là 2023. Tối ưu lại, đóng băng, kiểm thử, dịch chuyển. Sau năm đến bảy vòng lặp như vậy, bạn có năm đến bảy kết quả OOS độc lập, và trung bình của chúng là đại diện trung thực nhất cho những gì một tài khoản thực sẽ mang lại.

Biến thể trượt và biến thể neo — hai lựa chọn

Trong biến thể trượt (rolling), cửa sổ in-sample có độ dài cố định và tiến lên phía trước giống như con sâu bướm: luôn bốn năm, chỉ khác điểm đầu và điểm cuối. Chiến lược tự nhiên "quên" những gì xảy ra từ lâu và tập trung vào những năm gần đây — điều này có nghĩa là nó phản ứng nhanh hơn với sự thay đổi của chế độ thị trường. Sau cú sốc biến động năm 2020 hay chu kỳ tăng lãi suất năm 2022, chiến lược walk-forward dạng trượt ở vòng lặp tiếp theo đã giao dịch với các tham số được tinh chỉnh cho thế giới mới. Biến thể neo (anchored) giữ điểm khởi đầu cố định và để cửa sổ IS mở rộng dần: 2018 đến 2021 trước, rồi 2018 đến 2022, rồi 2018 đến 2023. Nhiều dữ liệu hơn thường mang lại tham số ổn định hơn giữa các vòng lặp nhưng thích ứng chậm hơn. Quy tắc thực tế: chọn biến thể trượt cho các hệ thống theo xu hướng, breakout và momentum; chọn biến thể neo cho các chiến lược hồi quy trung bình ổn định dựa vào các vùng hỗ trợ và kháng cự sâu.

Walk-forward efficiency và cách đọc chỉ số này

WFE là tỷ số giữa lợi nhuận hàng năm của OOS và lợi nhuận hàng năm của IS, thường được biểu thị dưới dạng phần trăm. Các giá trị gần 1,0 đáng ngờ — mức chuyển tiếp hoàn hảo như vậy hầu như không bao giờ xảy ra ngoài các hệ thống theo xu hướng đơn giản nhất, và khi nó xảy ra, thường có gì đó đang rò rỉ giữa các cửa sổ. Khoảng 0,5 đến 0,75 là vùng tự nhiên của các chiến lược bền vững, và đây là khoảng đáng cân nhắc để triển khai thực tế. Khoảng 0,3 đến 0,5 cho thấy mức độ khớp nhiễu vừa phải: chiến lược nắm bắt được điều gì đó thực, nhưng bộ quy tắc mang quá nhiều bậc tự do. Bất cứ điều gì dưới 0,3 là lời thú nhận rõ ràng về curve-fitting, và chỉ số đang nói với trader điều mà cái tôi không muốn nghe: hãy đơn giản hóa các quy tắc, đừng chạy thêm một bài kiểm thử nữa cho đến khi con số trông đẹp. Một nguyên nhân riêng biệt khiến WFE kém là một chỉ báo kỹ thuật vẽ lại (repaint) dữ liệu lịch sử — tín hiệu repaint không phù hợp cho walk-forward vì dữ liệu in-sample trông tốt hơn thực tế rất nhiều.

Ví dụ minh họa — hai chiến lược dưới kính lúp

Hãy tưởng tượng hai chiến lược trên EUR/USD, cả hai đều được kiểm thử trên dữ liệu M30 giai đoạn 2018 đến 2023 theo biến thể trượt, với cửa sổ in-sample bốn năm và cửa sổ out-of-sample một năm. Chiến lược breakout mang lại ở vòng lặp đầu tiên tỷ lệ thắng IS là 70% và lợi nhuận hàng năm là 30%; trong cửa sổ out-of-sample tương ứng, tỷ lệ thắng giảm xuống 55% và lợi nhuận còn 12% mỗi năm. WFE là 12 chia cho 30, tức 0,4. Qua năm vòng lặp, WFE trung vị ổn định trong khoảng 0,38 đến 0,45 — chiến lược nắm bắt được lợi thế thực, nhưng logic vào lệnh quá chi tiết và cần đơn giản hóa. Chiến lược thứ hai, một hệ thống theo xu hướng dựa trên đường trung bình động, đạt tỷ lệ thắng IS 60% và lợi nhuận hàng năm 25%; OOS là 58% và 20%. WFE 0,8, tham số biến động ít hơn 20% giữa các vòng lặp. Chiến lược đó xứng đáng được đưa vào giai đoạn forward testing trên demo. Tất cả các con số chỉ mang tính minh họa — chúng cho thấy cách đọc bài kiểm thử, không phải điều bạn có thể kỳ vọng từ bất kỳ chiến lược cụ thể nào.

“Mục đích toàn bộ của walk-forward analysis là tiết lộ hiệu suất giao dịch thực thời gian thực, với tiền thật của một chiến lược mà không cần thực sự giao dịch với tiền thật trong thời gian thực.” — Robert Pardo, 2008

Điều walk-forward không thể làm

Ngay cả một bài walk-forward sạch với WFE vượt thoải mái 0,5 cũng không hứa hẹn lợi nhuận khi giao dịch thực. Phương pháp này dựa trên một giả định thầm lặng: chế độ thị trường được nắm bắt bởi các cửa sổ OOS phải đủ giống với chế độ mà chiến lược thực sự sẽ giao dịch. Nếu lịch sử chứa hai cú sốc biến động lớn và hai chu kỳ lãi suất, nhưng chiến lược sau đó giao dịch trong giai đoạn tích lũy dài với biến động thấp và ít chuyển động do tin tức, thì trung bình OOS có thể không phản ánh những gì đang xảy ra trong thực tế. Đó là lý do tại sao nghề này đòi hỏi phải chồng ba bộ lọc: walk-forward với WFE trong vùng an toàn, forward test ba đến sáu tháng trên tài khoản demo, và một mô phỏng Monte Carlo ngẫu nhiên sắp xếp lại chuỗi giao dịch để lộ ra phân phối của các đường cong vốn có thể xảy ra. Walk-forward là một cái rây rất tốt, không phải nhà tiên tri — không có bài kiểm thử lịch sử nào là. Nền tảng về cách tìm lợi thế mà walk-forward sau đó kiểm tra được trình bày trong các bài về phân tích kỹ thuật và phân tích cơ bản; bối cảnh phương pháp rộng hơn nằm trong xưởng thực hành của trader trên ForexMechanics.

Bước tiếp theo của bạn

  1. Tải lịch sử giá của cặp tiền bạn thực sự giao dịch và tách riêng năm năm dữ liệu M30 hoặc M15 gần nhất; chia chúng thành năm cặp cửa sổ — bốn năm in-sample cộng một năm out-of-sample — với điểm bắt đầu dịch chuyển một năm giữa các vòng lặp, để bạn có thể so sánh kết quả OOS qua các chế độ thị trường khác nhau và thu thập ít nhất năm quan sát độc lập.
  2. Chạy tối ưu hóa tham số đầy đủ chỉ trên cửa sổ in-sample đầu tiên từ 2018 đến 2021, ghi lại bộ thắng, đóng băng hoàn toàn và thực hiện một backtest duy nhất trên OOS 2022 tương ứng mà không tinh chỉnh thêm; lặp lại chu kỳ cho tất cả năm cặp cửa sổ và ghi lại lợi nhuận hàng năm cùng drawdown từ mỗi lần chạy OOS vào bảng tính.
  3. Tính WFE cho mỗi vòng lặp bằng tỷ số giữa lợi nhuận OOS và lợi nhuận IS, sau đó xem cả giá trị trung bình và trung vị; nếu trung vị giảm xuống dưới 0,5 hoặc tham số nhảy vọt hơn 50% giữa các vòng lặp, chiến lược đang khớp nhiễu và phản ứng đúng đắn là đơn giản hóa logic vào lệnh thay vì cố gắng thêm một lần tối ưu hóa nữa.
  4. Với bất kỳ chiến lược nào vượt qua cổng walk-forward với WFE trên 0,5, hãy thêm hai bộ lọc bổ sung trước khi rủi ro vốn thực: ba đến sáu tháng forward testing trên tài khoản demo sử dụng các tham số được đóng băng sau vòng lặp cuối cùng, cộng với mô phỏng Monte Carlo ngẫu nhiên hoán vị thứ tự giao dịch và có drawdown ở phân vị thứ 95 phải nằm trong giới hạn chấp nhận rủi ro cá nhân của bạn.

Lưu ý pháp lý quan trọng: Giao dịch ngoại hối và CFD bán lẻ thông qua các nhà môi giới nước ngoài không được cấp phép cho nhà đầu tư cá nhân tại Việt Nam theo quy định hiện hành của Ngân hàng Nhà nước Việt Nam (NHNN). Giao dịch qua broker nước ngoài không có giấy phép của NHNN tiềm ẩn rủi ro pháp lý và tài chính đáng kể. Bài viết này chỉ có mục đích giáo dục và không phải lời khuyên đầu tư.

Jarosław Wasiński
Giới thiệu tác giả

Jarosław Wasiński

Tổng biên tập MyBank.pl · Nhà phân tích tài chính và thị trường

Nhà phân tích và chuyên gia thực hành độc lập với hơn 20 năm kinh nghiệm trong lĩnh vực tài chính. Người sáng lập và tổng biên tập cổng thông tin MyBank.pl hoạt động từ năm 2004. Phân tích cơ bản thị trường ngoại hối và kinh tế vĩ mô từ năm 2007. Viết từ góc độ thị trường toàn cầu, chú trọng khung pháp lý quốc tế. Nội dung mang tính giáo dục; giao dịch Forex ký quỹ không được cấp phép cho nhà đầu tư cá nhân tại Việt Nam.

Nguồn và tài liệu tham khảo

  1. 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 ↗
  2. MetaQuotes MetaTrader 5 Help — Strategy Optimization · oficjalna dokumentacja MT5 o optymalizacji parametrów i forward testing przeciw overfittingowi www.metatrader5.com ↗
  3. 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 ↗
  4. MQL5 Community Articles on Strategy Testing in MQL5 · kuratorska kolekcja artykułów wspólnoty MQL5 o backtestingu i walk-forward www.mql5.com ↗

Câu hỏi thường gặp

Walk-forward khác gì so với phép chia in-sample / out-of-sample đơn lẻ?

Phép chia hold-out cổ điển cắt ra một cửa sổ duy nhất ở cuối lịch sử và kiểm thử chiến lược ở đó với các tham số được điều chỉnh trên phần còn lại. Đó là bài kiểm tra độ bền một lần duy nhất, chỉ cho bạn một con số và kết thúc. Walk-forward lặp lại bài tập này nhiều lần. Cửa sổ OOS đầu tiên là 2022, thứ hai là 2023, thứ ba là 2024, và các tham số được tối ưu lại trên khối in-sample đã dịch chuyển trước mỗi cửa sổ. Do đó trader không phụ thuộc vào may rủi của một năm đơn lẻ — năm đến mười cửa sổ OOS được tổng hợp và tác động của may mắn giảm đáng kể. Ưu điểm thứ hai là walk-forward phản chiếu cách triển khai thực tế thực sự hoạt động: tối ưu hóa, đóng băng, giao dịch một năm, tối ưu lại. Đó chính xác là cách phần lớn các quỹ hệ thống vận hành. Phép chia hold-out đơn lẻ không nắm bắt được chu kỳ này.

Làm thế nào để đọc WFE và những ngưỡng nào quan trọng?

Walk-forward efficiency được tính bằng lợi nhuận hàng năm OOS chia cho lợi nhuận hàng năm IS. Nó cho bạn biết bao nhiêu phần trăm "lời hứa" in-sample thực sự sống sót khi tiếp xúc với dữ liệu chưa thấy. Các giá trị gần 1,0 đáng ngờ — mức chuyển tiếp hoàn hảo như vậy hiếm gặp ngoài các hệ thống theo xu hướng rất đơn giản, và khi xảy ra thường có gì đó rò rỉ giữa các cửa sổ. Khoảng 0,5 đến 0,75 là vùng điển hình của các chiến lược xứng đáng triển khai và cần cân nhắc nghiêm túc về vốn thực. Khoảng 0,3 đến 0,5 báo hiệu mức khớp nhiễu vừa phải: chiến lược nắm bắt được điều gì đó thực, nhưng bộ quy tắc mang quá nhiều tham số. Bất kỳ giá trị nào dưới 0,3 là lời thú nhận rõ ràng về curve-fitting, và chỉ số đang nói với trader điều cái tôi không muốn nghe: đơn giản hóa quy tắc thay vì khởi chạy thêm một bài kiểm thử. Ngưỡng không bao giờ là tiêu chí duy nhất — bạn cũng cần kiểm tra tính ổn định của tham số giữa các vòng lặp (nhảy vọt trên 50% cho thấy độ nhạy cảm quá cao) và phân phối drawdown qua tất cả các cửa sổ OOS, không chỉ giá trị trung bình.

Khi nào nên chọn biến thể rolling thay vì anchored?

Biến thể rolling sử dụng cửa sổ in-sample có độ dài cố định — ví dụ bốn năm — và dịch chuyển nó về phía trước theo độ dài cửa sổ OOS trước mỗi vòng lặp. Lợi ích là khả năng phản ứng với sự thay đổi chế độ thị trường: những năm biến động thấp 2017 đến 2019 và những năm biến động cao 2020 đến 2023 là hai thế giới khác nhau, và chiến lược theo xu hướng học được thế giới mà nó sẽ thực sự giao dịch tiếp theo. Biến thể anchored bắt đầu cửa sổ in-sample tại một điểm gốc cố định và để nó mở rộng — 2018 đến 2021 trước, rồi 2018 đến 2022, rồi 2018 đến 2023. Nhiều dữ liệu hơn mang lại tham số ổn định hơn với cái giá là thích ứng chậm hơn. Theo nguyên tắc thực tế: chọn rolling cho các hệ thống theo xu hướng và breakout; chọn anchored cho các chiến lược hồi quy trung bình ổn định dựa vào các vùng hỗ trợ và kháng cự sâu. Với lịch sử ngắn dưới năm năm, anchored thắng khi tận dụng tối đa dữ liệu có sẵn; với hơn mười năm lịch sử sạch, rolling trở thành tiêu chuẩn.

Walk-forward sạch có đảm bảo lợi nhuận khi giao dịch thực không?

Không. Walk-forward là bài kiểm tra độ bền thống kê mạnh nhất mà trader cá nhân có thể tiếp cận, nhưng nó mang theo một giả định thầm lặng: chế độ thị trường trong các cửa sổ OOS phải đủ giống với chế độ thực tế để các tham số sống sót vẫn có ý nghĩa. Nếu chiến lược học được thị trường từ 2018 đến 2023 — giai đoạn có hai cú sốc biến động lớn và hai chu kỳ lãi suất — và sau đó giao dịch từ tháng 1 năm 2024 trong môi trường khác (tích lũy dài, biến động thấp, ít chuyển động do tin tức), thì trung bình OOS có thể không phản ánh những gì đang xảy ra trong thực tế. Đó là lý do tại sao phương pháp kỷ luật không phải chỉ dựa vào walk-forward mà kết hợp nó với forward test ba đến sáu tháng trên demo cộng với mô phỏng Monte Carlo ngẫu nhiên sắp xếp lại thứ tự giao dịch và cho thấy phân phối của các đường cong vốn có thể. Chỉ có ba đèn xanh cùng lúc — walk-forward với WFE trên 0,5, forward test demo phù hợp kỳ vọng, và drawdown ở phân vị thứ 95 của Monte Carlo dưới 25% — mới biện minh cho việc triển khai vốn thực.

Tìm hiểu sâu hơn · hướng dẫn đầy đủ