Hạ tầng nghiên cứu định lượng (dữ liệu thị trường, feature, backtest)

Chủ đề Dành cho thành viên
Bài đọc thử: 1/3 · còn 2 bài miễn phí · Xem gói thành viên

Bài toán

Một quỹ định lượng hay công ty market making sống bằng vòng nghiên cứu: đặt giả thuyết → lấy dữ liệu → tạo feature → train model hay dựng tín hiệu → backtest/mô phỏng → đưa vào giao dịch thật → lặp lại. Theo Optiver, độ dài vòng này là chỉ tiêu vận hành cốt lõi Optiver 2025. Các blog của Jane Street, HRT, Two Sigma, Optiver, Man Group không bao giờ kể chiến lược cụ thể (đó là lợi thế cạnh tranh), nhưng kể khá nhiều về hạ tầng quanh nó. Trang này gom phần đó:

  • Dữ liệu: chọn dataset nào, tránh lookahead, lưu và đọc hàng trăm PB lịch sử sổ lệnh.
  • Feature: biến luồng sự kiện thị trường thành vector số; cùng một code cho lịch sử và live.
  • Compute: hàng trăm nghìn job (ngày × công cụ × model × người), interactive lẫn batch, nhiều site.
  • Đánh giá: backtest trong miền tín hiệu/nhiễu rất thấp, nơi dễ tự lừa mình.
  • Môi trường người dùng: researcher viết Python trong notebook, cần khởi động nhanh và tái lập được.

Ngoài phạm vi: thuật toán giao dịch cụ thể. Đường nóng của hệ giao dịch live (latency micro/nano giây) ở Hệ thống độ trễ thấp (low latency); nền tảng ML chung (feature store, serving, giám sát model) ở Nền tảng ML (feature, training, serving, giám sát model); pipeline dữ liệu doanh nghiệp ở Pipeline dữ liệu và analytics.

Diễn tiến theo thời gian

  • 2012 · Jane Street: hệ tín hiệu lên production khoảng 2012 là một monolith: định nghĩa hàng trăm tín hiệu, sinh dữ liệu nghiên cứu, tính tín hiệu live và chứa cả logic khớp lệnh trong một file hơn 11k (sau thành 17k) dòng; thêm một feature tỉ số chạm 19 file, mọi feature tính cho mọi thị trường. 2019 bắt đầu thay bằng Flex Model ở Hồng Kông; cố thay hết một lần mất 2,5 năm, cuối 2021 thu hẹp còn một chiến lược ở một thị trường, live đầu 2022. Feature tách thành event handler (giữ state lịch sử) và eval; không dùng Incremental vì feature cần lịch sử sự kiện, không chỉ giá trị hiện tại; planner lúc khởi động dựng kế hoạch theo loại sự kiện; cùng code chạy lịch sử và live nên training và production dễ khớp. 2026: hàng trăm feature mới trong năm. Jane Street 2026
  • 2015 · Two Sigma: cụm compute cấp động cho cả job interactive (researcher chờ kết quả) lẫn batch qua đêm. Scheduler Cook: công bằng theo Cumulative Resource Share + preemption, cho batch dùng hết tài nguyên rảnh rồi huỷ bớt khi interactive tới. Replay trace 7 ngày: 30% job (đều interactive) nhanh lên, utilization hiệu dụng giảm dưới 2%. Theo Two Sigma, thời gian của người đắt hơn throughput của batch. Two Sigma 2016
  • 2018 · Jane Street: môi trường Conda dùng chung trên NFS: khởi động kernel kèm import mất vài phút, không tái lập được. Chuyển sang XAR (cả môi trường trong một file squashfs), liên kết tĩnh thư viện Python nội bộ và binding OCaml vào môi trường, tag nightly/stable bất biến; một môi trường = một revision code. Hotfix chậm hơn (10–20 phút) nên tách code "core" (bất biến) và "leaf" (notebook, sửa tại chỗ). Jane Street 2023
  • 2018 · Two Sigma: mở mã nguồn Flint, thư viện chuỗi thời gian trên Spark lấy từ một thư viện nội bộ: asof join có hướng (chỉ nhìn quá khứ, có dung sai), phép tính cắt ngang các tài sản tại cùng timestamp, cửa sổ trên một chuỗi lớn không cần partition key. Two Sigma 2018
  • 2018 · Jane Street: dữ liệu nhiễu nhưng rất nhiều (kiểu một tỉ mẫu, nhãn chỉ hơi đúng). Xáo trộn tập lớn hơn RAM bằng hai lượt tuần tự (chia đống ngẫu nhiên, rồi xáo từng đống), gộp lượt đầu vào tiền xử lý: 220 triệu mẫu, đọc ngẫu nhiên mất khoảng 2,75 năm một lượt, hai lượt mất khoảng một ngày. Jane Street 2018
  • 2022 · HRT: bài quan điểm về chọn dữ liệu: liên quan, độc nhất (dữ liệu ai cũng có đã "priced in"), tránh lookahead (nhãn lịch sử gắn ngược làm dataset vô dụng), cỡ mẫu/nhiễu ước lượng nhanh trước khi mua; nguồn gồm market data, alternative data, và biến đổi tạo dataset mới (tỉ lệ giao dịch giá lẻ dưới cent làm proxy cho dòng tiền nhỏ lẻ). Hudson River Trading 2022
  • 2022 · HRT: theo HRT AI Lab, paper ML hiếm khi áp dụng thẳng được; ưu tiên đơn giản, tái lập được, tổng quát. Backtest một thay đổi giao dịch rất dễ tự lừa khi phân biệt chênh lệch nhỏ ở miền tín hiệu/nhiễu thấp; HRT có cách chạy backtest chuẩn hoá nội bộ. Hudson River Trading 2022
  • 2023 · HRT: factor model là khung chung để đo rủi ro, tối ưu danh mục (Sharpe) và quy PnL: m×n thay vì n² số cho 10.000 tài sản, ước lượng volatility tốt hơn ma trận thực nghiệm; PnL tách thành tilt và timing theo nhân tố và phần riêng. Hudson River Trading 2023
  • 2023→2025 · HRT: monorepo "import được mọi thứ" làm script khởi động trễ hàng chục giây, notebook 10–15 phút, job phân tán ngắn tốn phần lớn thời gian vào import. Fork CPython với lazy import (từ Cinder): prototype ở hackathon Q1/2023, migrate dần, gộp phần còn lại vào đợt nâng Python 3.12, lazy mặc định toàn công ty Q2/2025. Hudson River Trading 2025
  • 2023 · HRT: codebase Python nghiên cứu lên hàng triệu dòng và bị "tangle" (chu trình import chồng nhau), có chương trình mất hơn 30 giây chỉ để import. Tangle Tools dựng đồ thị phụ thuộc, dùng max-flow chỉ cạnh nên cắt, refactor tự động bằng libcst, luật phụ thuộc kiểm trong CI. Hudson River Trading 2023
  • 2025 · HRT: Lustre/NFS/appliance không theo kịp hàng trăm PB và noisy neighbor giữa các team. Tự xây filesystem Blobby (theo Tectonic): append-only, erasure coding 6+3, metadata trên FoundationDB sau một lớp proxy, prober đo tail latency vì một tiến trình nạp dữ liệu chậm làm nghẽn cả lần training phân tán. Hudson River Trading 2025
  • 2025 · Optiver: vòng nghiên cứu nhân lên thành hơn 100.000 job khi thêm 100 công cụ; chọn on-prem + cloud với vị trí chạy quyết định trước theo team/workload để tránh data gravity, catalog dữ liệu chung, và GraphRunner giữ DAG trong process Python của researcher, gửi từng node tới scheduler on-prem, cloud hoặc local. Optiver 2025
  • 2025 · Two Sigma: hàng nghìn nguồn dữ liệu; snapshot DB thành nút cổ chai. Chuyển sang BigQuery + dbt, pipeline khai báo bằng Terraform, version cả dataset lẫn hạ tầng để replay, giám sát chất lượng tự động; hướng tới data contract. Two Sigma 2025
  • 2026 · Jane Street: Isilon/VAST chạm trần scale; tự viết object store Depot cho nghiên cứu và một FUSE server chỉ đọc bằng OCaml để công cụ cũ đọc qua POSIX; bỏ hai lần copy buffer, từ 30 MiB/s lên 1,3 GiB/s. Jane Street 2026
  • 2026 · Jane Street: dự án thực tập thử model sinh dữ liệu thị trường (autoregressive diffusion, flow matching) trên bốn năm cổ phiếu Mỹ; dữ liệu sổ lệnh vừa liên tục vừa rời rạc, phải tách "atom" thành lớp riêng hoặc làm mượt. Chưa đủ chính xác để dùng. Jane Street 2026
  • 2026 · Optiver: ở HFT (tầm dự báo vài giây tới vài phút), feature thủ công chạm trần; chuyển dần sang học feature end-to-end từ dữ liệu Level 3 (từng lệnh, vị trí hàng đợi). Khó vì tín hiệu/nhiễu thấp (52% đã có giá trị), không dừng, lấy mẫu không đều, chuỗi hàng trăm triệu message/ngày; inference phải vừa ngân sách latency, có thể cần phần cứng FPGA riêng. Optiver 2026
  • 2026 · HRT: compute và storage trải nhiều site (cả Na Uy); training ở Chicago đọc dữ liệu New York làm nghẽn WAN. Quy lưu lượng cho từng user/workflow bằng eBPF (tcp_recvmsg, hàm NFS cấp thấp) + log dịch vụ + bộ đếm switch; thủ phạm là hàng nghìn job đọc thẳng filer New York thay vì qua cache. Hudson River Trading 2026
  • 2026 · Jane Street: researcher viết Python trên thư viện OCaml qua PyOCaml; mode local/unique của OxCaml bảo đảm tĩnh rằng data frame lớn được giải phóng ngay thay vì chờ GC của OCaml Jane Street 2026. Optiver: stack HFT thế hệ ba gộp tầng giữa nghiên cứu và đường nóng để ý tưởng lên production nhanh mà không trả bằng latency; mô phỏng phải trung thực với production Optiver 2026.

Các lựa chọn và đánh đổi

Trục Lựa chọn Ví dụ Đánh đổi
Feature Monolith tín hiệu dùng chung live + nghiên cứu Jane Street 2012 Chạy nhanh, nhưng thêm feature chạm hàng chục file, mọi thị trường trả giá cho feature của một nơi
Engine feature theo sự kiện, đồ thị cố định lúc khởi động Jane Street Flex Model 2019→2026 Ghép được, cùng code live/lịch sử, không cấp phát; mất khả năng đổi đồ thị khi đang chạy
Học feature end-to-end từ dữ liệu thô Optiver 2026 Bớt vòng "viết feature → sinh lại dataset"; dễ overfit, chuỗi dài, inference phải vừa latency
Lưu trữ nghiên cứu Mua appliance (Isilon, VAST, Lustre, NFS) Jane Street, HRT trước 2025 Nhanh để bắt đầu; chạm trần scale, đắt ở hàng trăm PB, chia hệ riêng cho tenant để lại tài nguyên chết
Tự xây object store/filesystem HRT Blobby 2025, Jane Street Depot 2026 Kiểm soát và rẻ hơn ở quy mô; đội nhỏ phải bám prior art và cắt yêu cầu (append-only, chỉ đọc qua FUSE)
Compute Một cụm, công bằng + preemption Two Sigma Cook 2015 Interactive nhanh, batch mất việc khi bị huỷ (không checkpoint)
Nhiều DC + cloud, vị trí quyết định trước Optiver 2025 Tránh data gravity; cần lớp trừu tượng compute và catalog dữ liệu chung
Điều phối DAG DAG giao cho scheduler (Slurm) kiểu truyền thống (Optiver mô tả) Đơn giản trong một môi trường; khó chia giai đoạn qua nhiều cụm
DAG giữ trong process người dùng Optiver GraphRunner 2025 Định tuyến từng node; logic điều phối nằm ở client
Môi trường Python Môi trường dùng chung có thể sửa (Conda trên NFS) Jane Street 2018 Linh hoạt; chậm, không tái lập, sợ sửa
Image bất biến theo revision, core/leaf Jane Street XAR 2023 Tái lập, rollback nguyên khối; hotfix chậm
Sửa runtime (lazy import, zlib-ng) HRT 2025, Man Group 2025–2026 Lợi cho mọi người dùng; bảo trì fork hoặc chờ upstream

Quy tắc rút ra

  1. Rút ngắn vòng ý tưởng → kết quả đã kiểm chứng là mục tiêu của cả nền tảng; chi phí, dung lượng, tính đúng phục vụ mục tiêu đó. Optiver 2025
  2. Cùng một code feature cho lịch sử và live, nếu không kết quả backtest và production lệch nhau. Jane Street 2026
  3. Provenance của dữ liệu là một phần của dữ liệu: biết nó được tạo lúc nào, bằng cách nào để tránh lookahead; join theo thời gian phải có hướng (chỉ nhìn quá khứ). Hudson River Trading 2022 Two Sigma 2018
  4. Backtest cần được chuẩn hoá và báo cáo độ bất định, vì ở miền tín hiệu/nhiễu thấp chênh lệch nhỏ thường là nhiễu. Hudson River Trading 2022 Optiver 2026
  5. Tái lập được là bắt buộc: version cả dữ liệu, code biến đổi và môi trường chạy; một môi trường = một revision. Two Sigma 2025 Jane Street 2023
  6. Thời gian chờ của researcher đắt hơn throughput batch: ưu tiên interactive (preemption), cắt thời gian khởi động (lazy import, image một file). Two Sigma 2016 Hudson River Trading 2025
  7. Data gravity là ràng buộc hạng nhất: quyết định workload chạy ở đâu trước, đưa compute tới dữ liệu, và đo được lưu lượng liên site theo từng workflow. Optiver 2025 Hudson River Trading 2026
  8. Lưu trữ nghiên cứu cần thông lượng tổng hợp và cô lập tenant, không cần hiệu năng một client; đo tail latency bằng prober vì một tiến trình nạp chậm làm nghẽn cả lần train phân tán. Hudson River Trading 2025
  9. Codebase nghiên cứu chia sẻ nhiều thì phải giữ phân tầng bằng máy: coupling lộ ra thành thời gian import và CI; đồ thị phụ thuộc + luật trong CI giữ được kết quả gỡ. Hudson River Trading 2023
  10. Với dữ liệu lớn hơn RAM, đổi truy cập ngẫu nhiên thành lượt tuần tự và gộp bước đắt vào bước đã phải chạy. Jane Street 2018

Câu hỏi mở

  • Cách xây chiến lược thật sự (alpha research, chọn tín hiệu, sizing, thực thi) gần như không có trong các blog này; nguồn gần nhất là bài khung factor model của HRT Hudson River Trading 2023 và các bài quan điểm. Muốn đi sâu cần sách/paper (HRT tự dẫn Paleologo, Connor–Korajczyk) chứ không phải engineering blog.
  • Feature thủ công hay học end-to-end: Jane Street 2026 vẫn mở rộng hệ feature thủ công (hàng trăm feature mới/năm) Jane Street 2026, Optiver 2026 đang chuyển dần sang học feature Optiver 2026. Hai nguồn ở hai mảng khác nhau; chưa có số liệu so sánh.
  • Backtest engine cụ thể (mô phỏng khớp lệnh, phí, độ trễ, tác động thị trường) chưa có nguồn nào mô tả.
  • On-prem hay cloud cho nghiên cứu: HRT và Jane Street tự xây lưu trữ on-prem; Optiver dùng hybrid có kỷ luật; Two Sigma chuyển dữ liệu sang BigQuery. Không nguồn nào đưa số chi phí.
  • Liên hệ: Hệ thống độ trễ thấp (low latency) (đường nóng live), Nền tảng ML (feature, training, serving, giám sát model) (feature store, giám sát model ở công ty không phải tài chính), Pipeline dữ liệu và analytics, Tách compute khỏi storage, Multi-tenancy và cô lập tenant (noisy neighbor trong cụm nghiên cứu).