Bạn có một chiến lược đầu tư nghe có vẻ hợp lý: "Mua cổ phiếu ngân hàng khi P/B dưới 1.0 và RSI dưới 35, giữ đến khi P/B vượt 1.5."
Câu hỏi thực tế là: Chiến lược này có hoạt động trên dữ liệu lịch sử HOSE không? Và nếu có, nó hoạt động tốt đến đâu trong các giai đoạn thị trường khác nhau?
Tại sao backtesting trên dữ liệu VN quan trọng?
HOSE có đặc thù riêng mà dữ liệu quốc tế không phản ánh được
±7%
Biên độ giao dịch — tạo ngưỡng tâm lý đặc thù
400+
Cổ phiếu trên HOSE — cần lọc bằng dữ liệu thực
2022
Siết tín dụng — giai đoạn phải có trong backtest VN
Thị trường HOSE có những đặc thù mà dữ liệu quốc tế không phản ánh được:
- Biên độ giao dịch ±7% — tạo ra ngưỡng kháng cự tâm lý đặc thù
- Thanh khoản phân tán — nhiều cổ phiếu mid-cap có thanh khoản thấp, slippage cao
- Cơ sở nhà đầu tư cá nhân lớn — tạo ra các pattern tâm lý đám đông rõ nét hơn
- Ảnh hưởng từ Trung Quốc — tương quan với thị trường TQ cao hơn phương Tây
Chiến lược S&P 500 có thể thất bại hoàn toàn trên HOSE
Mỗi thị trường có chu kỳ và đặc thù riêng. Backtesting trên đúng dữ liệu VN là bước không thể bỏ qua.
Bước 1: Xác định chiến lược rõ ràng
Trước khi chạy bất kỳ backtest nào, chiến lược phải được định nghĩa hoàn toàn cụ thể — không mơ hồ.
| Không dùng được | Dùng được | |
|---|---|---|
| Điều kiện mua | "Mua cổ phiếu tốt khi thị trường giảm" | P/B < 1.0 VÀ ROE > 12% VÀ Volume > 500K/ngày |
| Điều kiện bán | "Bán khi cổ phiếu đủ tốt" | Bán khi P/B > 1.6 HOẶC sau 6 tháng |
| Quản lý vốn | "Mỗi lệnh một ít" | 10% tổng danh mục, tối đa 5 vị thế |
Bước 2: Chọn dữ liệu và giai đoạn
Giai đoạn lý tưởng cho backtest HOSE
Tăng trưởng mạnh 2016–2018
85%
Điều chỉnh Q4/2018
40%
COVID crash 2020
30%
Tăng mạnh 2020–2021
90%
Siết tín dụng 2022
25%
Phục hồi 2023–2024
70%
Chiến lược tốt phải hoạt động được qua cả giai đoạn tăng lẫn giảm mạnh.
Dữ liệu cần có:
| Loại dữ liệu | Dùng cho |
|---|---|
| Giá OHLCV hàng ngày | Điểm mua/bán, tính lợi nhuận |
| Fundamental (P/E, P/B, ROE...) | Điều kiện lọc cổ phiếu |
| Lịch sử cổ tức và tách cổ phiếu | Điều chỉnh giá chính xác |
| Danh sách niêm yết/hủy niêm yết theo thời gian | Tránh survivorship bias — thường bị bỏ qua nhất |
Bước 3: Xây dựng logic backtest
Lọc danh sách cổ phiếu đủ điều kiện mua
Với mỗi ngày giao dịch: áp dụng tất cả điều kiện lên dữ liệu có sẵn vào ngày đó.
Kiểm tra danh mục hiện tại
Xem có vị thế nào thỏa điều kiện bán không — xử lý bán trước khi mua mới.
Thực thi lệnh mua theo giá mở cửa hôm sau
Không dùng giá đóng cửa — phản ánh thực tế: tín hiệu hôm nay, lệnh ngày mai.
Trừ phí giao dịch
Tại VN thường 0.1–0.3%/chiều + thuế 0.1% khi bán. 50 giao dịch/năm = ~20% chi phí.
Ghi lại giá trị danh mục cuối ngày
Tích lũy equity curve để tính tất cả các chỉ số hiệu suất sau này.
Bước 4: Đọc kết quả backtest
| Nhóm | Chỉ số | Ngưỡng tốt trên HOSE |
|---|---|---|
| Lợi nhuận | CAGR | > VN-Index + 8% |
| Lợi nhuận | Total Return | > Benchmark cùng kỳ |
| Rủi ro | Max Drawdown | < 20% |
| Rủi ro | Longest Drawdown Period | < 12 tháng |
| Hiệu quả | Sharpe Ratio | > 1.0 |
| Hiệu quả | Win Rate | > 55% |
| Hiệu quả | Profit Factor | > 1.8 |
Bước 5: Kiểm tra độ bền vững
70/30
Out-of-sample split
70% để tối ưu, 30% để kiểm tra
2+2
Walk-forward
Tối ưu 2 năm, test 6 tháng, lặp lại
3 kỳ
Stress test
2020 COVID, 2022, 2018 Q4
Bẫy phổ biến cần tránh
4 bẫy lớn nhất trong backtesting
Overfitting — Nếu bạn thử đủ tham số, lúc nào cũng tìm được bộ cho kết quả đẹp trên dữ liệu cũ. Chiến lược càng ít tham số, càng ít nghi ngờ overfitting.
Survivorship bias — Chỉ test trên cổ phiếu còn tồn tại đến hôm nay sẽ loại bỏ tất cả cổ phiếu đã phá sản hoặc hủy niêm yết — làm kết quả đẹp hơn thực tế rất nhiều.
Bỏ qua phí và slippage — Với chiến lược thường xuyên, 50 giao dịch/năm × 0.4% = 20% chi phí — xóa sổ nhiều chiến lược tưởng chừng tốt.
Data snooping bias — Bạn vô tình "biết" kết quả của một số giai đoạn và thiết kế chiến lược dựa trên kiến thức đó.
Kết quả tốt trông như thế nào trên HOSE?
| Chỉ số | Ngưỡng chấp nhận | Ngưỡng tốt |
|---|---|---|
| CAGR | > VN-Index + 3% | > VN-Index + 8% |
| Max Drawdown | < 35% | < 20% |
| Sharpe Ratio | > 0.6 | > 1.0 |
| Win Rate | > 45% | > 55% |
| Profit Factor | > 1.3 | > 1.8 |
Backtesting trên HOSE đòi hỏi dữ liệu tốt, tư duy cẩn thận và hiểu biết về đặc thù thị trường VN. Không có chiến lược nào hoàn hảo — nhưng chiến lược được kiểm chứng kỹ trên dữ liệu thực sẽ luôn tốt hơn chiến lược chỉ dựa trên cảm tính.