10 tháng Mười Một, 2026 · dữ liệu

Backtest của bạn cần nhật ký thay đổi dữ liệu, không chỉ một bản chụp dữ liệu

Backtest của bạn cần nhật ký thay đổi dữ liệu, không chỉ một bản chụp dữ liệu

Một bản chụp dữ liệu thị trường được đóng băng vẫn chưa đủ để backtest đáng tin cậy. Bản chụp có thể tái tạo cùng một kết quả nhưng che giấu việc nhà cung cấp đã thay đổi các đầu vào tạo ra kết quả đó.

Hãy giữ bản chụp. Sau đó, lưu nhật ký thay đổi để biết điều gì đã thay đổi, thay đổi khi nào và liệu chiến lược có bị ảnh hưởng hay không. Điều này đặc biệt quan trọng khi nghiên cứu của chúng ta dùng giao dịch đã hiệu chỉnh, dữ liệu cơ bản đã sửa đổi, dữ liệu funding được tái dựng hoặc dữ liệu lịch sử được nhà cung cấp âm thầm làm mới.

Vì sao một backtest có thể tái lập mà vẫn khiến bạn hiểu sai?

Giả sử bạn tải về dữ liệu nến theo giờ của 5 năm vào thứ Hai rồi chạy một chiến lược. Đến thứ Sáu, nhà cung cấp đã sửa một giao dịch sai, điều chỉnh một sự kiện doanh nghiệp hoặc bổ sung dữ liệu cho một khoảng trống. Tệp bạn đã lưu vẫn cho ra chính xác kết quả hôm thứ Hai. Đó là khả năng tái lập. Nhưng nếu chạy lại bằng dữ liệu lịch sử hiện tại của nhà cung cấp, bạn có thể nhận được kết quả khác mà không có thông tin nào giải thích nguyên nhân.

Vấn đề không chỉ nằm ở những hiệu chỉnh lớn. Chỉ một mức giá cao nhất bị thay đổi cũng có thể kích hoạt lệnh dừng lỗ; giá đóng cửa được sửa đổi có thể khiến chỉ báo vượt ngưỡng. Trong một tập tài sản rộng, lịch sử của một mã có thể thay đổi thứ hạng và đẩy tài sản khác ra khỏi danh mục. Sharpe cuối cùng có thể trôi lệch dù mã chiến lược và cấu hình hoàn toàn giống nhau.

Mã băm tệp cho bạn biết hai tệp khác nhau. Nhưng nó không cho biết liệu điều chỉnh do chia tách đã làm thay đổi giá của 40 năm, nhà cung cấp đã sửa 3 giao dịch hay bộ phân tích cú pháp đã biến một trường trống thành số 0.

Nhật ký thay đổi dữ liệu thị trường nên ghi những gì?

Hãy ghi nhận thay đổi ở cấp độ nhỏ nhất có ích, kèm đủ ngữ cảnh để chạy lại phần nghiên cứu bị ảnh hưởng. Với nguồn dữ liệu nến, thông thường cần có công cụ, khung thời gian, thời điểm sự kiện, giá trị cũ và mới, nguồn, cùng thời điểm bạn quan sát thấy bản cập nhật. Hãy lưu payload gốc nếu nhà cung cấp có cung cấp.

Thông tin cần ghiLý do cần lưuVí dụ
Phiên bản nguồn hoặc thời điểm truy xuấtXác định trạng thái dữ liệu của nhà cung cấp đã được dùngBản chụp được tải lúc 2026-11-02 08:15 UTC
Trường thay đổi và giá trị cũ/mớiCho thấy điều gì thực sự đã thay đổiETHUSDT 1h high: 3,412.10 → 3,418.60
Phân loại thay đổiPhân biệt hiệu chỉnh với biến đổi dữ liệuHiệu chỉnh giao dịch đến muộn, điều chỉnh chia tách, bổ sung dữ liệu lịch sử
Phiên bản pipeline và schemaPhân biệt chỉnh sửa từ nguồn với xử lý của chính bạnNormalizer v7, schema nến đã điều chỉnh v3

Với bộ dữ liệu lớn, hãy lưu các bản chụp bất biến cùng manifest gọn ghi lại mã kiểm tra tổng, phiên bản nguồn và thời điểm truy xuất. Bổ sung các bản diff theo từng dòng cho những phân vùng đã thay đổi. Cách này tạo ra phương án cân bằng thiết thực: vẫn có thể chạy lại toàn bộ mà không phải ghi mọi dòng không đổi vào một bảng kiểm toán thứ hai.

Làm thế nào để đo lường mức độ ảnh hưởng của một hiệu chỉnh?

Đừng dừng lại ở việc đếm số dòng thay đổi. Hãy chạy lại chiến lược bị ảnh hưởng với dữ liệu cũ và mới, dùng cùng mã, tham số, phí và giả định khớp lệnh. So sánh các quyết định và diễn biến dẫn đến kết quả.

  1. Dùng bản diff để xác định các công cụ và thời điểm sự kiện bị ảnh hưởng.
  2. Tìm những đặc trưng, tín hiệu, lệnh hoặc tỷ trọng danh mục sử dụng các bản ghi đó.
  3. Chạy lại cửa sổ nhỏ nhất hợp lệ, bao gồm cả khoảng nhìn lại và trạng thái vị thế đang mở.
  4. So sánh lệnh, khớp lệnh, mức độ tiếp xúc, vòng quay danh mục, sụt giảm và hiệu suất cuối cùng.

Ví dụ, một hiệu chỉnh của nhà cung cấp làm thay đổi mức cao nhất trong nến 1-minute thêm $0.02 có thể ảnh hưởng đến một triệu dòng mà không tác động gì đến chiến lược động lượng theo ngày. Một nến duy nhất được sửa tại mức giá dừng lỗ có thể quan trọng hơn. Hãy đo mức độ ảnh hưởng đến quyết định; số lượng bản ghi thay đổi là chỉ dấu thay thế kém hiệu quả.

Hãy phân biệt hai câu hỏi: “Tôi có thể tái tạo kết quả từ dữ liệu đã lưu không?” và “Phiên bản dữ liệu này có sẵn cho chiến lược vào thời điểm đó không?” Nhật ký thay đổi giúp trả lời cả hai, nhưng câu hỏi thứ hai còn cần hồ sơ về dữ liệu sẵn có tại từng thời điểm.

Việc này tốn kém đến đâu và khi nào thì đáng làm?

Theo dõi thay đổi làm tăng chi phí lưu trữ, khối lượng công việc nhập dữ liệu và các quyết định vận hành. Nhà cung cấp có thể không đưa ra phiên bản ổn định, và một số nguồn dữ liệu lịch sử được tái tạo định kỳ mà không có thông báo hiệu chỉnh rõ ràng. Bạn không thể ghi nhật ký một thay đổi mà mình chưa từng quan sát được.

Hãy bắt đầu với những dữ liệu mà việc sửa đổi có thể làm thay đổi kết luận nghiên cứu: nến dùng cho logic dừng lỗ, cổ phiếu đã điều chỉnh theo sự kiện doanh nghiệp, dữ liệu cơ bản tại từng thời điểm, và chuỗi funding hoặc khối lượng hợp đồng mở được tái dựng. Với bộ dữ liệu rộng và ổn định, manifest hằng ngày cùng mã kiểm tra tổng theo phân vùng có thể là đủ. Hãy bổ sung diff cấp trường ở nơi cập nhật thường xuyên hoặc quyết định giao dịch nhạy cảm với từng bản ghi.

Những người chỉ trích có lý khi cho rằng kho lưu trữ đầy đủ, vô thời hạn mọi phản hồi của nhà cung cấp có thể trở nên tốn kém mà vẫn không ghi lại được những gì nguồn dữ liệu biết vào thời điểm đó. Giải pháp là giới hạn phạm vi kiểm toán ở dữ liệu và quyết định quan trọng, đồng thời ghi rõ các khoảng trống. Bản chụp cho phép bạn chạy lại một thử nghiệm. Nhật ký thay đổi giúp bạn giải thích vì sao kết quả thử nghiệm đã thay đổi.

kỹ thuật dữ liệubacktestkhả năng tái lậpnghiên cứu định lượng
← Tất cả bài viết