Machine learning không tự biến dữ liệu thị trường thành lợi nhuận. Nó chỉ học một ánh xạ từ feature tới target mà nhà nghiên cứu đã định nghĩa. Nếu target sai, dữ liệu rò rỉ hoặc cách đánh giá không phản ánh giao dịch thực tế, mô hình mạnh hơn chỉ tạo ra một sai lầm thuyết phục hơn.
Nội dung mang tính nghiên cứu và giáo dục, không phải khuyến nghị đầu tư.
Khi nào một bài toán giao dịch phù hợp với machine learning?
ML hữu ích khi bạn có nhiều quan sát tương đối nhất quán, feature được tạo theo cùng quy trình và một mục tiêu dự báo đo được. Ví dụ: ước lượng xác suất lợi suất kỳ tới dương, dự báo độ biến động, xếp hạng tương đối tài sản hoặc phân loại trạng thái thanh khoản.
ML không phải lựa chọn tốt nếu dữ liệu quá ít, nhãn thay đổi liên tục, chi phí giao dịch chi phối toàn bộ lợi thế hoặc bạn chưa xây được baseline có logic. Hướng dẫn “Rules of Machine Learning” của Google khuyến nghị bắt đầu bằng pipeline chắc chắn và mô hình đơn giản trước khi thêm độ phức tạp. Trong nghiên cứu trading, nguyên tắc này đặc biệt quan trọng vì tín hiệu thường yếu và dễ biến đổi theo chế độ thị trường.
Quy trình nghiên cứu mô hình đầu tiên
1. Chọn một quyết định cụ thể, không bắt đầu bằng thuật toán
Đừng bắt đầu bằng câu hỏi “dùng XGBoost hay neural network?”. Hãy bắt đầu bằng quyết định cần hỗ trợ:
- Xếp hạng tài sản cho kỳ tái cân bằng tiếp theo?
- Ước lượng volatility để điều chỉnh quy mô vị thế?
- Phát hiện môi trường mà một chiến lược hiện hữu nên giảm rủi ro?
- Trích xuất thông tin có cấu trúc từ báo cáo hoặc tin tức?
Mỗi bài toán cần target, horizon và thời điểm ra quyết định khác nhau. Nếu target không gắn với một hành động danh mục, điểm số ML có thể đẹp nhưng không có giá trị vận hành.
2. Thiết kế target trước khi tạo feature
Target có thể là lợi suất liên tục, nhãn tăng/giảm, lợi suất vượt benchmark hoặc volatility tương lai. Hãy ghi rõ:
- Khoảng thời gian tính nhãn.
- Giá bắt đầu và kết thúc có thể giao dịch.
- Cách xử lý nhãn chồng lấn.
- Có trừ chi phí trong target hay chỉ ở tầng mô phỏng danh mục.
Nhãn chồng lấn khiến các quan sát liên quan với nhau. Khi đó cần thận trọng với cross-validation và có thể dùng khoảng cách giữa train/test để giảm rò rỉ.
3. Chỉ dùng feature có sẵn tại thời điểm dự báo
Feature nên được tạo từ snapshot dữ liệu đúng thời điểm. Với dữ liệu giá, hãy kiểm tra thao tác shift và rolling window. Với dữ liệu cơ bản, dùng ngày công bố thay vì ngày kết thúc kỳ. Với văn bản, lưu timestamp phát hành và phiên bản tài liệu.
Tài liệu scikit-learn chỉ ra rằng data leakage có thể xuất hiện ngay trong bước chuẩn hóa, điền thiếu, PCA hoặc chọn feature nếu các phép biến đổi được fit bằng cả test set. Cách an toàn hơn là đóng gói tiền xử lý và mô hình trong cùng một pipeline, sau đó fit lại pipeline ở từng fold.
4. Chia dữ liệu theo thời gian
Một cấu trúc cơ bản gồm:
- Train: học tham số mô hình.
- Validation: chọn feature, hyperparameter và ngưỡng.
- Test cuối: chỉ mở sau khi thiết kế đã khóa.
Có thể dùng expanding window hoặc rolling window. TimeSeriesSplit của scikit-learn giữ train nằm trước test và hỗ trợ gap. Google cũng khuyến nghị đánh giá mô hình trên dữ liệu thu thập sau giai đoạn huấn luyện vì cách này gần với vận hành thực tế hơn.
Fold 1: train [2018-2020] -> validate [2021]
Fold 2: train [2018-2021] -> validate [2022]
Fold 3: train [2018-2022] -> validate [2023]
Final : train [2018-2023] -> test [2024-2025]5. Xây baseline trước mô hình phức tạp
Baseline có thể là dự báo trung bình, random walk, logistic regression, linear regression hoặc một rule-based signal hiện hữu. Mô hình ML chỉ đáng giữ nếu cải thiện ổn định so với baseline sau chi phí và trên dữ liệu ngoài mẫu.
| Mức | Mục tiêu |
|---|---|
| Baseline ngây thơ | Kiểm tra target có dễ đoán hơn ngẫu nhiên không |
| Mô hình tuyến tính | Tạo chuẩn so sánh dễ giải thích |
| Tree/boosting | Kiểm tra quan hệ phi tuyến và tương tác feature |
| Deep learning | Chỉ cân nhắc khi dữ liệu, hạ tầng và baseline đủ mạnh |
6. Đánh giá cả mô hình lẫn chiến lược
RMSE, AUC hoặc accuracy chỉ đo chất lượng dự báo theo định nghĩa thống kê. Trading còn cần lớp chuyển đổi dự báo thành vị thế, giới hạn rủi ro và mô phỏng thực thi.
- Metric mô hình: MAE/RMSE, log loss, AUC, rank correlation, calibration.
- Metric danh mục: lợi suất sau chi phí, drawdown, turnover, exposure, tail risk.
- Metric ổn định: kết quả theo fold, giai đoạn, nhóm tài sản và regime.
Một cải thiện AUC rất nhỏ có thể có giá trị nếu ổn định và chi phí thấp; ngược lại accuracy cao có thể vô nghĩa khi nhãn mất cân bằng hoặc vị thế không thể giao dịch.
7. Giải thích và kiểm tra độ nhạy
Feature importance không tự chứng minh quan hệ nhân quả. Hãy kiểm tra dấu của quan hệ, độ ổn định theo thời gian, mức phụ thuộc vào một feature và phản ứng khi dữ liệu bị nhiễu. Nếu mô hình thay đổi hoàn toàn chỉ vì một điều chỉnh nhỏ, rủi ro vận hành rất cao.
Có thể dùng permutation importance, partial dependence hoặc SHAP như công cụ chẩn đoán, nhưng vẫn cần quay lại dữ liệu gốc và logic thị trường.
8. Paper trade và giám sát model drift
Khi triển khai, phân phối feature và quan hệ feature-target có thể thay đổi. Google gọi chênh lệch giữa pipeline huấn luyện và pipeline vận hành là training-serving skew và khuyến nghị đo lường trực tiếp. NIST AI RMF cũng coi quản trị rủi ro là hoạt động liên tục trong toàn bộ vòng đời, với các chức năng Govern, Map, Measure và Manage.
Một dashboard tối thiểu nên theo dõi:
- Dữ liệu thiếu, trễ hoặc thay đổi schema.
- Phân phối feature so với giai đoạn huấn luyện.
- Calibration và lỗi dự báo khi nhãn mới xuất hiện.
- Turnover, exposure, chi phí và drawdown.
- Độ lệch giữa backtest, paper trade và kết quả vận hành.
Ứng dụng LLM trong quy trình nghiên cứu
Mô hình ngôn ngữ phù hợp với các công việc có đầu vào/đầu ra cần được kiểm tra:
- Tóm tắt tài liệu và lập bảng giả thuyết cần kiểm chứng.
- Trích xuất sự kiện, thực thể hoặc chủ đề từ văn bản.
- Viết unit test cho pipeline dữ liệu và backtest.
- Giải thích log lỗi, so sánh phiên bản mã và tạo tài liệu thí nghiệm.
- Đề xuất stress test hoặc phản biện giả thuyết.
Không nên đưa thẳng câu trả lời tự do của LLM vào lệnh giao dịch mà không có schema, kiểm tra nguồn và đánh giá lịch sử. Với tác vụ trích xuất, hãy yêu cầu JSON có cấu trúc, lưu bằng chứng nguồn và đo precision/recall trên tập gán nhãn thủ công.
Một thí nghiệm ML nhỏ có thể làm trong một tuần
- Chọn một target duy nhất, ví dụ xếp hạng lợi suất tương đối kỳ kế tiếp.
- Dùng từ 3 đến 5 feature có logic và timestamp rõ ràng.
- Tạo baseline tuyến tính.
- Dùng walk-forward với pipeline tiền xử lý khép kín.
- So sánh với một mô hình cây đơn giản.
- Chuyển dự báo thành danh mục có giới hạn turnover.
- Trừ chi phí theo ba kịch bản.
- Viết báo cáo cả kết quả tốt lẫn kết quả thất bại.
Checklist trước khi gọi một mô hình là “AI Trading”
- Target có gắn với quyết định giao dịch cụ thể không?
- Feature có thực sự tồn tại tại thời điểm dự báo không?
- Mọi bước tiền xử lý có nằm trong fold train không?
- Test cuối có được giữ kín trong lúc phát triển không?
- Mô hình có thắng baseline đơn giản sau chi phí không?
- Kết quả có ổn định qua nhiều fold và regime không?
- Có giám sát dữ liệu, drift và training-serving skew không?
- Có quy tắc giảm rủi ro, rollback và dừng mô hình không?
Kết luận
Trong trading, lợi thế của machine learning hiếm khi đến từ việc chọn thuật toán “mạnh nhất”. Nó đến từ target hợp lý, timestamp chính xác, validation theo thời gian, chi phí thực tế và quy trình giám sát sau triển khai. Một mô hình đơn giản nhưng được kiểm định tốt thường là nền tảng đáng tin hơn một mô hình phức tạp mà nhà nghiên cứu không biết nó đang học điều gì.

