Giai đoạn kiểm thử dữ liệu quá khứ có mục tiêu cung cấp cho các nhà giao dịch thuật toán một góc nhìn về tương lai mà qua đó các nhà giao dịch thuật toán có thể hình thành các kỳ vọng hợp lý về tỷ suất lợi nhuận, mức thua lỗ tối đa, và các chỉ số quan trọng khác. Trên thực tế, một số lỗi nghiêm trọng trong giai đoạn này có thể khiến kết quả dự báo trở nên vô nghĩa, không còn giá trị và phó mặc kết quả thực tế cho tính ngẫu nhiên.
Thực thi quá trình kiểm thử dữ liệu quá khứ đúng sẽ hình thành giả định hợp lý về kết quả giao dịch trong tương lai của thuật toán. Nếu không thiết kế và hình thành giả định cẩn thận, kết quả kiểm thử có thể gây ảo tưởng lợi nhuận vượt trội trong khi thua lỗ liên tục trong giao dịch thật.
Dưới đây là 05 lỗi nghiêm trọng trong giai đoạn kiểm thử dữ liệu quá khứ.
Hiện tượng quá khớp
Đây là lỗi phổ biến nhất khiến các nhà giao dịch thuật toán ảo tưởng về việc tìm thấy chén thánh. Hiện tượng quá khớp có thể xuất hiện dưới nhiều hình thức khác nhau:
-
Mua ở mức giá thấp nhất của nến và ngược lại. Ví dụ cho phép mua cổ phiếu với giá 100.000 đồng mặc dù giá cổ phiếu hiện tại là 105.000 đồng.
-
Có kiến thức về các sự kiện trong tương lai hoặc sử dụng dữ liệu trong tương lai để đưa ra quyết định hiện tại. Một cách tiếp cận đơn giản là: nếu cổ phiếu tăng hơn 20% trong tháng tới thì mua ngay bây giờ. Điều này có thể thực hiện trong giai đoạn kiểm thử dữ liệu quá khứ và đem lại kết quả vượt trội.
-
Tìm bộ tham số tốt nhất. Bằng cách thêm nhiều tham số vào một thuật toán, nhà giao dịch thuật toán luôn có thể tìm ra bộ tham số tốt nhất đem lại tỷ suất đầu tư vượt trội. Đây là nhầm lẫn giữa hiện tượng quá khớp và tối ưu hóa. Nhiều nhà giao dịch thuật toán kinh nghiệm vẫn chưa phân biệt rõ hai khái niệm quan trọng rất cần lưu ý này.
Không bao gồm chi phí giao dịch
Nhiều nhà giao dịch thuật toán đặt chi phí giao dịch bằng 0 và mong đợi một sự khác biệt nhỏ trong quá trình giao dịch trên thị trường thật. Đây là một giả định lỗi vì chi phí giao dịch trên thị trường thật giảm tỷ suất lợi nhuận rất đáng kể.
Tại ngày 03/06/2022, trên thị trường chứng khoán phái sinh Việt Nam, tổng chi phí giao dịch phái sinh cả hai chiều tương đương 0,12% giá trị giao dịch. Giả sử một nhà giao dịch thuật toán năng động giao dịch hàng ngày trung bình với một lệnh mở vị thế và một lệnh đóng vị thế thì hiệu suất đầu tư sẽ giảm 30% vào cuối năm chỉ tính theo chi phí giao dịch. Nếu tỷ suất lợi nhuận kỳ vọng là 25% mỗi năm trước chi phí giao dịch, một mức rất ấn tượng, thì nhà giao dịch này vẫn sẽ rất thất vọng vào cuối năm.
Hình 09 mô phỏng một thuật toán có lợi nhuận kỳ vọng 25% hàng năm trước chi phí giao dịch và vận hành trên thị trường thực trong 01 năm, giao dịch 02 lần mỗi ngày:
Bỏ qua trượt giá
Giả định bất hợp lý tiếp theo là chi phí trượt giá bằng 0. Giả định ngây thơ này gây ra nhiều thiệt hại hơn so với giả định chi phí giao dịch bằng 0. Khái niệm chi phí trượt giá cũng giống như chi phí giao dịch xảy ra mỗi khi đặt lệnh thị trường, nhưng sự khác biệt giữa hai chi phí này là chi phí trượt giá gần như gấp đôi chi phí giao dịch. Với hàng trăm nghìn hợp đồng giao dịch trên thị trường phái sinh Việt Nam, chúng tôi kỳ vọng chi phí trượt giá hai chiều là 0,7 điểm hoặc 0,25% giá trị giao dịch. Chi phí này có thể giảm đáng kể tỷ suất lợi nhuận của thuật toán và có thể biến một thuật toán được kỳ vọng thành một thảm họa.
Hình 10 mô phỏng thuật toán có lợi nhuận kỳ vọng 25% hàng năm trước chi phí trượt giá vận hành trên thị trường thật trong 01 năm và giao dịch 02 lần mỗi ngày dùng lệnh thị trường.
Không hạn chế thanh khoản
Đây là giả định khiến nhiều thuật toán không thể đưa vào giao dịch thật, đặc biệt là đối với những nhà đầu tư lớn. Trong giai đoạn kiểm thử dữ liệu quá khứ, thuật toán cho phép mua/bán không giới hạn số lượng cổ phiếu hoặc hợp đồng với giá thị trường. Trong môi trường thật, nhà giao dịch thuật toán sẽ chứng kiến các điểm mở hoặc đóng vị thế không có thực.
Tốc độ nhanh nhất thị trường
Đây là giả định của nhiều nhà giao dịch thuật toán tần suất cao hoặc thuật toán bắt lỗi dựa trên giả định rằng những thuật toán này có khả năng đạt tốc độ tốt nhất trên thị trường hiện tại. Lỗi giả định tốc độ tốt nhất thường tạo ra ảo tưởng về hiệu suất vượt trội nhưng không có lệnh khớp nào trong giao dịch thật. Hoặc tệ hơn nữa, thuật toán chỉ có thể mua hoặc bán với giá thị trường khác xa so với giá khớp kỳ vọng.