Danh mục
Hiệu suất
Độ khó
Nâng cao
Dùng trong
BacktestThiết kế chiến lượcVận hành MT5

Phân tích walk-forward

Phân tích walk-forward là phương pháp xác thực: tối ưu lại chiến lược trên một cửa sổ lịch sử, giao dịch nguyên vẹn bộ tham số đó trên cửa sổ liền sau, rồi trượt cả hai cửa sổ tới và lặp lại — chỉ trích dẫn những đoạn chưa bị đụng tới.

còn gọi: WFA, tối ưu hóa walk-forward, WFO, kiểm thử ngoài mẫu cuộn tiến

Đã cập nhật · Đã đánh giá · Được kiểm duyệt bởi mt5depot research desk

Nói đơn giản

Tinh chỉnh bộ quy tắc trên một quãng lịch sử, giao dịch chúng nguyên vẹn trên quãng liền sau, rồi trượt cả hai quãng đi và làm lại. Chỉ những quãng chưa bị đụng tới mới được tính vào con số bạn công bố.

Vì sao quan trọng

Một lần kiểm thử ngoài mẫu duy nhất trả lời một câu hỏi đúng một lần. Walk-forward hỏi lại câu ấy ở mỗi bước, và đó là cách duy nhất để thấy một lợi thế có tiếp tục sống sót qua việc khớp lại hay chỉ sống sót đúng một lần nhờ may mắn. Nó cũng diễn tập đúng việc mà người triển khai thật sự làm: chọn tham số từ quá khứ gần, rồi cho chúng chạy vào một tương lai chưa ai từng thấy.

  • Nó chấm điểm quy trình, không phải một bộ thiết lập. «Khớp lại theo cách này, rồi giao dịch» mới là việc bạn thật sự sẽ làm, nên đó mới là thứ đáng được xác thực.
  • Nó trả về một chuỗi kết quả ngoài mẫu thay vì một con số duy nhất, nên một quý đẹp đẽ đơn lẻ không thể tự mình gánh cả lời khẳng định.
  • Nó phơi bày những tham số không chịu đứng yên. Khi mỗi lần khớp lại lại rơi vào một chỗ mới, bộ quy tắc đang bám theo mẫu dữ liệu chứ không bám theo thị trường.
  • Một lần giữ lại dữ liệu duy nhất che mất câu hỏi về chế độ thị trường. Hai trong tám lượt tìm kiếm chúng tôi ghi lại đã vượt qua cửa sổ sau lần tìm rồi trượt ở cửa sổ trước nó.

Dùng để kiểm chứng một chiến lược

Dùng ở đâu

  • Xác thực một chiến lược mà bạn thật sự có ý định khớp lại tham số theo lịch.
  • Chọn khoảng cách giữa hai lần tối ưu lại — một bộ tham số còn dùng được bao lâu trước khi cần làm mới.
  • Tách một lợi thế sống sót qua nhiều chế độ thị trường khỏi một lợi thế chỉ từng tồn tại trong đúng cửa sổ đã tinh chỉnh nó.
  • Dựng một hồ sơ ngoài mẫu có thể bảo vệ được khi lịch sử quá ngắn để hy sinh trọn một khối dữ liệu lớn.

Kết quả đáng tin trông như thế nào

  • Chỉ các đoạn ngoài mẫu làm nên con số công bố, nối đuôi nhau, với các con số trong mẫu đặt bên cạnh chứ không trộn vào.
  • Bạn đã cố định độ dài huấn luyện, độ dài kiểm thử và bước trượt trước lần chạy đầu tiên, và cả ba đi kèm với kết quả.
  • Bản báo cáo trích dẫn hiệu suất ngoài mẫu tính theo tỷ lệ trên hiệu suất trong mẫu, chứ không chỉ nêu lợi nhuận.
  • Mỗi bước liệt kê bộ tham số nó đã chọn, để người đọc tự đánh giá chúng trôi dạt tới đâu.
  • Số cấu hình walk-forward đã thử phải xuất hiện ở đâu đó, vì thử nhiều tự nó cũng là một hình thức khớp dữ liệu.

Dấu hiệu cảnh báo

  • Một con số gộp duy nhất, không tách phần trong mẫu và phần ngoài mẫu.
  • Độ dài cửa sổ trông như đã được tinh chỉnh: một tỷ lệ huấn luyện trên kiểm thử kỳ lạ mà không ai giải thích.
  • Tham số nhảy chỗ ở mỗi lần khớp lại, nghĩa là mỗi lần khớp đang đuổi theo nhiễu của cửa sổ trước.
  • Hiệu suất gần hoặc trên 100 %, điều thường chỉ ra rò rỉ giữa các cửa sổ hơn nhiều so với một chiến lược bền bỉ khác thường.
  • Biến thể neo cố định và biến thể cuộn được trích dẫn lẫn lộn, vì một cửa sổ lớn dần và một cửa sổ cố định trả lời hai câu hỏi khác nhau.

Backtest so với giao dịch thật

  • Walk-forward thu hẹp một phần khoảng cách với kết quả thật, vì quy trình được kiểm thử chính là quy trình được triển khai.
  • Nó không đụng tới rủi ro khớp lệnh. Trượt giá, spread giãn và độ trễ đều nằm ngoài bài tập này.
  • Nó không thể bịa ra những chế độ thị trường mà lịch sử chưa từng chứa, nên một chiến lược sống sót qua hai mươi lần khớp lại bên trong một thập kỷ yên ả vẫn chưa hề được thử trước một thập kỷ căng thẳng.
  • Hãy chờ đợi kết quả thật nằm gần chuỗi ngoài mẫu chứ không phải gần con số trong mẫu. Các con số trong mẫu chẩn đoán quá trình tìm kiếm; chúng không dự báo điều gì cả.

Phương pháp kiểm chứng khuyến nghị

  1. 1MetaTrader 5 không kèm sẵn walk-forward cuộn. Ô Forward ở tab Settings của Strategy Tester chỉ cắt khoảng thời gian đúng một lần — 1/2, 1/3, 1/4 hoặc một ngày tùy chọn — rồi chấm điểm các lượt chạy sống sót trên phần đuôi trong một tab Forward Results riêng. Một lần chạy mua được một bước.
  2. 2Hãy dựng chuỗi bằng tay: lặp lại việc tối ưu hóa mỗi bước một lần, mỗi lần dịch khoảng ngày đi đúng độ dài bước, và giữ lại dòng forward của từng lần. Hai mươi đoạn tốn hai mươi lượt chạy, nên hãy chốt số bước trước khi bắt đầu.
  3. 3Hãy chọn tiêu chí tối ưu hóa trước khi nhìn vào lưới tham số, vì chính nó quyết định lượt chạy nào được MT5 gọi là người thắng ở từng bước một. Custom max chuyển quyết định đó cho OnTester() khi không tiêu chí dựng sẵn nào khớp với cách bạn đánh giá một lần chạy.
  4. 4MT5 luôn cắt lát forward ở cuối khoảng thời gian, nên cửa sổ nằm ngay trước giai đoạn huấn luyện không bao giờ bị đem ra thử. Hãy tự chạy cửa sổ đó: trên chính tập của chúng tôi, nó bắt được hai thiết kế mà bước kiểm tra forward đã cho qua.
  5. 5Hãy ghi lại bộ tham số thắng cuộc theo từng bước. Tab Forward Results đưa cho bạn một lượt chạy, không bao giờ đưa quỹ đạo của các thiết lập qua các bước — mà chính quỹ đạo ấy mới là phát hiện.
  6. 6Hãy coi toàn bộ bài tập là một thí nghiệm duy nhất. Chạy lại nó với những độ dài cửa sổ mới cho tới khi nó đạt chỉ đẩy việc quá khớp lên một tầng cao hơn thay vì loại bỏ nó.

Ví dụ

Một bước, lấy từ chính công việc chúng tôi đã ghi lại: tám lượt tìm kiếm tham số trong EXP-PARAM-SEARCH-OUTCOMES-001. Mẫu ichimoku đã quét một lưới 12 tổ hợp trên H1, giữ lại lượt chạy trong mẫu tốt nhất, rồi gặp hai cửa sổ mà quá trình tìm kiếm chưa từng chạm tới.

Lưới đã quét
12 tổ hợp
SL 30-80 x TP 60-250, H1
Hệ số lợi nhuận trong mẫu
1,37
Cửa sổ sau lần tìm kiếm
0,89
Cửa sổ trước lần tìm kiếm
0,80
Lượt tìm kiếm đã ghi / đã nhận
8 / 0

65 % rơi vào đúng dải mà phần lớn báo cáo gọi là mạnh. Cùng bộ thiết lập ấy vẫn lỗ tiền trên cả hai cửa sổ chưa từng thấy, và đó là lý do một bước được đọc như một điểm dữ liệu chứ không bao giờ là một phán quyết.

Phép tính 0,89 chia cho 1,37 = hiệu suất 65 % ở bước này; 0,80 chia cho 1,37 = 58 % ở cửa sổ phía trước

Kết quả Hiệu suất 65 % — trên một bộ thiết lập mà chúng tôi đã từ chối phát hành

Cách diễn giải

Hãy đọc chuỗi kết quả ngoài mẫu trước, rồi tới tỷ lệ, rồi tới độ ổn định của các tham số. Lợi nhuận công bố là thứ ít mang thông tin nhất trong ba thứ đó.

Khoảng Ý nghĩa
Dưới khoảng 40 % Quá trình tìm kiếm chủ yếu chỉ khớp với chính cửa sổ của nó. Một lợi thế nhỏ có thể còn sống, nhưng không phải lợi thế đã được quảng cáo.
Khoảng 40-60 % Bình thường một khi vài tham số dịch chuyển. Hãy lập kế hoạch quanh con số ngoài mẫu, không phải con số trong mẫu.
Trên 60 % ở một bước đơn lẻ Đáng khích lệ, chưa phải phán quyết. Bước 65 % của chúng tôi vẫn lỗ trên cả hai cửa sổ mà nó chưa từng thấy.
Trên 60 % ở phần lớn các bước, tham số ổn định Mạnh. Các lần khớp lại vẫn hiệu quả và chúng đồng thuận về bộ thiết lập.
Gần hoặc trên 100 % Hãy nghi ngờ rò rỉ giữa các cửa sổ, một cái nhìn trước tương lai, hoặc quá ít đoạn để mang được ý nghĩa.
  • Hãy đếm số đoạn. Bốn đoạn là một giai thoại; hai mươi đoạn là một phân phối.
  • Hãy vẽ biểu đồ các tham số được chọn qua từng bước. Một điểm tối ưu cứ trôi dạt đang nói với bạn rằng nó là nhiễu.
  • Đừng bao giờ trộn đường vốn trong mẫu và ngoài mẫu vào cùng một đường cong: hỗn hợp đó nửa là đề thi, nửa là đáp án.
  • Hãy kiểm thử cả cửa sổ nằm trước giai đoạn huấn luyện. Hai trong tám lượt tìm kiếm của chúng tôi vượt qua cửa sổ phía sau rồi trượt ở cửa sổ phía trước.

mt5depot công bố cửa sổ dữ liệu, mô hình kiểm thử và số lệnh đứng sau mỗi lần chạy, nên mọi khẳng định ngoài mẫu ở đây đều có thể đối chiếu được với chính mẫu đã tạo ra nó.

Sai lầm thường gặp

Gọi một lần chạy Forward của MT5 là walk-forward

Ô Forward tách khoảng thời gian đúng một lần rồi báo cáo phần đuôi. Đó là một lần giữ lại dữ liệu neo cố định với một cái tab gọn gàng hơn, và nó trả lời câu hỏi đúng một lần. Walk-forward cần điểm tách di chuyển, mà trong MT5 nghĩa là bạn phải tự điều khiển vòng lặp: mỗi bước một lần tối ưu hóa, rồi gom các dòng forward lại thành một chuỗi.

Tinh chỉnh chính cấu hình walk-forward

Thử vài độ dài huấn luyện và kiểm thử rồi công bố cặp nào chấm điểm cao nhất chỉ đơn giản là dời việc quá khớp lên cao một tầng. Độ dài cửa sổ cũng là tham số, nên hãy chọn chúng, viết chúng ra, rồi mới chạy.

Đọc một con số ngoài mẫu cao như thể đương nhiên là tốt

Lượt tìm kiếm macd_signal của chúng tôi đạt 1,14-1,15 trên cửa sổ sau lần tìm và 0,74-0,77 trên cửa sổ trước nó. Con số ngoài mẫu cao có thể nghĩa là rò rỉ, một chế độ thị trường thuận lợi, hoặc quá ít đoạn — hãy điều tra trước khi ăn mừng.

Cho rằng walk-forward chứng minh được độ bền trước những điều kiện chưa từng thấy

Nó chỉ luôn kiểm thử những điều kiện mà lịch sử đã chứa. Hai mươi lần khớp lại bên trong một chế độ thị trường cho ra hai mươi kết quả của chính chế độ đó, và điều ấy không nói gì về chế độ kế tiếp.

Chi tiết

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

Chạy phân tích walk-forward trong MetaTrader 5 như thế nào?
MT5 đưa cho bạn các mảnh ghép chứ không đưa cả vòng lặp. Hãy đặt Forward ở tab Settings của Strategy Tester thành 1/2, 1/3 hoặc 1/4: trình kiểm thử tối ưu hóa trên phần đầu khoảng ngày của bạn và chấm điểm các lượt chạy sống sót trên phần đuôi, rồi liệt kê chúng trong tab Forward Results riêng của nó. Đó là một bước. Muốn có cả một chuỗi, hãy dịch toàn bộ khoảng ngày tới trước đúng độ dài bước và chạy lại việc tối ưu hóa, mỗi đoạn một lần, mỗi lần ghi lại dòng forward và bộ tham số thắng cuộc. Hai mươi đoạn nghĩa là hai mươi lượt chạy.
Cửa sổ trong mẫu và ngoài mẫu nên dài bao nhiêu?
Đủ dài để cửa sổ huấn luyện chứa nhiều hơn một chế độ thị trường và cửa sổ kiểm thử chứa đủ số lệnh để có ý nghĩa. Các tỷ lệ dựng sẵn 1/2, 1/3 và 1/4 của trình kiểm thử là điểm khởi đầu hợp lý, còn một ngày forward tùy chọn cho lát kiểm thử ngắn hơn khi bước trượt nhỏ. Quy tắc quan trọng hơn con số: hãy chọn tỷ lệ trước lần chạy đầu tiên, vì thử vài tỷ lệ rồi công bố cái tốt nhất là lặp lại đúng sai lầm mà walk-forward sinh ra để bắt.
Phân tích walk-forward có loại bỏ được quá khớp không?
Không. Nó dời chỗ quá khớp và làm cho quá khớp hiện ra. Việc khớp lại vẫn diễn ra bên trong mỗi cửa sổ huấn luyện, nên phương pháp này đo xem bao nhiêu phần của việc khớp đó sống sót khi chạm vào cửa sổ kế tiếp, chứ không ngăn nó xảy ra. Tám lượt tìm kiếm chúng tôi ghi lại đã chạy 116 tổ hợp tham số và không nhận lượt nào: hai trong số đó vượt qua cửa sổ sau lần tìm rồi trượt ở cửa sổ trước nó — đúng kiểu mà một lần giữ lại dữ liệu duy nhất sẽ che đi.
Hiệu suất ngoài mẫu bao nhiêu thì được coi là tốt?
Khoảng 40-60 % là bình thường một khi vài tham số dịch chuyển, còn các con số trên 60 % giữ được qua phần lớn các bước với tham số ổn định thì được coi là mạnh. Hãy nghi ngờ mọi bước đơn lẻ: lượt tìm kiếm khớp đẹp nhất của chúng tôi đọc ra 65 % ở một bước, mà bộ thiết lập nó chọn vẫn lỗ tiền trên cả hai cửa sổ nó chưa từng thấy. Một con số gần hoặc trên 100 % thường báo hiệu rò rỉ giữa cửa sổ huấn luyện và cửa sổ kiểm thử hơn là một chiến lược bền bỉ khác thường.
Tiêu chí tối ưu hóa nào nên xếp hạng các lượt chạy?
Hãy quyết định trước khi lưới tham số hiện ra, vì tiêu chí — hàm mục tiêu, theo cách gọi trong tài liệu rộng hơn — chọn ra lượt chạy thắng cuộc ở mỗi bước. Xếp hạng theo số dư sẽ thưởng cho lượt chạy nào chịu rủi ro nhiều nhất, xếp hạng theo mức sụt giảm sẽ thưởng cho lượt chạy nào giao dịch ít nhất, còn Custom max trao quyết định cho hàm OnTester() của chính bạn khi không cách nào phù hợp. Trong các lượt tìm kiếm chúng tôi ghi lại, cách xếp hạng của trình kiểm thử chưa bao giờ tự nó kết luận được điều gì: mọi lượt chạy sống sót sau đó còn phải giữ hệ số lợi nhuận trên 1,0 trên ba cửa sổ, và không một lượt nào trong tám lượt làm được.
Phân tích walk-forward khác gì một lần kiểm thử ngoài mẫu duy nhất?
Một lần kiểm thử duy nhất giữ riêng một khối dữ liệu và đối chiếu bộ tham số cuối cùng với khối đó đúng một lần. Walk-forward lặp lại chu trình tinh chỉnh rồi kiểm thử dọc theo toàn bộ lịch sử, nên nó trả về cả một chuỗi kết quả ngoài mẫu và kiểm thử chính quy trình khớp lại — đúng việc mà người triển khai thật sự làm tháng này qua tháng khác.