Khi nghĩ ra một ý tưởng hay chiến lược giao dịch, nhà giao dịch thuật toán sẽ mô hình hóa ý tưởng này thành thuật toán cụ thể, sau đó sử dụng dữ liệu quá khứ để kiểm thử liệu thuật toán có sinh lời hay không, đồng thời đánh giá khả năng sinh lời này tiếp diễn thế nào trong tương lai để quyết định đầu tư.
Tuy nhiên trong thực tế, thị trường thường xuyên thay đổi, và sự thay đổi này có thể dẫn đến nhiều kịch bản khác nhau của cùng một thuật toán, có thuật toán chỉ tạo ra lợi nhuận nếu thị trường xu hướng tăng, cũng có thuật toán có lợi nhuận bất kể thị trường xu hướng tăng hay giảm nhưng khi thị trường không rõ xu hướng thì lại thua lỗ rất nhiều.
Ngoài ra, có thể tập dữ liệu kiểm thử ngẫu nhiên là kịch bản hoàn hảo cho thuật toán, dẫn tới kết quả kiểm thử tạo ra lợi nhuận rất cao, nhưng thực tế khó lặp lại kịch bản đó. Vì vậy, trong quá trình xây dựng và đánh giá thuật toán, các nhà phân tích sẽ cố gắng thử nghiệm nhiều kịch bản dữ liệu khác nhau nhằm đánh giá một cách khách quan nhất tiềm năng lợi nhuận của thuật toán trước khi giao dịch thật.
Hình 15 mô tả quá trình kết hợp cả dữ liệu quá khứ và dữ liệu tương lai trong quy trình xây dựng và đánh giá thuật toán:
-
Dữ liệu trong mẫu (In-sample): một phần dữ liệu trong quá khứ, hay còn gọi là dữ liệu quá khứ trong mẫu, mục đích để kiểm thử và tối ưu thuật toán. Thông thường 70% dữ liệu quá khứ sẽ dùng cho mục đích này.
-
Dữ liệu ngoài mẫu (Out-of-sample): bao gồm dữ liệu quá khứ ngoài mẫu và dữ liệu tương lai; mục đích để kiểm định thuật toán sau tối ưu hóa có khả năng tạo ra lợi nhuận ổn định như dự tính trong tương lai hay không. Dữ liệu quá khứ ngoài mẫu và trong mẫu không được chồng chéo lên nhau.
Ví dụ, cần kiểm thử thuật toán với tập dữ liệu giá và khối lượng 10 năm gần nhất (từ 2012 đến 2022) có sẵn, khi đó, dữ liệu từ 2012 đến 2019 là dữ liệu quá khứ trong mẫu, phần còn lại là dữ liệu quá khứ ngoài mẫu.
Quy trình kiểm thử dữ liệu quá khứ sử dụng cả tập dữ liệu trong mẫu lẫn tập dữ liệu ngoài mẫu. Thông thường, tập dữ liệu này đã đủ đánh giá thuật toán, tuy nhiên, kiểm thử dữ liệu quá khứ chỉ sử dụng dữ liệu lịch sử nên khả năng cao vẫn gặp phải lỗi kiểm thử phổ biến như hiện tượng quá khớp, bỏ qua trượt giá.
Để tránh những lỗi phổ biến trong kiểm thử dữ liệu quá khứ, quy trình đánh giá thuật toán cần thực hiện thêm một bước nữa là kiểm thử dữ liệu tương lai. Ngược lại với kiểm thử dữ liệu quá khứ, kiểm thử dữ liệu tương lai (hay được hiểu là kiểm thử thuật toán trong thời gian thực) sử dụng dữ liệu ngoài mẫu nhưng dữ liệu này chưa có sẵn ở hiện tại, mục đích của quá trình này cũng là để đánh giá tính khả thi của thuật toán, nhưng không biết trước dữ liệu này như thế nào nên tăng thêm tính khách quan cho quá trình đánh giá.
Thực hiện kiểm thử dữ liệu tương lai gồm hai giai đoạn. Giai đoạn đầu giống giao dịch thật, nhưng không hề có giao dịch nào được thực hiện mà tất cả chỉ là ghi chép và thống kê lại. Do đó, phương pháp này còn được gọi với cái tên khác là kiểm thử giao dịch trên giấy. Ở giai đoạn sau, giao dịch được thực hiện trên môi trường thật với số vốn nhỏ để kiểm nghiệm lần cuối cùng tính hiệu quả của thuật toán, các giả định ban đầu cùng các vấn đề kỹ thuật trong hệ thống. Giai đoạn này được gọi là kiểm thử giao dịch trên tài khoản nhỏ.
Kiểm thử dữ liệu quá khứ và kiểm thử dữ liệu tương lai được trình bày ở trên không nhằm mục đích so sánh phương pháp nào tốt hơn, mà cả hai đều cần thiết trong quá trình xây dựng thuật toán. Thuật toán có lợi nhuận cao và kết quả lợi nhuận tương đồng trong kiểm thử dữ liệu quá khứ lẫn kiểm thử dữ liệu tương lai là tiêu chí quan trọng để quyết định sử dụng thuật toán giao dịch thật hay không.