Backtest cho lợi nhuận thường niên 20%. Chiến lược dùng 8 năm dữ liệu, thực hiện 1,640 giao dịch và có phân chia walk-forward rõ ràng. Sau đó, chúng tôi thay dữ liệu lịch sử hiện tại của nhà cung cấp bằng các giá trị được ghi nhận tại thời điểm đó, và lợi thế giảm xuống còn 3%.
Con số đáng ngạc nhiên không phải là mức lợi nhuận ban đầu. Đó là 17 điểm phần trăm phụ thuộc vào dữ liệu đã được điều chỉnh. Kiểu nhìn trước này có thể ẩn trong các công bố kinh tế, dữ liệu cơ bản của doanh nghiệp, thành phần chỉ số và cả những trường thị trường tưởng chừng đơn giản. Dữ liệu lịch sử cho bạn biết nguồn hiện nói gì. Bộ dữ liệu tại thời điểm phát sinh cho bạn biết khi ấy chiến lược có thể biết được gì.
Vì sao dữ liệu lịch sử có thể thay đổi sau sự kiện?
Một số giá trị ban đầu chỉ là ước tính rồi được điều chỉnh sau. Thống kê kinh tế công bố vào thứ Sáu có thể được điều chỉnh vào tháng sau. Doanh nghiệp có thể công bố lại số liệu lợi nhuận. Nhà cung cấp dữ liệu có thể sửa một mức giá sai, bổ sung một khoảng thời gian bị thiếu hoặc thay giá trị sơ bộ bằng số liệu cuối cùng. Cơ sở dữ liệu chỉ lưu giá trị mới nhất khiến mọi thay đổi ấy trông như thể vốn dĩ đã luôn đúng.
Điều này rất quan trọng nếu chiến lược xếp hạng doanh nghiệp theo doanh thu được báo cáo hoặc giao dịch sau một đợt công bố dữ liệu theo lịch. Nếu chiến lược thấy con số đã điều chỉnh từ nhiều tháng trước, backtest đã cấp cho nó thông tin vốn chưa có trên thị trường tại thời điểm ra quyết định. Phép tính tín hiệu có thể hoàn toàn chính xác, nhưng đầu vào vẫn thuộc sai phiên bản lịch sử.
Có một cái bẫy dễ mắc ở đây: trường có tên date thường mô tả kỳ mà giá trị đó bao quát, chứ không phải thời điểm giá trị được công bố. Một dòng doanh thu quý mang ngày 31 tháng 3 có thể chỉ được công bố vào tháng 5. Nhãn đó nói về kỳ hoạt động kinh doanh, không phải tập thông tin của chiến lược.
Backtest nên dùng dấu thời gian nào?
Hãy theo dõi riêng kỳ hiệu lực của giá trị và thời điểm giá trị khả dụng. Nếu có thể, hãy lưu cả thời điểm công bố và thời điểm hệ thống tiếp nhận. Chiến lược chỉ có thể dùng giá trị sau khi giá trị được công bố và hệ thống nhận được; nếu hai thời điểm này khác nhau, hãy dùng thời điểm muộn hơn để phát lại dữ liệu một cách thận trọng.
| Dấu thời gian | Mô tả điều gì | Công dụng |
|---|---|---|
| Thời điểm hiệu lực | Kỳ hoặc sự kiện mà giá trị đề cập đến | Nhóm các quan sát theo đối tượng được đo lường |
| Thời điểm công bố | Khi nguồn phát hành phiên bản này | Ngăn dữ liệu công bố xuất hiện trước khi nó tồn tại |
| Thời điểm tiếp nhận | Khi hệ thống của bạn nhận được phiên bản này | Ghi nhận chậm trễ phân phối và dữ liệu được bổ sung muộn |
Ví dụ, giả sử doanh số quý của một công ty bao quát tháng 1 đến tháng 3, được báo cáo vào ngày 8 tháng 5 lúc 16:15 giờ miền Đông và đến kho dữ liệu nghiên cứu của bạn lúc 16:17. Chiến lược ra quyết định tại giờ đóng cửa ngày 8 tháng 5 không thể dùng báo cáo đó nếu quyết định được đưa ra lúc 16:00. Chiến lược ra quyết định vào sáng hôm sau thì có thể. Chỉ ngày cuối quý không thể trả lời câu hỏi nào trong hai câu hỏi này.
Làm sao kiểm tra liệu các lần điều chỉnh có đang chi phối kết quả?
Chạy cùng một chiến lược 2 lần: một lần dùng phiên bản dữ liệu khả dụng tại mỗi thời điểm ra quyết định trong quá khứ, và một lần dùng dữ liệu lịch sử mới nhất đã điều chỉnh. Giữ nguyên giả định khớp lệnh, tập tài sản và mã nguồn. Chênh lệch này là kết quả về độ nhạy với việc điều chỉnh dữ liệu, chứ không phải một phép so sánh chiến lược mới.
Sau đó, tìm hiểu nguyên nhân tạo ra khoảng cách. Hiệu suất có thay đổi vào ngày công bố không? Chênh lệch lớn nhất có tập trung ở một vài công ty công bố lại số liệu hoặc quan sát được điều chỉnh không? Chiến lược có giao dịch trước thời điểm công bố liên quan không? Một cuộc kiểm tra sự kiện ngắn gọn thường giải thích được nhiều hơn một biểu đồ lợi nhuận tích lũy khác.
Các con số này chỉ mang tính minh họa, không phải mức phạt áp dụng chung. Kết quả hữu ích là phép so sánh theo cặp cho chính chiến lược của bạn, với cùng giao dịch và chi phí khi có thể. Nếu phiên bản đã điều chỉnh cho kết quả tốt hơn đáng kể, hãy tìm xem những trường dữ liệu và ngày tháng nào tạo ra chênh lệch trước khi tin vào con số nổi bật của backtest.
Kiểm tra dữ liệu tại thời điểm phát sinh cần ghi lại những gì?
Hãy bắt đầu từ những trường mà chiến lược thực sự sử dụng. Với mỗi trường, hãy xác định nguồn, ý nghĩa của dấu thời gian, chính sách điều chỉnh và khả năng truy xuất các phiên bản trước. Hỏi nhà cung cấp cách họ biểu diễn các lần sửa đổi: ghi đè dòng dữ liệu, thêm dòng phiên bản mới hay dùng nhật ký kiểm toán riêng. Chữ “lịch sử” trên trang sản phẩm chưa đủ để kết luận.
- Lưu mỗi phiên bản kèm dấu thời gian công bố hoặc thời điểm đầu tiên có thể truy cập.
- Ghép đặc trưng với quyết định theo thời điểm khả dụng, không theo nhãn kỳ.
- Giữ ảnh chụp dữ liệu cố định hoặc phiên bản nguồn để có thể tái lập các lần chạy.
- Đánh dấu các giá trị đến muộn, được điều chỉnh hoặc không có lịch sử đáng tin cậy.
Đồng thời, hãy giữ phạm vi kiểm tra thiết thực. Nếu chiến lược chỉ dùng giao dịch và nến từ sàn, việc điều chỉnh dữ liệu kinh tế có thể không liên quan. Tuy vậy, việc sửa nến và bổ sung dữ liệu từ nhà cung cấp vẫn có thể ảnh hưởng, nhất là khi tín hiệu phụ thuộc vào thị trường kém thanh khoản hoặc một khoảng thời gian sự kiện chính xác.
Khi không có dữ liệu lịch sử tại thời điểm phát sinh
Đừng âm thầm coi giá trị hôm nay như giá trị của hôm qua. Hãy ghi rõ trường dữ liệu đó là một giới hạn, loại nó khỏi các kết luận phụ thuộc vào tính khả dụng trong quá khứ, hoặc áp dụng độ trễ thận trọng và cho thấy kết quả thay đổi ra sao. Giá trị thay thế có độ trễ có thể hữu ích cho nghiên cứu, miễn là độ trễ được nêu rõ và giới hạn này luôn đi kèm kết quả.
Nhiệm vụ của backtest là tái dựng một quyết định bằng tập thông tin đã tồn tại tại thời điểm đó. Nếu dữ liệu chỉ cho thấy phiên bản mới nhất, kết quả trung thực cần nêu rõ giới hạn: dữ liệu có thể kiểm tra chiến lược trên lịch sử được tái dựng theo thông tin hiện nay, nhưng không thể xác lập chính xác những gì một tác nhân trong quá khứ có thể nhìn thấy.
← Tất cả bài viết

