Hiện tượng overfit (quá khớp) trong backtest (kiểm thử lịch sử) xảy ra khi một quy trình nghiên cứu điều chỉnh các lựa chọn của mình quá sát với các quan sát lịch sử, khiến một quy tắc trông tốt bất thường trong đúng mẫu mà nó được chọn ra. Nguyên nhân không chỉ giới hạn ở một mô hình phức tạp. Một quy tắc giao cắt đơn giản cũng có thể bị overfit nếu ai đó thử đủ nhiều tài sản, giai đoạn thời gian, độ rộng lệnh stop và thước đo, rồi chỉ báo cáo tổ hợp may mắn nhất.

các cửa sổ nghiên cứu theo trình tự thời gianMột bài kiểm thử theo trình tự thời gian chia dữ liệu lịch sử sao cho các nến đánh giá trong tương lai không tham gia vào việc chọn tham số cho giai đoạn trước; thông tin về sau vẫn có thể ảnh hưởng đến các quyết định lặp lại của người nghiên cứu.Quan sát trước đóChỉ định giai đoạn; ước lượng tham số tại đâyTập holdoutĐánh giá một lầnVề sauĐánh giá ngoài mẫu (forward)Cũ nhấtThời gian →Tập holdout giảm bớt một dạng tái sử dụng; nó không thể xóa bỏ các lựa chọn nghiên cứu lặp lại hay đảm bảo hiệu suất trong tương lai
Một bài kiểm thử theo trình tự thời gian chia dữ liệu lịch sử sao cho các nến đánh giá trong tương lai không tham gia vào việc chọn tham số cho giai đoạn trước; thông tin về sau vẫn có thể ảnh hưởng đến các quyết định lặp lại của người nghiên cứu. Sơ đồ minh họa giảng giải · không phải dữ liệu thị trường trực tiếp

Đếm số lựa chọn bạn đã thực hiện

Giả sử một nhà nghiên cứu thử mười chỉ báo, vài ngưỡng, bốn tài sản, hai khung thời gian và nhiều khoảng ngày khác nhau. Ngay cả khi mỗi lần chạy dùng một quy tắc hợp lý, số cơ hội tìm ra một kết quả lịch sử hấp dẫn vẫn lớn hơn nhiều so với ảnh chụp màn hình cuối cùng gợi ý. Những lựa chọn được đưa ra sau khi xem kết quả cũng được tính: thay đổi điều kiện thoát, bỏ qua một thị trường khó, hay chọn thước đo tô điểm cho chiến lược đều làm thay đổi thí nghiệm.

Bạn hãy giữ một nhật ký thí nghiệm có ghi ngày. Ghi lại từng phiên bản chiến lược đã thử, bộ tham số, bộ dữ liệu, thước đo và lý do đổi hướng, kể cả những kết quả đáng thất vọng. Nếu một thí nghiệm trước đó dẫn bạn đến việc chọn một giả thuyết mới, hãy nêu rõ mối liên hệ đó. Đừng xóa các lần chạy thất bại khỏi phần mô tả chỉ vì cấu hình cuối cùng trông gọn gàng.

Dùng trình tự thời gian nhưng đừng coi đó là phương thuốc

Trước khi tinh chỉnh, hãy chia dữ liệu theo thời gian. Dùng các quan sát sớm hơn để triển khai và so sánh các quy tắc, và để dành một khoảng thời gian muộn hơn cho một lần đánh giá có giới hạn. Đừng xáo trộn ngẫu nhiên các bar chuỗi thời gian vào nhóm huấn luyện và nhóm kiểm tra: các bar liền kề chia sẻ bối cảnh và một cách chia ngẫu nhiên có thể để thông tin từ một chế độ thị trường muộn hơn ảnh hưởng đến các lựa chọn sớm hơn. Hãy ghi lại ranh giới và phương pháp chọn trước khi mở kết quả của tập holdout.

Một tập holdout chỉ mang lại sự bảo vệ hạn chế khi nó còn chưa được xem. Nếu bạn chạy cấu hình đã chọn trên đó, xem xét các giao dịch của nó, thay đổi ngưỡng rồi chạy lại, thì những quan sát đó đã ảnh hưởng đến quy tắc sau khi chỉnh sửa. Hãy đánh dấu đoạn đó là đã dùng. Một mẫu thực sự muộn hơn hoặc một quan sát trong tương lai (prospective) có thể trả lời một câu hỏi mới, dù cả hai đều không đảm bảo rằng các điều kiện tương lai sẽ tương đương.

Đánh giá walk-forward lặp lại các cửa sổ khớp mô hình rồi đánh giá theo trình tự thời gian, nhưng nó cũng có thể bị lạm dụng. Việc chọn độ dài cửa sổ, lịch huấn luyện lại và một thước đo cuối cùng sau khi xem nhiều đường kết quả tạo ra một cuộc tìm kiếm khác. Hãy ghi lại toàn bộ quy trình và so sánh nó với một chuẩn đơn giản. Báo cáo số lượng cửa sổ và bất kỳ chế độ thị trường nào mà phương pháp thất bại.

sơ đồ tìm kiếm chiến lược và tái sử dụng tập giữ riêngNhật ký nghiên cứu ghi lại mọi phương án được thử nghiệm dựa trên các quan sát trước đó. Sau đó, một đặc tả đã chọn có thể được đánh giá một lần trên một đoạn dữ liệu về sau đã được giữ riêng. Nếu đoạn đó bị xem xét lặp lại để chỉnh sửa quy tắc, nó đã trở thành một phần của quá trình lựa chọn và cần được gắn nhãn là đã dùng.TẬP GIỮ RIÊNG CHỈ NGUYÊN VẸN CHO ĐẾN KHI NÓ LÀM THAY ĐỔI MỘT QUYẾT ĐỊNHdữ liệu trước đóghi lại mọi quy tắc, ngưỡngvà kết quả bị loạiCố định một phiên bảngiữ riêng đoạn dữ liệu về sautrước khi mở kết quảĐánh giá một lầnghi lại các giới hạn vàtoàn bộ kết quảChỉnh sửa sau khi đã nhìn vào dữ liệu?gắn nhãn tập giữ riêng đã dùng · bắt đầu kiểm thử mớiTrình tự thời gian có ích · nhưng không thể xóa bỏ các lựa chọn lặp lại của nhà nghiên cứu
Nhật ký nghiên cứu ghi lại mọi phương án được thử nghiệm dựa trên các quan sát trước đó. Sau đó, một đặc tả đã chọn có thể được đánh giá một lần trên một đoạn dữ liệu về sau đã được giữ riêng. Nếu đoạn đó bị xem xét lặp lại để chỉnh sửa quy tắc, nó đã trở thành một phần của quá trình lựa chọn và cần được gắn nhãn là đã dùng. Đồ họa minh họa giảng giải · không phải dữ liệu thị trường trực tiếp

Tự đọc thủ công một phép chia PBO

Nghiên cứu Probability of Backtest Overfitting của Bailey, Borwein, López de Prado và Zhu giới thiệu kiểm định chéo đối xứng tổ hợp (CSCV): chia một bản ghi lợi nhuận ứng viên thành số khối chẵn, lặp lại việc dùng một nửa để chọn ứng viên hàng đầu, rồi xếp hạng lựa chọn đó trên nửa bổ sung. Đây là một ví dụ giảng dạy được cố ý thu nhỏ, dùng bốn khối có độ dài bằng nhau và lợi nhuận trung bình làm điểm số cố định. Mọi giá trị dưới đây đều là số liệu giả định và được biểu diễn theo phần trăm mỗi khối; không có giá trị nào là dữ liệu sàn giao dịch.

Ứng viên Khối 1–2: trung bình chọn lọc Khối 3–4: trung bình đánh giá Hạng đánh giá (tệ nhất đến tốt nhất)
A 7.0% −4.0% 1 trên 4
B 2.1% 2.1% 4 trên 4
C 1.0% 1.0% 3 trên 4
D 1.5% 0.5% 2 trên 4

Ứng viên A thắng nửa đầu, nhưng xếp cuối trên nửa bổ sung. Với N = 4 ứng viên, hạng ngoài mẫu tương đối của nó là ω = 1/(N + 1) = 0.20. Logit là λ = ln(ω/(1 − ω)) = ln(0.20/0.80) ≈ −1.386, âm vì ứng viên thắng cuộc xếp dưới trung vị các ứng viên trong phép chia này. Đây chỉ là một phép chia minh họa; ước lượng PBO là tỷ lệ của tất cả các phép chia CSCV được quy định có λ < 0. Phép tính chỉ dùng lợi nhuận trung bình để số học vẫn hiển hiện rõ ràng; một nghiên cứu thực sự phải cố định thước đo hiệu suất của mình và áp dụng nó nhất quán cho mọi bộ khối được ghép.

Cách chia CSCV đơn giản hóa xếp ứng viên được chọn dưới trung vị ngoài mẫuLợi suất trung bình theo khối độ dài bằng nhau là số liệu hư cấu: ứng viên A dẫn đầu nửa chọn lọc với 7.0% và xếp cuối ở nửa bổ sung với âm 4.0%; B, C và D xếp trên A. Với bốn ứng viên, omega bằng 1 chia 5, và lambda là ln(0.20 chia 0.80), tức khoảng âm 1.386. Đây là một lần chia mẫu để giảng dạy, không phải kết quả tiền mã hóa hay ước lượng PBO.MỘT LẦN CHIA CSCV · LỢI SUẤT TRUNG BÌNH THEO KHỐI HƯ CẤU · KHÔNG PHẢI DỮ LIỆU THỊ TRƯỜNGKHỐI 1–2 · CHỌN LỌCKHỐI 3–4 · XẾP HẠNGA7.0% · dẫn đầuB2.1%C1.0%D1.5%A · hạng 1 / 4−4.0%D · hạng 2 / 40.5%C · hạng 3 / 41.0%B · hạng 4 / 42.1%ω = 1/(4+1) = 0.20 · λ = ln(0.20/0.80) ≈ −1.386 · chỉ một lần chiaLogit âm nghĩa là ứng viên được chọn rơi xuống dưới trung vị đánh giá
Lợi suất trung bình theo khối độ dài bằng nhau là số liệu hư cấu: ứng viên A dẫn đầu nửa chọn lọc với 7.0% và xếp cuối ở nửa bổ sung với âm 4.0%; B, C và D xếp trên A. Với bốn ứng viên, omega bằng 1 chia 5, và lambda là ln(0.20 chia 0.80), tức khoảng âm 1.386. Đây là một lần chia mẫu để giảng dạy, không phải kết quả tiền mã hóa hay ước lượng PBO. Đồ họa minh họa giảng giải · không phải dữ liệu thị trường trực tiếp

PBO là một chẩn đoán về lựa chọn tương đối, không phải xác suất một chiến lược crypto live sẽ thua lỗ. Các tổ hợp khối đối xứng giúp xem xét cách thứ hạng ứng viên thay đổi khi các phần trong mẫu và ngoài mẫu được ghép lại, nhưng chúng không tái tạo một đường triển khai theo trình tự thời gian. Hãy giữ một bài kiểm tra theo trình tự thời gian, thực hiện sau đó và chưa từng được dùng, hoặc một bản ghi giao dịch mô phỏng (paper) mang tính tiên nghiệm (prospective) cho câu hỏi riêng đó, và đánh dấu bất kỳ tập holdout nào là đã dùng một khi nó đã ảnh hưởng đến một quyết định.

Nghiên cứu Deflated Sharpe Ratio đề cập đến thiên lệch lựa chọn và lợi nhuận không chuẩn khi diễn giải một tỷ lệ Sharpe. Đây là một điều chỉnh riêng biệt: nó không khắc phục lỗi nhìn trước, các lệnh khớp bị thiếu hay bộ dữ liệu bị lỗi. Kết luận của nó phụ thuộc vào mẫu lợi nhuận và các giả định về số lượng và sự phụ thuộc của các lần thử, vì vậy đừng chỉ đưa vào nó cấu hình thắng cuộc mà bỏ qua lịch sử nghiên cứu.

Xem xét toàn bộ phân phối và cơ chế vận hành

Hãy trình bày nhiều hơn con số lợi nhuận cao nhất. Bao gồm số lượng giao dịch, diễn biến mức sụt giảm (drawdown), các chuỗi thua, mức phơi nhiễm (exposure), thời gian ở trong thị trường, chi phí và sự biến thiên giữa các cài đặt đã thử. Kiểm tra xem liệu một vài giao dịch lớn bất thường có chiếm phần lớn kết quả hay không. Thử nghiệm với những giả định chi phí giao dịch khác nhau ở mức độ vừa phải. Nếu một kết quả biến mất khi điều chỉnh tham số nhỏ hoặc khi chi phí thực tế cao hơn, hãy mô tả rõ độ nhạy đó. Một báo cáo hữu ích liệt kê toàn bộ tập ứng viên, điểm số chọn lọc và quy tắc xử lý khi bằng điểm, thiết kế khối, số lượng kết quả phép chia, mô hình chi phí, và cả hạng đánh giá tệ nhất lẫn trung vị. Người đọc cần thấy được tần suất ứng viên thắng chỉ đơn thuần là ít tệ hơn các lựa chọn khác, thay vì suy ra độ tin cậy từ một thống kê đã điều chỉnh duy nhất.

Hãy kiểm tra riêng tính nhân quả về thời điểm và nguồn gốc dữ liệu. Một chiến lược có thể trông tuyệt vời vì nó đã dùng thông tin không có sẵn tại thời điểm ra quyết định, hoặc vì một dấu thời gian, việc chuyển hợp đồng hay một khoảng thời gian bị thiếu đã bị xử lý sai. Sửa một lỗi triển khai như vậy không loại bỏ thiên lệch lựa chọn. Cả dữ liệu lẫn các lựa chọn nghiên cứu đều cần được xem xét.

Nêu rõ đầu ra của một công cụ đại diện cho điều gì

SuperQuant cung cấp một sổ cái tất định và một quy trình chẩn đoán theo trình tự thời gian, nhưng các bộ dữ liệu lịch sử đi kèm của nó là dữ liệu tổng hợp. Ứng dụng có thể giúp làm rõ cách một quy tắc đã cấu hình hoạt động trong môi trường đó; nó không thể chứng minh lợi nhuận dựa trên lịch sử sàn giao dịch quan sát được hay chứng nhận một lệnh khớp thực tế. Việc chạy lại cùng một bộ dữ liệu tổng hợp dưới nhiều cấu hình vẫn tạo ra vấn đề lựa chọn, ngay cả khi phần mềm hoạt động đúng.

Hãy dùng quy trình backtest, khai báo trước một quy trình chọn lọc trong bảng tính giả thuyết, và đọc về thiên lệch nhìn trước cùng tìm kiếm tham số đường trung bình động. Giữ lịch sử phiên bản và một điều kiện thất bại bên cạnh mỗi kết quả. Đây là hướng dẫn nghiên cứu, không phải lời khuyên đầu tư hay tuyên bố rằng bất kỳ kỹ thuật nào loại bỏ được sự không chắc chắn.