1. Phân Tầng Dữ Liệu Tài Chính: Từ EOD Đến Sổ Lệnh Level 3
Dữ liệu chính là dòng máu nuôi dưỡng toàn bộ cỗ máy Quant Trading. Trong kho lưu trữ EliteQuant, dữ liệu tài chính không đơn thuần chỉ là giá đóng cửa (Close Price) mà được phân chia thành 4 cấp độ phân giải từ thô đến cực mịn:
CẤP ĐỘ 1: EOD DATA
End of Day (Giá ngày)
Mỗi ngày 1 dòng: Open, High, Low, Close, Volume. Phù hợp cho chiến lược đầu tư dài hạn, Rebalancing danh mục theo quý hoặc quét đa tài sản vĩ mô.
CẤP ĐỘ 2: INTRADAY BARS
Thanh Nến Trong Ngày
Khung thời gian 1 phút, 5 phút, 1 giờ. Phù hợp cho chiến lược lướt sóng trong ngày (Day Trading), Breakout hoặc Swing Trading tần suất vừa.
CẤP ĐỘ 3: TICK DATA
Time & Sales (Khớp Lệnh)
Ghi nhận từng lệnh giao dịch đơn lẻ khớp thành công: Timestamp nano-giây, giá khớp, khối lượng và cờ Bid/Ask. Kích thước hàng gigabyte mỗi ngày.
CẤP ĐỘ 4: LOB LEVEL 2/3
Limit Order Book Depth
Độ sâu sổ lệnh: Toàn bộ danh sách hàng chờ mua/bán ở các mức giá khác nhau. Cho phép tính toán mất cân bằng cung cầu vi mô (Order Book Imbalance).
2. Tại Sao SQL Truyền Thống Thất Bại? Giải Pháp Man AHL Arctic & Parquet
Nhiều kỹ sư phần mềm khi bước sang làm Quant thường cố gắng lưu trữ dữ liệu Tick vào PostgreSQL hoặc MySQL. Sau vài tháng, cơ sở dữ liệu phình to lên hàng trăm triệu dòng lệnh, câu truy vấn SELECT ... WHERE timestamp BETWEEN ... mất hàng phút để phản hồi, cây chỉ mục B-Tree trở nên quá tải.
💡
GIẢI PHÁP TỪ MAN AHL (ARCTIC): Man Group (quỹ đầu cơ định lượng quản lý hơn 150 tỷ USD) đã giải quyết triệt để bài toán này bằng cách phát hành thư viện mã nguồn mở Arctic (được đề xuất trong EliteQuant). Arctic lưu trữ chuỗi thời gian dưới dạng các khối nhị phân nén (Chuncked Binary BSON/Parquet) đặt trên MongoDB hoặc S3, cho phép đọc ghi hàng triệu điểm dữ liệu mỗi giây với khả năng Versioning (quản lý phiên bản dữ liệu) chống ghi đè lỗi.
Ngoài ra, định dạng tệp Apache Parquet lưu trữ theo cột (Columnar Storage) kèm thuật toán nén Snappy/ZSTD là tiêu chuẩn vàng ngày nay. Nó giúp nén 80% dung lượng đĩa so với CSV và tăng tốc độ đọc dữ liệu của Pandas lên gấp 30–50 lần.
3. Phân Tích Chuỗi Thời Gian: Kiểm Định Tính Dừng (Stationarity & ADF Test)
Một sai lầm chết người của người mới bắt đầu làm Machine Learning hoặc thống kê trong tài chính là đưa trực tiếp chuỗi Giá cổ phiếu (Raw Price) vào các mô hình hồi quy (OLS, Linear Regression).
⚠️
HIỆN TƯỢNG HỒI QUY NGỤY TẠO (SPURIOUS REGRESSION): Chuỗi giá tài sản tài chính là chuỗi không dừng (Non-Stationary, tích hợp bậc 1 $I(1)$), tức là giá trị trung bình (Mean) và phương sai (Variance) liên tục thay đổi theo thời gian. Khi đưa 2 chuỗi không dừng vào mô hình hồi quy, $R^2$ có thể lên tới 98% dù thực chất hai cổ phiếu đó chẳng có bất kỳ liên hệ kinh tế nào với nhau!
Để một mô hình định lượng hoạt động chính xác, dữ liệu đầu vào bắt buộc phải đạt Tính dừng (Stationarity): Giá trị trung bình, phương sai và hàm tự tương quan không đổi theo thời gian.
Tiêu chuẩn vàng để kiểm tra tính dừng là Kiểm định Augmented Dickey-Fuller (ADF Test):
Giả thuyết $H_0$: Chuỗi có chứa nghiệm đơn vị (Unit Root) $\rightarrow$ Chuỗi không dừng (Non-Stationary).
Giả thuyết $H_1$: Chuỗi không có nghiệm đơn vị $\rightarrow$ Chuỗi dừng (Stationary).
Quy tắc bác bỏ: Nếu $p\text{-value} < 0.05$ (độ tin cậy 95%), ta bác bỏ $H_0$ và kết luận chuỗi đã đạt tính dừng sẵn sàng cho mô hình hóa.
4. Đột Phá Marcos López de Prado: Sai Phân Bậc Phân Số (Fractional Differentiation)
Cách truyền thống để biến chuỗi giá không dừng thành chuỗi dừng là lấy Sai phân bậc 1 (First Difference) hoặc tính tỷ suất sinh lời Log:
$r_t = \ln(P_t) - \ln(P_{t-1}) = \Delta P_t$
Tuy nhiên, huyền thoại Quant Marcos López de Prado (tác giả Advances in Financial Machine Learning) đã chỉ ra một nghịch lý: Khi bạn lấy sai phân nguyên bậc 1 ($d=1$), bạn đạt được tính dừng nhưng đã xóa sổ sạch toàn bộ trí nhớ dài hạn (Memory) của chuỗi giá — điều kiện tiên quyết để dự báo xu hướng!
Giải pháp mang tính cách mạng là Sai phân bậc phân số (Fractional Differentiation): Thay vì chọn $d=1$ (mất trí nhớ) hoặc $d=0$ (không dừng), ta tìm một số thực $d$ tối ưu (ví dụ: $d = 0.35$ đến $0.45$) sao cho chuỗi vừa đủ vượt qua kiểm định ADF Test ($p < 0.05$) nhưng vẫn bảo lưu tới 80% mối quan hệ tương quan dài hạn của dữ liệu gốc!
5. Mô Hình Hóa Biến Động: ARCH/GARCH & Định Cỡ Vị Thế Theo Volatility
Trong tài chính, độ biến động (Volatility) có một đặc tính then chốt được phát hiện bởi nhà kinh tế học đoạt giải Nobel Robert Engle: Biến động tụ cụm (Volatility Clustering). Những ngày biến động mạnh thường kéo theo những ngày biến động dữ dội tiếp theo; những thời kỳ yên ắng thường kéo dài liên tục.
Mô hình GARCH(1,1) (Generalized Autoregressive Conditional Heteroskedasticity) mô hình hóa phương sai có điều kiện $\sigma_t^2$ tại thời điểm $t$ dựa trên 3 thành phần:
Trong đó $\omega$ là hằng số phương sai dài hạn, $\epsilon_{t-1}^2$ là cú sốc lợi nhuận của phiên trước (thành phần ARCH), và $\sigma_{t-1}^2$ là phương sai dự báo của phiên trước (thành phần GARCH).
Ứng dụng thực chiến trong Quant Trading: Khi mô hình GARCH dự báo độ biến động ngày mai sẽ tăng vọt lên mức nguy hiểm, hệ thống định cỡ vị thế (Position Sizing) sẽ tự động thu hẹp khối lượng lệnh (Contract Size) xuống một nửa để giữ cho mức chịu rủi ro danh mục (VaR - Value at Risk) luôn không đổi.
6. Thư Viện Phái Sinh Kinh Điển QuantLib: Định Giá Quyền Chọn & Vol Surface
Nhắc đến thư viện định lượng đỉnh cao nhất mọi thời đại trong kho tài nguyên EliteQuant, không thể không nhắc đến QuantLib. Được viết bằng C++ thuần túy để tối ưu hóa hiệu năng microsecond và có bản đóng gói Python wrapper (QuantLib-Python), QuantLib là vũ khí của các ngân hàng đầu tư hàng đầu thế giới (Goldman Sachs, Morgan Stanley, J.P. Morgan) trong việc:
Định giá phái sinh phức tạp (Vanilla & Exotic Options): Mô hình giải tích Black-Scholes-Merton, phương pháp sai phân hữu hạn (Finite Difference) và mô phỏng ngẫu nhiên Monte Carlo.
Tính toán chính xác các biến số Hy Lạp (The Greeks): Delta, Gamma, Vega, Theta, Rho và các bậc cao hơn (Vanna, Volga).
Dựng đường cong cấu trúc kỳ hạn (Term Structure & Yield Curve): Nội suy đường cong lãi suất phi rủi ro từ trái phiếu chính phủ và hợp đồng hoán đổi lãi suất (IRS).
Xây dựng Mặt phẳng biến động ngụ ý (Implied Volatility Surface): Khắc phục hiện tượng Nụ cười biến động (Volatility Smile) trên các thị trường quyền chọn.
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller
from arch import arch_model
# 1. Kiểm định tính dừng Augmented Dickey-Fuller (ADF Test)defcheck_stationarity(series, name="Series"):
result = adfuller(series.dropna())
adf_stat, p_value = result[0], result[1]
print(f"=== KIỂM ĐỊNH TÍNH DỪNG ADF CHO {name} ===")
print(f"ADF Statistic: {adf_stat:.4f} | p-value: {p_value:.4e}")
if p_value < 0.05:
print("=> Bác bỏ H0: Chuỗi ĐẠT tính dừng (Stationary). Sẵn sàng mô hình hóa!")
else:
print("=> Chấp nhận H0: Chuỗi KHÔNG dừng (Non-Stationary). Cần lấy sai phân!")
# 2. Ước lượng mô hình dự báo biến động GARCH(1,1)deffit_garch_volatility(returns):
# returns dạng phần trăm: r * 100
am = arch_model(returns * 100, vol='Garch', p=1, q=1, dist='Normal')
res = am.fit(disp='off')
forecast = res.forecast(horizon=1)
next_day_vol = np.sqrt(forecast.variance.values[-1, 0])
print(f"Dự báo biến động GARCH(1,1) ngày kế tiếp: {next_day_vol:.2f}%")
return next_day_vol
💡
TỔNG KẾT BÀI HỌC: Một cỗ máy Quant vững chắc đòi hỏi một tầng dữ liệu sạch và các công cụ toán học nghiêm ngặt. Khi đã làm chủ dữ liệu và tính dừng, chúng ta sẽ bước sang Phần 3: Khám phá các Chiến Lược Định Lượng Kinh Điển từ hai bậc thầy Dr. Ernie Chan và Robert Carver (Mean Reversion, Pairs Trading Cointegration và Trend Following).
🤖
Biên Soạn: Học Viện Giao Dịch — Hàng Hóa Plus
Chuỗi bài giảng chuyên sâu về Quantitative & Algorithmic Trading được nghiên cứu và chuẩn hóa dựa trên các chuẩn mực kiến trúc tài chính định lượng quốc tế.