Gửi người xây dựng chiến lược lọc theo bảng lương,
Bạn đã xây dựng một quy tắc đơn giản: sau báo cáo việc làm của Mỹ, chiến lược nắm giữ một ETF cổ phiếu trong năm phiên nếu mức tăng bảng lương hằng tháng vượt 175,000. Nếu không, chiến lược giữ tiền mặt. Bạn đã lên lịch vào lệnh sau khi thị trường cổ phiếu mở cửa, tính cả chi phí giao dịch và giữ ngưỡng cố định. Sau đó, bạn tải chuỗi dữ liệu bảng lương lịch sử và dùng nó để tái dựng mọi tín hiệu.
Vấn đề còn lại nằm ở dữ liệu tải về. Một chuỗi dữ liệu kinh tế lịch sử có thể chứa các ước tính đã được điều chỉnh mà vào những ngày chiến lược được cho là đã giao dịch, bạn chưa thể biết. Để backtest tín hiệu vĩ mô một cách trung thực, bạn cần dùng phiên bản có sẵn tại mỗi thời điểm ra quyết định. Dời thời điểm vào lệnh thêm một bar không thể sửa được con số chỉ được công bố hai tháng sau.
Số liệu tháng 1 có vài lần “sinh nhật”
Hãy xem lịch sử công bố giả định này. Các ngày và mức thay đổi bảng lương chỉ nhằm minh họa cơ chế; đây không phải kết quả kinh tế được công bố.
| Lần công bố | Tháng tham chiếu | Mức thay đổi bảng lương được báo cáo | Quy tắc của bạn tại lần công bố đó |
|---|---|---|---|
| Ngày 7 tháng 2, 08:30 ET | Tháng 1 | +150,000 | Giữ tiền mặt |
| Ngày 7 tháng 3, 08:30 ET | Tháng 1, đã điều chỉnh | +185,000 | Không thay đổi quyết định tháng 2 |
| Ngày 4 tháng 4, 08:30 ET | Tháng 1, điều chỉnh lần nữa | +210,000 | Không thay đổi quyết định tháng 2 |
Nếu dữ liệu tải về của bạn ghi tháng 1 là +210,000, bản chạy lại sẽ vào ETF trong tháng 2. Quy tắc thực tế của bạn lẽ ra vẫn giữ tiền mặt. Mọi mức giá, dấu thời gian lệnh và phí hoa hồng đều có thể chính xác, nhưng toàn bộ giao dịch đó vẫn là giả.
Bạn không thể mặc định rằng sai lệch này khiến hiệu suất tốt hơn. Các lần điều chỉnh có thể tạo ra giao dịch thắng, tạo ra giao dịch thua hoặc loại bỏ một trong hai loại. Sai sót nằm ở chỗ mô phỏng của bạn trả lời một câu hỏi mà tại thời điểm đó chiến lược không thể đặt ra.
Tháng 1 chỉ là kỳ được đo lường. Đó không phải ngày bạn biết kết quả đo lường. Một hàng được ghi nhãn ngày 1 tháng 1 không cho phép bạn giao dịch dựa trên nó vào ngày 1 tháng 1.
Ghi lại lịch sử khả dụng của từng giá trị
Bảng nghiên cứu của bạn cần nhiều hơn tháng và một con số. Hãy lưu kỳ tham chiếu, giá trị, dấu thời gian công bố, mã phiên bản dữ liệu và nguồn. Với dữ liệu thu thập liên tục, hãy ghi cả thời điểm hệ thống nhận được bản công bố. Giữ lại các phiên bản cũ thay vì cập nhật đè giá trị tại chỗ.
Tại thời điểm ra quyết định, chọn phiên bản mới nhất đủ điều kiện của mỗi quan sát có dấu thời gian khả dụng không muộn hơn thời điểm đó. Sau đó, tính các đặc trưng từ ảnh chụp dữ liệu được tái dựng này.
Quy tắc truy xuất của bạn: trước tiên chỉ giữ các bản ghi đã có sẵn, sau đó chọn phiên bản phù hợp, rồi mới tính tín hiệu. Tính đặc trưng trên lịch sử đã được điều chỉnh đến hôm nay rồi dịch kết quả về sau vẫn để lọt dữ liệu tương lai.
Thời gian nắm giữ năm phiên không khiến bạn được phép bỏ qua việc ghi chép này. Nó cho bạn thêm dư địa để chọn thời điểm vào lệnh thận trọng; nó không giúp bạn tiếp cận các lần điều chỉnh sớm hơn.
Với nghiên cứu cũ, có thể bạn có bằng chứng về thời điểm công bố công khai nhưng không có bản ghi về thời điểm hệ thống của mình nhận được dữ liệu. Hãy ghi rõ sự khác biệt đó. Bạn có thể mô hình hóa việc tiếp cận dữ liệu sau thời điểm công bố đã được ghi nhận, với độ trễ nêu rõ. Nhưng đừng mô tả giả định đó như thể bạn đã đo được thời điểm dữ liệu thực sự được gửi đến trong quá khứ.
Bạn cũng nên dùng dấu thời gian có nhận biết múi giờ. Lưu giờ địa phương được ghi nhận của lần công bố rồi chuyển đổi cho chính xác; dùng một độ lệch UTC cố định cho New York sẽ sai khi chuyển đổi giờ mùa hè. Hãy dành cho bản thân trong tương lai chút thuận tiện ấy. Bạn của tháng 9 không nên phải giải mã cột tháng 3 có tên date_actual_final2.
Các đặc trưng cuốn chiếu cần toàn bộ phiên bản dữ liệu
Giả sử bạn thay ngưỡng cố định bằng quy tắc “mức tăng bảng lương vượt trung bình của 12 tháng trước đó”. Giờ đây, bạn cần các quan sát trước đó đúng như chúng tồn tại tại thời điểm ra quyết định, bao gồm cả những lần điều chỉnh đã được công bố trước thời điểm đó.
Dùng bản công bố đầu tiên của mỗi tháng mãi mãi sẽ xác định một đặc trưng khác. Đây có thể là một thiết kế hợp lệ nếu bạn chủ đích muốn theo dõi lịch sử các thông báo ban đầu. Nhưng cách đó không tái dựng lịch sử kinh tế mà người ta có thể thấy vào một buổi sáng cụ thể, bởi tập thông tin tại thời điểm ấy có thể đã bao gồm các điều chỉnh cho những tháng trước.
Nếu bạn tính mức thay đổi bảng lương hằng tháng từ số lượng việc làm, hãy tái dựng chuỗi số lượng việc làm theo phiên bản dữ liệu phù hợp trước khi tính chênh lệch. Trộn số liệu mới công bố với số liệu tháng trước thuộc một phiên bản cũ hơn có thể tạo ra mức thay đổi chưa từng xuất hiện trong bất kỳ ảnh chụp dữ liệu nào đã công bố.
Vì vậy, bạn cần xác định rõ đặc trưng của mình có nghĩa là gì: các thông báo ban đầu, bức tranh kinh tế mới nhất có sẵn hay chính các lần điều chỉnh. Cụm “mức tăng bảng lương” còn để ngỏ quá nhiều điều.
Sửa một lần công bố trước khi chạy lại 10 năm dữ liệu
Bạn có thể bắt đầu với ALFRED, nơi cung cấp lịch sử các phiên bản dữ liệu cho nhiều chuỗi kinh tế. Hãy kiểm tra xem chuỗi và giai đoạn cụ thể của bạn có được bao phủ hay không. Chỉ riêng ngày của một phiên bản dữ liệu không xác định được dữ liệu đã có sẵn trong ngày hay chưa; trước khi dùng cho tín hiệu cùng ngày, hãy đối chiếu với thời điểm công bố đã được ghi nhận.
Để bắt đầu kiểm toán, hãy chọn một lần công bố và tự tay tái dựng:
- Tìm bản công bố được lưu trữ và ghi lại dấu thời gian công bố, tháng tham chiếu cùng giá trị ban đầu.
- Tái dựng ảnh chụp dữ liệu đầu vào mà chiến lược của bạn lẽ ra đã nhận được trước khi vào lệnh.
- Tự tính tín hiệu rồi so sánh với kết quả chạy lại.
- Thêm một lần điều chỉnh về sau vào kho dữ liệu và xác minh rằng quyết định trước đó không thay đổi.
Bước kiểm tra cuối đặc biệt hữu ích trong một quy trình nghiên cứu tự động. Cung cấp cho tác nhân nghiên cứu của bạn mốc chốt dữ liệu và mã phiên bản đã chọn cùng với các giá trị đặc trưng. Bạn cần đủ bằng chứng để truy ngược giao dịch về một lần công bố cụ thể, kể cả sau khi cơ sở dữ liệu bên dưới đã phát triển thêm.
Khi tái tạo được quyết định đó, hãy chạy lại toàn bộ lịch sử và so sánh những điểm bất đồng về tín hiệu trước khi so sánh lợi nhuận. Đếm số lệnh vào được tạo thêm, bị loại bỏ hoặc bị dời thời điểm do việc sửa lỗi. Những quyết định đã thay đổi sẽ cho bạn biết nhiều hơn một con số Sharpe trước và sau.
Giao dịch tháng 2 của bạn phải đứng vững dựa trên thông tin có trong tháng 2. Hãy để lần điều chỉnh tháng 4 ở lại tháng 4.
← Tất cả bài viết


