DepthFeed/Polymarket·Chất lượng dữ liệu

CLOB WebSocket của Polymarket so với kho lưu trữ theo giờ: Vì sao độ phân giải quyết định backtest của bạn

Sự khác biệt giữa một backtest Polymarket bạn có thể đem ra giao dịch thật và một backtest dối trá thường không nằm ở chỗ bạn có bao nhiêu dữ liệu — mà ở cách dữ liệu đó được lấy mẫu.

DepthFeed··6 min

Thu thập theo sự kiện (event-driven) ghi lại order book của Polymarket mỗi khi có thay đổi, trực tiếp từ CLOB websocket; còn kho lưu trữ theo khoảng cố định lại lấy mẫu theo đồng hồ (chẳng hạn mỗi giờ một lần) và bỏ đi tất cả những gì xảy ra giữa hai lần lấy mẫu. Với các thị trường crypto ngắn hạn vốn settle chỉ trong vài phút, lấy mẫu theo khoảng chỉ chụp được một hoặc hai khung hình trong toàn bộ vòng đời của thị trường — và đó là lý do độ phân giải, chứ không phải dung lượng file, quyết định một backtest có đáng tin hay không.

'Độ phân giải' thực chất nghĩa là gì

Độ phân giải là mức độ thường xuyên mà trạng thái của order book được ghi lại. Có hai cách tiếp cận khác nhau về bản chất. Lấy mẫu theo khoảng cố định chụp một snapshot theo đồng hồ — mỗi giờ, mỗi phút, mỗi vài trăm mili-giây — bất kể thị trường đã làm gì. Thu thập theo sự kiện ghi lại một snapshot mỗi khi book thực sự thay đổi: một lệnh mới, một lệnh hủy, một giao dịch.

Hai cách này có thể tạo ra những file dung lượng tương tự nhau nhưng lại mang thông tin hoàn toàn khác nhau. Một lần lấy mẫu theo khoảng đối với một thị trường yên ắng sẽ lãng phí các dòng dữ liệu cho một book không hề đổi; còn lấy mẫu theo khoảng đối với một thị trường biến động nhanh lại bỏ lỡ chính những chuyển động quan trọng.

Bài toán của thị trường ngắn hạn

Các thị trường crypto up/down của Polymarket settle trong khoảng 5 đến 60 phút. Hãy xét một thị trường BTC 5 phút. Một kho lưu trữ theo giờ có thể chụp được nó không lần nào hoặc đúng một lần — bạn thậm chí có thể không có nổi một book duy nhất nào trong toàn bộ vòng đời của thị trường đó. Một kho lưu trữ theo từng phút cho bạn khoảng năm khung hình, nhưng không khung nào trùng khớp với chính những thời điểm mà chiến lược của bạn đáng lẽ đã ra tay.

Ngược lại, thu thập theo sự kiện ghi lại mọi lần báo giá lại (re-quote) và mọi giao dịch ngay khi chúng diễn ra, nên toàn bộ vòng cung của thị trường — lúc mở, các chuyển động khi giá spot nhích từng tick, spread nới rộng dần khi tiến tới settlement — đều có sẵn để phát lại.

So sánh trực tiếp

Kho theo giờLấy mẫu theo phútTheo sự kiện (DepthFeed)
Độ phủ thị trường 5 phút0–1 khung~5 khungMọi thay đổi
Ghi lại được spread nới rộngKhôngHiếm khi
Đo được slippageKhôngGần đúng
Khớp với chuyển động giá spotKhôngThôTừng tick một
Phân phối livekhông áp dụngkhông áp dụng~10 ms trung vị (đã đo)

Vì sao gần như không ai lưu giữ depth theo sự kiện

Ghi lại mọi thay đổi của book theo thời gian thực rất tốn kém: điều đó nghĩa là phải duy trì một kết nối websocket live cho mỗi thị trường, lưu lại từng khung hình, và không bao giờ có thể backfill những gì bạn đã không thu thập — lịch sử order book không thể tái dựng lại sau khi sự việc đã qua. Đó là lý do các sàn không phục vụ lịch sử book của chính mình và phần lớn kho lưu trữ chỉ dừng lại ở mức giá cuối được lấy mẫu. DepthFeed tồn tại với đúng một mục đích: ghi lại và phục vụ chính loại depth theo sự kiện đó.

Key takeaways

  • 01Độ phân giải là vấn đề về cách lấy mẫu, không phải dung lượng file.
  • 02Kho lưu trữ theo khoảng cố định bỏ lỡ vòng đời của các thị trường 5–60 phút.
  • 03Thu thập theo sự kiện ghi lại mọi thay đổi của book, nên toàn bộ vòng cung của thị trường có thể được phát lại.
  • 04Lịch sử order book không thể backfill — nó chỉ có nếu ai đó đã thu thập live.

Sự khác biệt giữa một backtest Polymarket bạn có thể đem ra giao dịch thật và một backtest dối trá thường không nằm ở chỗ bạn có bao nhiêu dữ liệu — mà ở cách dữ liệu đó được lấy mẫu.

Bắt đầu miễn phí

Giải đáp thắc mắc.

CLOB websocket của Polymarket truyền các cập nhật book live, nhưng Polymarket không phục vụ kho lưu trữ lịch sử của các snapshot order book đó. Để phát lại book đúng như nó từng có, bạn cần một nhà cung cấp đã thu thập websocket liên tục và lưu trữ nó — và đó chính là điều DepthFeed làm.