Backtest quyền chọn có thể thay đổi dù không sửa một dòng mã chiến lược nào. Nhà cung cấp đính chính báo giá sai, bổ sung giao dịch được gửi muộn, sửa siêu dữ liệu hợp đồng hoặc thay đổi bộ lọc cho các thị trường bị chéo. Bạn chạy lại cùng khoảng ngày và nhận được mức khớp lệnh khác, vị thế khác, thậm chí Sharpe khác. Điều đó không nhất thiết có nghĩa là chiến lược bị lỗi. Dữ liệu làm căn cứ kiểm thử chiến lược đã thay đổi.
Để backtest quyền chọn có thể tái lập, hãy xem dữ liệu thị trường là một đầu vào có phiên bản. Ghi lại snapshot đã dùng, lưu giữ các quan sát thô làm căn cứ cho từng quyết định, rồi so sánh những kết quả thay đổi ở cấp hợp đồng và dấu thời gian trước khi tin vào số liệu tổng hợp mới.
Vì sao backtest quyền chọn của tôi thay đổi dù mã vẫn giữ nguyên?
Dữ liệu quyền chọn đặc biệt nhạy cảm với các bản đính chính vì khả năng giao dịch của một hợp đồng phụ thuộc vào nhiều trường thay đổi cùng nhau: giá bid, giá ask, khối lượng, giá tài sản cơ sở, ngày đáo hạn, giá thực hiện và hệ số nhân hoặc tài sản phân phối của hợp đồng. Một báo giá được đính chính có thể biến cơ hội có vẻ hấp dẫn thành thị trường bị chéo. Sửa siêu dữ liệu có thể làm thay đổi ý nghĩa của hệ số nhân vị thế.
Hãy hình dung một chiến lược mua quyền chọn mua khi giá ask dưới $2.00. Ở lần tải dữ liệu đầu tiên, báo giá lúc 10:14 có ask $1.95, bid $1.90 và khối lượng 5. Bản sửa đổi sau đó của nhà cung cấp đổi giá ask thành $2.05 sau khi đối soát một thông điệp từ sở giao dịch bị gửi trễ. Chỉ một quan sát đã làm tín hiệu đảo chiều. Nếu đó là giao dịch duy nhất của chiến lược trong ngày, một đính chính dữ liệu nhỏ cũng có thể chi phối lợi nhuận trong ngày.
Việc lọc báo giá cũng rất quan trọng. Nhà cung cấp có thể loại báo giá cũ, bỏ các thị trường bị chéo hoặc chuẩn hóa dấu thời gian theo cách khác. Những chính sách đó có thể hợp lý, nhưng chúng là một phần định danh của bộ dữ liệu. “Quyền chọn SPY, từ tháng 1 đến tháng 3” chưa đủ để xác định một lịch sử có thể tái lập.
Phiên bản dữ liệu quyền chọn là gì?
Phiên bản dữ liệu là phiên bản chính xác của các quan sát lịch sử có sẵn cho một lượt nghiên cứu cụ thể. Hãy lưu tên nhà cung cấp và bộ dữ liệu, thời điểm truy xuất, khoảng ngày, phiên bản lược đồ cùng mọi quy tắc làm sạch hoặc lọc. Nếu nhà cung cấp có mã snapshot hoặc dấu thời gian sửa đổi, hãy lưu cả những thông tin đó.
Với mỗi quyết định mô phỏng, hãy giữ đủ thông tin truy nguyên để trả lời: đã xem xét hợp đồng nào, đã chọn báo giá nào, báo giá được công bố hoặc nhận vào lúc nào, và quy tắc nào khiến báo giá đủ điều kiện? Cả bản ghi thô lẫn bản ghi đã xử lý đều quan trọng. NBBO đã làm sạch mà thiếu dấu thời gian nguồn có thể che khuất việc báo giá đã cũ hay đến sau quyết định mô phỏng.
| Bản ghi cần lưu | Tầm quan trọng | Ví dụ |
|---|---|---|
| Snapshot nguồn | Xác định bộ dữ liệu lịch sử mà lượt chạy sử dụng | Mã bản sửa đổi của nhà cung cấp và dấu thời gian truy xuất |
| Nguồn gốc báo giá | Giải thích thị trường được chọn | Sở giao dịch, thời điểm sự kiện, thời điểm nhận, giá bid/ask và khối lượng |
| Điều khoản hợp đồng | Xác định quyền chọn đại diện cho điều gì | Giá thực hiện, ngày đáo hạn, hệ số nhân và tài sản phân phối |
| Chính sách làm sạch | Cho biết những quan sát nào bị loại | Ngưỡng xác định báo giá cũ và cách xử lý báo giá chéo |
Làm sao kiểm tra liệu bản sửa đổi của nhà cung cấp có làm thay đổi kết quả?
Chạy cùng chiến lược và cấu hình trên cả hai snapshot. Trước tiên, so sánh số lượng quan sát và hợp đồng đủ điều kiện theo từng ngày. Sau đó, so sánh quyết định và lệnh khớp: tín hiệu nào xuất hiện hoặc biến mất, báo giá nào thay đổi, và bản ghi mới có làm thay đổi giá khớp mô hình hay không.
Đừng chỉ nhìn vào tổng lợi nhuận. Theo dõi thay đổi về số giao dịch, giá vào và giá thoát, tín hiệu bị từ chối, cũng như tỷ trọng P&L đến từ các giao dịch chỉ xuất hiện trong một phiên bản dữ liệu. Sharpe của một lượt chạy có thể vẫn tương tự dù từng giao dịch đã bị thay thế; chỉ số tổng hợp không cho bạn biết lịch sử bên dưới đã dịch chuyển.
Để kiểm tra hữu ích, hãy giữ nguyên chiến lược, phí và giả định khớp lệnh. Nếu nhiều yếu tố cùng thay đổi, bạn sẽ không biết chênh lệch đến từ bản đính chính của nhà cung cấp hay từ thử nghiệm của chính mình.
Tôi có nên luôn dùng lịch sử quyền chọn mới nhất không?
Hãy dùng dữ liệu lịch sử mới nhất khi mục tiêu là dựa trên bản tái dựng tốt nhất hiện tại của nhà cung cấp. Giữ snapshot cũ khi cần tái lập kết quả trước đây hoặc hiểu hệ thống nghiên cứu của bạn biết gì vào thời điểm đó. Hai trường hợp này trả lời hai câu hỏi khác nhau.
Với nghiên cứu tại thời điểm thực, một bản ghi đã đính chính có thể chính xác hơn ở hiện tại nhưng vẫn chưa có sẵn cho chiến lược vào thời điểm đó. Hãy lưu thời điểm công bố và nhận dữ liệu nếu có thể; nếu không, hãy nêu rõ hạn chế. Bản tái dựng hiện đại không mặc nhiên là tập thông tin lịch sử.
Khi backtest quyền chọn thay đổi, câu hỏi đầu tiên nên là “Những quan sát nào đã thay đổi?” Chỉ sau khi trả lời được câu hỏi đó, mới nên hỏi “Lượt chạy nào đúng?”.
Tôi nên lưu gì cùng mỗi lần backtest?
Hãy lưu một bản kê khai ngắn gọn bên cạnh kết quả: nhà cung cấp và snapshot dữ liệu, thời điểm truy xuất, phiên bản lược đồ và làm sạch, nguồn siêu dữ liệu hợp đồng, commit chiến lược, giả định khớp lệnh và cấu hình lượt chạy. Liên kết từng giao dịch với các bản ghi báo giá làm căn cứ cho giao dịch đó.
Bản ghi nhỏ này biến một lần chạy lại khó hiểu thành bản đối chiếu mà bạn có thể kiểm tra. Lịch sử quyền chọn sẽ tiếp tục được đính chính. Quy trình nghiên cứu của bạn nên làm rõ từng lần đính chính, để kho dữ liệu tốt hơn cải thiện căn cứ mà không âm thầm viết lại thử nghiệm.
← Tất cả bài viết


