Tại một thời điểm, một thuật toán giao dịch được cho là có giá trị nếu còn khả năng sinh lời như dự định khi được áp dụng trên thị trường mục tiêu trong tương lai. Sau quá trình tối ưu hóa, ta có một thuật toán với lợi nhuận tốt trên tập dữ liệu trong mẫu, tuy nhiên, thuật toán này được tinh chỉnh bằng chính tập dữ liệu đó nên có khả năng bị quá khớp. Để xác định thuật toán có giá trị hay không, ta cần đánh giá lại thuật toán trên tập dữ liệu chưa từng được dùng để tạo nên luật hoặc tinh chỉnh giá trị tham số. Tập dữ liệu này được gọi là dữ liệu ngoài mẫu. Lưu ý là dữ liệu ngoài mẫu cần đủ tiêu biểu để các thống kê hiệu quả trên nó có giá trị.
Kiểm định thuật toán trên tập dữ liệu ngoài mẫu
Để kiểm định thuật toán giao dịch, ta cần khả năng đánh giá tỉ mỉ hiệu quả thuật toán trên tập dữ liệu ngoài mẫu và tìm kiếm, giải thích những điểm không tương đồng nếu có khi so sánh với hiệu quả của thuật toán trên tập dữ liệu trong mẫu. Việc đánh giá này còn giúp hiểu sâu hơn lợi thế, rủi ro, và hành vi của thuật toán trong những trạng thái thị trường khác nhau. Đây là chìa khóa giúp giám sát thuật toán trong giai đoạn giao dịch thật. Từ đó, phát hiện những kết quả bất thường (giúp quản lý rủi ro) và những cơ hội để cải thiện thuật toán.
Hiệu quả của một thuật toán giao dịch được đánh giá bằng cách phân tích toàn diện hồ sơ giao dịch bao gồm đường tổng tài sản theo thời gian và những thống kê về giao dịch mua, giao dịch bán, giao dịch thắng, giao dịch thua, và những lần tổng tài sản giảm. Trong các thống kê này, lần giảm sâu nhất thường được dùng để đánh giá rủi ro; trong khi lợi nhuận hàng tháng được dùng để đánh giá phần thưởng; và đường tổng tài sản theo thời gian cho cái nhìn tổng quát của cả hai. Trong khi đó, thống kê giao dịch thể hiện chi tiết hành vi của thuật toán.
Một thuật toán không có giá trị nếu hồ sơ giao dịch trên tập dữ liệu ngoài mẫu xuất hiện những kết quả bất thường khi so sánh với hồ sơ giao dịch trong mẫu của nó. Một số ví dụ của những kết quả bất thường này là thuật toán liên tiếp thua trong thời gian dài, hay có quá nhiều đợt giảm mạnh, độ lệch chuẩn của lợi nhuận hàng ngày tăng nhiều so với trước đó hoặc phần thưởng và rủi ro không tương đồng với hồ sơ trong mẫu. Nên nghiên cứu kỹ và tìm ra lý do xảy ra những bất thường này để xác định thuật toán còn giá trị hay không. Ví dụ, nên chú ý đến trạng thái thị trường của các tập dữ liệu, vì có thể sự không tương đồng về hành vi của thuật toán ở hai hồ sơ là do trạng thái thị trường khác nhau chứ không phải thuật toán không còn giá trị.
Hình 14 là một ví dụ thực tế về sự không tương đồng độ lệch chuẩn của hiệu suất lợi nhuận hàng ngày khi so sánh hiệu quả thuật toán trên hai giai đoạn ngoài mẫu và trong mẫu.
Một cách khá phổ biến để phát hiện sự không tương đồng của hai hồ sơ giao dịch là dùng lần giảm sâu nhất (maximum drawdown – MDD) như là tín hiệu. Nghĩa là thuật toán sẽ được cho là không còn giá trị khi trải qua một đợt giảm mạnh vượt quá một bội số được định nghĩa trước của MDD trên tập dữ liệu trong mẫu. Cách này thường được dùng để ngăn thua lỗ nghiêm trọng khi thuật toán được áp dụng trên tài khoản chính với số vốn lớn.
Quy trình kiểm định thuật toán
Quy trình kiểm định một thuật toán giao dịch có 04 giai đoạn.
Kiểm thử dữ liệu quá khứ ngoài mẫu.
Ở giai đoạn đầu tiên, ta kiểm thử thuật toán trên dữ liệu quá khứ ngoài mẫu. Nếu hiệu quả của thuật toán trên tập dữ liệu này hứa hẹn và tương đồng với hiệu quả trong mẫu, quá trình kiểm định sẽ chuyển qua giai đoạn hai, kiểm thử giao dịch trên giấy.
Kiểm thử giao dịch trên giấy.
Trong giai đoạn này, ta kiểm thử thuật toán trên dữ liệu tương lai dùng giao dịch trên giấy. Nghĩa là thuật toán được kiểm thử theo cách giả lập môi trường đặt lệnh theo thời gian thực. Tại thời điểm một lệnh được ghi nhận, không cách nào biết lệnh đó sẽ ảnh hưởng thế nào đến hiệu quả của thuật toán. Mục đích để đảm bảo người phát triển thuật toán không thể biết trước hiệu quả thuật toán sẽ như thế nào trên tập dữ liệu này.
Khác biệt của kiểm thử trên dữ liệu tương lai với kiểm thử dữ liệu quá khứ ngoài mẫu là loại trừ được trường hợp một tập dữ liệu quá khứ ngoài mẫu sử dụng lại nhiều lần cho việc đánh giá nhiều thuật toán khác nhau, hình thành xác suất những thuật toán đủ tiêu chuẩn thật ra là do quá khớp đoạn thời gian ngoài mẫu đó. Hiện tượng này gọi là vét cạn dữ liệu. Kiểm thử trên dữ liệu tương lai giúp tránh hiện tượng này vì khi đó ta dùng một tập dữ liệu ngoài mẫu mới hoàn toàn để kiểm định thuật toán.
Trong trường hợp thuật toán vẫn hoạt động tốt ở giai đoạn giao dịch trên giấy, ta biết rằng thuật toán không bị quá khớp và có thể chuyển qua giai đoạn kiểm định tiếp theo.
Kiểm thử giao dịch trên tài khoản nhỏ.
Giao dịch trên giấy chỉ mô phỏng quá trình từ lúc đặt lệnh đến khi lệnh hoàn thành. Mô phỏng việc khớp lệnh của lệnh ảo được đặt bởi thuật toán, đương nhiên, không thể chính xác hoàn toàn vì những hạn chế của dữ liệu thị trường Việt Nam. Một trong số đó là không thể mô phỏng chính xác kết quả khớp lệnh từng phần trên thị trường chứng khoán phái sinh. Kiểm thử giao dịch trên tài khoản nhỏ giải quyết được vấn đề này. Đây cũng là giai đoạn kiểm thử thuật toán trên dữ liệu tương lai nhưng có thực hiện giao dịch thật trên một tài khoản với số vốn nhỏ.
Mặc dù sai biệt về hiệu quả giữa giao dịch trên giấy và giao dịch thật là hiển nhiên, sai biệt bao nhiêu lại phụ thuộc vào từng thuật toán (giả định rằng ta đã giả lập tốt nhất có thể một công ty chứng khoán dựa trên dữ liệu thị trường sẵn có). Mục đích của kiểm thử tương lai dùng giao dịch thật là để định lượng sai biệt này, và nếu giao dịch thật có hiệu quả thấp hơn thì liệu thuật toán đang kiểm thử còn tiềm năng để đầu tư hay không?
Nếu hiệu quả khi kiểm thử bằng giao dịch thật không thể hiện sai lệch đáng chú ý nào, thuật toán được xác nhận có thể giao dịch trên tài khoản chính với mục đích sinh lợi cho nhà đầu tư. Đến đây ta chuyển qua giai đoạn kiểm định cuối cùng, giai đoạn giám sát trực tuyến khi thuật toán được áp dụng thật trên thị trường mục tiêu.
Giám sát trực tuyến trong giai đoạn giao dịch thật
Đến giai đoạn này, nhà đầu tư có thể tự tin là thuật toán không bị quá khớp. Tuy nhiên, thuật toán vẫn có khả năng không còn hiệu quả trong tương lai khi các nhân tố ảnh hưởng đến giá chứng khoán đã thay đổi, vì vậy, thuật toán vẫn cần được kiểm định lại thường xuyên trong giai đoạn giao dịch thật. Khi phát hiện nhân tố trong mô hình không còn giá trị, thuật toán cần được dừng hoặc điều chỉnh phù hợp trước khi gây ra thua lỗ nghiêm trọng.