Danh mục
Hiệu suất
Độ khó
Trung cấp
Dùng trong
BacktestThiết kế chiến lượcĐánh giá EA

Tối ưu hóa quá mức

Tối ưu hóa quá mức là việc tinh chỉnh tham số EA quá khớp với dữ liệu lịch sử, tạo ra chiến lược đẹp trên backtest nhưng kém trên dữ liệu chưa từng thấy, vì nó khai thác nhiễu thay vì mẫu hình thị trường thật.

còn gọi: overfitting, khớp đường cong, thiên lệch khai thác dữ liệu

Đã cập nhật · Đã đánh giá

Nói đơn giản

Chỉnh các quy tắc cho đến khi chúng bám sát quá khứ chặt đến mức đã học được những tình cờ của nó thay vì mẫu hình của nó. Backtest đẹp lên trong khi chiến lược tệ đi, và không có gì trong báo cáo phân biệt được hai điều đó.

Vì sao quan trọng

Tối ưu hóa quá mức là kiểu hỏng tạo ra bằng chứng đẹp đẽ, và chính vì thế nó sống sót qua vòng rà soát mà một chiến lược tồi sẽ trượt. Mỗi lượt tối ưu đều cải thiện kết quả được báo cáo, bất kể nó có cải thiện chiến lược hay không, nên một quy trình chỉ nhìn kết quả báo cáo thì không thể thấy sự khác biệt.

  • Nó giải thích nỗi thất vọng phổ biến nhất với EA: backtest xuất sắc, tài khoản thật tầm thường hoặc thua lỗ, mà chẳng có lỗi nào để tìm. Không có gì hỏng — việc tinh chỉnh đang đo chính mẫu dữ liệu.
  • Càng làm nhiều thì càng tệ. Nhiều tham số hơn, nhiều lượt tối ưu hơn và nhiều chiến lược ứng viên hơn đều làm tăng khả năng kẻ chiến thắng thắng nhờ khớp với nhiễu.
  • Không thể phát hiện từ chính lượt chạy thắng. Bằng chứng duy nhất tách một lợi thế thật khỏi một lợi thế được khớp là hiệu quả trên dữ liệu mà quá trình tinh chỉnh chưa từng thấy, và dữ liệu đó phải được giữ lại trước khi bắt đầu tinh chỉnh.

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

Dùng ở đâu

  • Đánh giá backtest công bố của một EA là bằng chứng của lợi thế hay bằng chứng của việc tinh chỉnh.
  • Quyết định một chiến lược được phép có bao nhiêu tham số trước khi tối ưu.
  • Diễn giải khoảng cách giữa kết quả in-sample và out-of-sample trong một lượt walk-forward.
  • Giải thích vì sao một chiến lược dẫn đầu bảng tối ưu lại xuống sức ngay khi được đưa vào chạy.

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

  • Cửa sổ được báo cáo bao gồm dữ liệu không bị đụng đến trong lúc chọn tham số.
  • Chiến lược có ít tham số, và mỗi tham số ứng với điều mà một trader có thể giải thích mà không cần viện đến backtest.
  • Các giá trị tham số lân cận cho kết quả tương tự. Lợi thế chỉ sống ở đúng một thiết lập là thuộc tính của mẫu dữ liệu.
  • Quy tắc vẫn chạy được, với cùng thiết lập, trên các công cụ và giai đoạn không dùng để chọn chúng.
  • Biết rõ đã thử bao nhiêu chiến lược trước chiến lược này, vì kẻ thắng của một cuộc tìm kiếm lớn vốn dĩ được kỳ vọng trông đẹp một cách tình cờ.

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

  • Tham số chính xác đến mức khó tin — trung bình 37 chu kỳ, dừng lỗ 23,7 pip — trong khi một giá trị tròn sẽ cho kết quả gần như tương đương nếu lợi thế là thật.
  • Tỷ lệ thắng trên 90 % hoặc Sharpe trên 3 trên backtest nhiều năm mà không có bản ghi forward nào.
  • Kết quả chỉ được trình bày trên đúng một công cụ và một cửa sổ đã dùng để chọn tham số.
  • Bề mặt hiệu quả có một đỉnh nhọn đơn độc thay vì một cao nguyên rộng.
  • Không hề nhắc đến đã thử bao nhiêu biến thể trước biến thể được công bố.

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

  • Tài khoản thật là phép thử thực sự out-of-sample đầu tiên, nên mức sụt xuất hiện ngay lập tức chứ không từ từ.
  • Chiến lược bị khớp thường trượt về hòa vốn trừ chi phí thay vì lỗ thảm khốc, khiến người ta dễ giải thích đó là một giai đoạn xấu.
  • Độ lớn của khoảng cách giữa in-sample và tài khoản thật mới là phép đo. Sụt giảm vừa phải là bình thường với mọi chiến lược; xuyên thủng điểm hòa vốn mới là chữ ký.
  • Tối ưu lại sau khi sụt sẽ khôi phục backtest và lặp lại vòng lặp, đó chính là cái bẫy do quy trình tạo ra.

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

  1. 1Giữ lại một cửa sổ out-of-sample trước khi chạm vào bất kỳ tham số nào, và chỉ nhìn nó đúng một lần, ở cuối.
  2. 2Ưu tiên ít tham số có ý nghĩa bảo vệ được hơn là nhiều tham số cho kết quả đẹp hơn.
  3. 3Xem vùng lân cận chứ không phải đỉnh: lấy tâm của một cao nguyên rộng thay vì chóp của một mũi nhọn.
  4. 4Kiểm tra lại thiết lập đã chốt trên các công cụ và giai đoạn khác mà không chỉnh sửa gì.
  5. 5Dùng phân tích walk-forward khi chiến lược thực sự cần được khớp lại theo thời gian, để việc khớp lại trở thành một phần của cái đang được kiểm tra.

Ví dụ

Một trình tối ưu báo cáo mười bộ tham số tốt nhất cho một chiến lược. Dòng trên cùng là dòng được công bố; chính hình dạng của bảng quanh nó mới nói lên lợi thế có thật hay không.

Thiết lập in-sample tốt nhất (chu kỳ 37)
PF 2,41
Thiết lập lân cận (chu kỳ 35–39)
PF 0,94–1,06
Chỉ một bước thay đổi là phá hỏng kết quả — đỉnh đó là mũi nhọn, không phải cao nguyên.
Cùng thiết lập, cửa sổ out-of-sample chưa đụng tới
PF 0,88

Lợi thế thật xuống dốc êm khi tham số rời xa điểm tối ưu. Lợi thế bị khớp thì rơi khỏi vách đá, và vách đá ấy đã nhìn thấy được trước khi tiêu một dữ liệu out-of-sample nào.

Phép tính 2,41 in-sample → 0,88 out-of-sample, trong khi các lân cận nằm ở mức hòa vốn

Kết quả Con số 2,41 là thuộc tính của cửa sổ, không phải của quy tắc

Cách diễn giải

Tối ưu hóa quá mức được chẩn đoán từ quy trình tạo ra kết quả, chứ không từ kết quả. Hãy hỏi cái gì đã được tinh chỉnh, trên dữ liệu nào, và cái gì đã được giữ lại.

Khoảng Ý nghĩa
Một cửa sổ, mọi tham số đều tối ưu, không giữ lại gì Báo cáo không có giá trị chứng minh nào về tương lai. Nó mô tả các quy tắc có thể bị bẻ cong tới đâu cho vừa một mẫu dữ liệu.
Có báo cáo cửa sổ out-of-sample nhưng dùng lại sau mỗi lần chỉnh Phần dự trữ đã tiêu hết. Một khi kết quả của nó quay lại nuôi việc tinh chỉnh, nó cũng là in-sample.
Một cửa sổ out-of-sample duy nhất chưa đụng tới, chỉ nhìn một lần Chuẩn tối thiểu. Hãy diễn giải khoảng cách thay vì mức tuyệt đối.
Walk-forward với cao nguyên tham số rộng và kiểm tra chéo nhiều công cụ Bằng chứng mạnh nhất có được trước khi chạy thật, vì chính việc khớp lại đã được kiểm tra.
  • Hãy đếm số chiến lược đã thử, không chỉ số tham số. Thử hai trăm ý tưởng rồi công bố cái tốt nhất là một cuộc tìm kiếm mà kẻ thắng vốn được kỳ vọng trông đẹp nhờ may mắn.
  • Làm tròn tham số đã công bố rồi chạy lại. Nếu kết quả phần lớn vẫn còn, độ chính xác đó chỉ là trang trí; nếu nó sụp, độ chính xác đó chính là lợi thế.
  • Hãy đánh giá bề mặt tham số thay vì đỉnh. Bề rộng mới là thuộc tính chuyển được sang dữ liệu chưa từng thấy.

Các mục đăng trên mt5depot ghi rõ cửa sổ dữ liệu, mô hình tester và số lệnh, để người đọc có thể đặt những câu hỏi trên thay vì tin vào đường cong.

Sai lầm thường gặp

Dùng lại cửa sổ out-of-sample

Mỗi lần một kết quả từ cửa sổ dự trữ dẫn tới một điều chỉnh nữa, cửa sổ đó trở thành một phần dữ liệu huấn luyện. Sau vài vòng thì chẳng còn gì là out-of-sample, và quy trình có vẻ chặt chẽ hơn trong khi chứng minh được ít hơn.

Coi Sharpe cao hay tỷ lệ thắng cao là bằng chứng không bị khớp quá mức

Đó đúng là những con số mà việc khớp thổi phồng lên. Sharpe in-sample trên 3 ở một EA bán lẻ nhiều khả năng là triệu chứng hơn là sự yên tâm.

Tin rằng ít tham số thì chiến lược an toàn

Số tham số là một đường; việc chọn chiến lược là đường khác. Chọn cái tốt nhất trong hai trăm chiến lược đơn giản trên cùng một cửa sổ vẫn khớp mẫu dữ liệu hiệu quả y như tinh chỉnh một chiến lược phức tạp.

Tối ưu lại khi hiệu quả thật gây thất vọng

Việc đó khôi phục backtest và lặp lại thất bại, vì bản khớp mới sinh ra từ đúng quy trình đã tạo ra bản cũ. Câu hỏi cần trả lời trước là lợi thế ban đầu đã bao giờ là out-of-sample hay chưa.

Chi tiết

Mười bốn backtest được công bố kết luận được gì và không kết luận được gì

Trên 14 EA được công bố ở đâyGiá trị
Profit factor in-sample1,27–1,52
Mục đăng có profit factor dưới 1,000
Có báo cáo khối out-of-sample11
Lợi nhuận out-of-sample−0,57 % đến +3,01 %
Khối out-of-sample bị lỗ2
Lượt chạy đã kiểm chứng trên tài khoản tiền thật0

Hãy đọc dòng cuối trước dòng đầu. Một backtest cuốn chiếu vẫn chạy trên lịch sử mà ai đó đã có thể xem qua, nên không có gì ở trên là out-of-sample theo nghĩa quyết định được điều gì — và ba EA đã tuyên bố ngày bắt đầu phần dự trữ rồi từ đó không công bố kết quả nào, đó chính là hình dạng của thiên lệch báo cáo khi nhìn từ bên trong.

Điểm yếu nằm ở kích thước chứ không ở dấu. Bản ghi in-sample trung vị ở đây là 362 lệnh đã đóng; khối dự trữ trung vị là 21. Một lượt chạy ngắn như vậy không thể tách lợi thế khỏi một quý yên ả, và vì thế những con số âm nhỏ (−0,57 %, −0,47 %) không mang nhiều phán quyết hơn những con số dương.

Danh sách Forward của Strategy Tester (No, 1/2, 1/3, 1/4, Custom) chia khoảng thời gian giúp bạn. Nó không thể ngăn bạn đọc lại nửa trước sau mỗi lượt tối ưu, và chính việc đọc lại đó tiêu hết nó. Hãy đặt Forward thành Custom với ngày bạn ngừng nhìn — 2026-04-01 cho mười khối ở trên — và phần dự trữ chỉ đáng giá bằng những gì rơi vào trong đó: 142 lệnh với Cairn, 40 với cái lớn kế tiếp, và số một chữ số với hai cái khác.

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

Làm sao biết một EA bị tối ưu quá mức trước khi mua?
Hãy nhìn quy trình thay vì đường cong. Hãy hỏi có cửa sổ nào được giữ lại trong lúc chọn tham số không, các thiết lập là số tròn hay chính xác đến mức khó tin, các giá trị lân cận có cho kết quả tương tự không, và các quy tắc đã bao giờ được thử trên một công cụ không dùng để chọn chúng chưa. Một câu hỏi không được trả lời ở đây tự nó đã là câu trả lời.
Dùng ít tham số hơn có ngăn được tối ưu quá mức không?
Có ích nhưng không ngăn được. Chọn chiến lược hiệu quả nhất trong nhiều ứng viên trên cùng một tập dữ liệu vẫn khớp tập dữ liệu đó ngay cả khi từng ứng viên đều đơn giản, nên số ý tưởng đã thử quan trọng ngang số núm chỉnh trên bất kỳ ý tưởng nào.
Tối ưu có phải lúc nào cũng xấu không?
Không — một chiến lược buộc phải được gán thiết lập nào đó, và chọn chúng từ lịch sử là hợp lý. Cái tách tối ưu khỏi tối ưu quá mức là có giữ lại gì để kiểm chứng lựa chọn đó hay không, và thiết lập được chọn nằm trên một cao nguyên rộng hay trên một mũi nhọn.