Một tác tử chiến lược AI có thể tạo ra một kết quả kiểm thử ngược hợp lệ trong khi sử dụng thông tin chưa tồn tại vào thời điểm lẽ ra các giao dịch được thực hiện. Mã vẫn chạy. Đường cong vốn trông có vẻ hợp lý. Tín hiệu thậm chí có thể hợp lý. Thế nhưng, một dấu thời gian, một phép nối dữ liệu hoặc một trường dữ liệu đã được hiệu chỉnh lại âm thầm trao cho nó đáp án của ngày mai.
Cách khắc phục là đưa thời điểm dữ liệu sẵn có vào quy ước nghiên cứu. Với mỗi đầu vào, cần trả lời rõ 2 câu hỏi: giá trị này mô tả thời điểm nào, và chiến lược có thể biết được giá trị đó sớm nhất vào lúc nào?
Thiên lệch nhìn trước trong chiến lược do AI tạo ra biểu hiện như thế nào?
Biểu hiện rõ ràng nhất là tính tín hiệu từ giá đóng cửa của chính cây nến đó, rồi khớp lệnh tại mức giá đóng cửa ấy. Nếu chiến lược cần giá đóng cửa để đưa ra quyết định, thì nó không thể đồng thời giao dịch ở mức giá đó. Nhưng khi nối các nguồn dữ liệu hoặc chọn các giá trị mặc định tiện lợi, tác tử thường tạo ra những biến thể khó nhận ra hơn.
Giả sử một mô hình tính đường trung bình động 20 nến vào lúc đóng cửa mỗi phút và vào vị thế khi giá đóng cửa cắt qua đường này. Nếu kiểm thử ngược khớp lệnh tại chính mức giá đóng cửa đó, chiến lược đã sử dụng giao dịch cuối cùng của cây nến trước khi mức giá ấy sẵn có với nó. Dời lệnh sang giá mở cửa của cây nến tiếp theo có thể là một cách xấp xỉ hợp lý, dù lệnh thị trường vẫn cần tính phí và tác động lên giá.
Giờ hãy biến đặc trưng đó thành một dữ liệu cơ bản hằng ngày của cổ phiếu hoặc ảnh chụp nhanh về hợp đồng mở của tiền mã hóa. Ngày trong bản ghi có thể là thứ Hai, nhưng giá trị đó có thể được công bố sau khi thị trường đóng cửa hôm thứ Hai, hoặc được hiệu chỉnh sau đó. Ngày tháng không phải là dấu thời gian cho biết dữ liệu sẵn có khi nào.
Tôi nên đóng dấu thời gian cho các đầu vào của chiến lược như thế nào?
Khi nguồn dữ liệu cho phép, hãy lưu ít nhất 3 mốc thời gian: kỳ mà giá trị mô tả, thời điểm nhà phát hành công bố giá trị và thời điểm hệ thống của bạn nhận được giá trị đó. Tập thông tin mà chiến lược có tại thời điểm ra quyết định chỉ được bao gồm các giá trị đã sẵn có vào thời điểm đó.
| Trường | Câu hỏi được trả lời | Sai lầm thường gặp |
|---|---|---|
| Thời điểm sự kiện | Sự kiện thị trường xảy ra khi nào? | Dùng giá đóng cửa của cây nến trước khi cây nến hoàn tất |
| Thời điểm công bố | Nguồn dữ liệu công bố giá trị này khi nào? | Coi nhãn cuối ngày là thời điểm công bố đầu phiên |
| Thời điểm tiếp nhận | Hệ thống nghiên cứu có thể sử dụng dữ liệu này khi nào? | Bỏ qua độ trễ của nhà cung cấp hoặc quy trình dữ liệu |
| Thời điểm hiệu chỉnh | Phiên bản này được ghi nhận hoặc hiệu chỉnh khi nào? | Bổ sung dữ liệu lịch sử đã hiệu chỉnh như thể đó là dữ liệu ban đầu |
Với chiến lược 1-minute, độ trễ 1 giây không mặc nhiên là vô hại. Mức độ ảnh hưởng tùy thuộc vào thời điểm ra quyết định và những gì tín hiệu sử dụng. Nếu đầu vào là một thống kê theo giờ đã hoàn tất, độ trễ có thể gần như không đáng kể. Nếu đó là mức mất cân bằng sổ lệnh được lấy gần thời điểm đặt lệnh, nó có thể đảo ngược giao dịch.
Kho dữ liệu tại đúng thời điểm có ngăn được rò rỉ không?
Có thể, nếu “tại đúng thời điểm” nghĩa là bạn có thể truy xuất giá trị đã biết vào một thời điểm ra quyết định trong quá khứ, bao gồm cả phiên bản đang có hiệu lực khi đó. Một bảng chỉ có ngày tháng lịch sử vẫn có thể chứa các giá trị đã được hiệu chỉnh hôm nay cho những ngày đó.
Với mỗi bản ghi, hãy lưu khoảng thời gian hiệu lực và dấu thời gian cho biết dữ liệu sẵn có khi nào, đồng thời giữ lại các phiên bản thay vì ghi đè lên chúng. Sau đó, hãy chỉ định rõ các truy vấn lịch sử: trả về phiên bản mới nhất đã sẵn có tại thời điểm ra quyết định được mô phỏng. Điều này đặc biệt quan trọng với dữ liệu cơ bản, thành phần chỉ số, công bố kinh tế và bộ dữ liệu đã được nhà cung cấp làm sạch.
Có một vướng mắc vận hành không mấy hấp dẫn: dấu thời gian công bố hoàn hảo cũng vô ích nếu tác vụ nạp dữ liệu chạy trễ 20 phút. Nếu kho dữ liệu lịch sử không ghi lại thời điểm tiếp nhận, hãy dùng độ trễ thận trọng và nêu rõ điều đó. Độ chính xác mà nguồn dữ liệu chưa từng ghi nhận chỉ là đồ trang trí.
Những bước kiểm tra nào phát hiện thiên lệch nhìn trước trước khi giao dịch mô phỏng?
Yêu cầu tác tử nghiên cứu xuất kèm dòng thời gian đặc trưng và lệnh bên cạnh kết quả kiểm thử ngược. Với mỗi quyết định, hãy ghi lại thời điểm sẵn có mới nhất của nguồn cho từng đặc trưng, thời điểm ra quyết định, thời điểm đặt lệnh và thời điểm khớp lệnh mô phỏng. Loại bỏ mọi bản ghi có đầu vào đến sau thời điểm ra quyết định.
- Dời tín hiệu đi trước 1 cây nến rồi so sánh kết quả. Kết quả sụt giảm mạnh có thể làm lộ sự phụ thuộc vào thời điểm từ giá đóng cửa đến giá đóng cửa, nhưng đây là công cụ chẩn đoán chứ không phải bằng chứng xác nhận rò rỉ.
- Cắt mọi nguồn dữ liệu tại một mốc thời gian trong quá khứ, chạy lại quy trình và so sánh các đặc trưng thu được với đặc trưng lịch sử đã lưu.
- Thay một đặc trưng bị nghi ngờ bằng một hằng số. Nếu hiệu suất gần như không đổi, hãy kiểm tra xem mã có thực sự sử dụng chuỗi dữ liệu dự kiến hay không.
- Đưa một đặc trưng tương lai bất khả thi vào quy trình. Bước kiểm định phải báo lỗi rõ ràng khi thời điểm dữ liệu sẵn có của đặc trưng này muộn hơn thời điểm ra quyết định.
Những bước kiểm tra này không chứng nhận một chiến lược là đáng tin cậy. Chúng làm rõ các giả định cụ thể về thời điểm và phát hiện những cách phổ biến khiến các giả định đó bị vi phạm.
Giao dịch mô phỏng có chứng minh được kiểm thử ngược không bị rò rỉ không?
Không. Giao dịch mô phỏng có thể phơi bày một luồng dữ liệu trực tiếp bị trễ, thiếu dữ liệu hoặc căn chỉnh khác với luồng dữ liệu lịch sử. Nó không thể chứng minh rằng các đặc trưng dùng để huấn luyện trước đây phản ánh đúng những gì đã biết vào thời điểm đó. Mô hình cũng có thể không còn hưởng lợi từ rò rỉ đơn giản vì tương lai mà nó vô tình nhìn thấy giờ đã trở thành hiện tại.
Hãy dùng giao dịch mô phỏng để kiểm tra tính tương đồng: so sánh giá trị đặc trưng trực tiếp, dấu thời gian ra quyết định, cách tạo lệnh và lệnh khớp mô phỏng với các định nghĩa trong kiểm thử ngược. Khi có khác biệt, hãy truy vết chính xác đầu vào và đồng hồ. Một nhóm tác tử có thể giải thích tập thông tin làm cơ sở cho từng quyết định đang nghiên cứu hữu ích. Một nhóm chỉ có thể cho bạn xem đường cong mượt mà đã bỏ qua khâu kiểm toán khó nhất.
← Tất cả bài viết


