12/11/2024
3,177 lượt đọc
Trong quá trình thực hiện backtest một chiến lược giao dịch đơn lẻ hoặc toàn bộ danh mục đầu tư, nhiều nhà giao dịch mắc phải những sai lầm phổ biến. Những lỗi này có thể dẫn đến kết quả backtest không chính xác và khiến chiến lược thất bại khi áp dụng vào thị trường thực tế. Dưới đây là 6 lỗi phổ biến nhất và các cách để tránh chúng, có bổ sung ví dụ và bảng minh họa.

Một trong những nguyên tắc quan trọng trong backtest là: "Backtest không phải là công cụ nghiên cứu, mà là công cụ xác thực chiến lược". Marco Lopez de Prado đã nhấn mạnh điều này khi ông cho rằng việc sử dụng cùng một tập dữ liệu để xây dựng và kiểm tra chiến lược sẽ dễ dẫn đến thất bại trong giao dịch thực tế. Để backtest hiệu quả, bạn nên chia dữ liệu thành hai phần: phần huấn luyện và phần kiểm tra.
Ví dụ minh họa:
Giả sử bạn có dữ liệu giá cổ phiếu từ năm 2010 đến năm 2020. Nếu bạn sử dụng toàn bộ dữ liệu này để phát triển và kiểm tra chiến lược, kết quả sẽ có độ tin cậy thấp. Thay vào đó, hãy chia thành hai giai đoạn:
| Thời gian | Mục đích |
| 2010 - 2018 | Huấn luyện mô hình |
| 2018 - 2020 | Kiểm tra chiến lược |
Điều này đảm bảo rằng phần dữ liệu kiểm tra là dữ liệu chưa từng được dùng trong quá trình huấn luyện, giúp bạn có kết quả sát thực tế hơn.
Biến thiên là vấn đề thường gặp khi chỉ sử dụng một điểm cắt duy nhất để chia tập dữ liệu thành phần huấn luyện và kiểm tra. Ví dụ, nếu chọn điểm cắt 80-20 (80% dữ liệu để huấn luyện, 20% để kiểm tra), hiệu quả của chiến lược sẽ phụ thuộc vào điểm chia dữ liệu này. Sử dụng các phương pháp như Walk-Forward Optimization hoặc Combinatorial Purged Cross-Validation có thể giúp giảm thiểu biến thiên và tăng độ tin cậy của chiến lược.
Ví dụ minh họa:
Giả sử chúng ta chia dữ liệu thành các khoảng khác nhau để backtest cùng một chiến lược. Kết quả có thể khác biệt đáng kể:
| Lần chia dữ liệu | Thời gian huấn luyện | Thời gian kiểm tra | Kết quả (lợi nhuận %) |
| Lần chia thứ 1 | 2010 - 2017 | 2017 - 2020 | 12% |
| Lần chia thứ 2 | 2010 - 2016 | 2016 - 2020 | 18% |
| Lần chia thứ 3 | 2010 - 2015 | 2015 - 2020 | 8% |
Như vậy, kết quả backtest có thể thay đổi mạnh mẽ chỉ vì điểm cắt dữ liệu khác nhau. Đây là lý do nên dùng các phương pháp tối ưu hóa để đảm bảo độ tin cậy.
Chi phí giao dịch và độ trượt giá có ảnh hưởng lớn đến kết quả backtest. Nếu không tính đến chi phí này, bạn sẽ có một kết quả quá lạc quan. Chi phí mỗi giao dịch có thể nhỏ (0.01%), nhưng khi cộng dồn cho hàng trăm giao dịch, tổng chi phí có thể là một con số không nhỏ.
Ví dụ tính chi phí giao dịch:
Giả sử trong một chiến lược kéo dài 5 năm, bạn thực hiện 300 giao dịch, với mỗi giao dịch có chi phí là 0.02% giá trị lệnh. Tổng chi phí sẽ là:
| Số lượng giao dịch | Chi phí mỗi giao dịch (%) | Tổng chi phí (%) |
| 300 | 0.02 | 6% |
Nếu không tính chi phí này, lợi nhuận của bạn sẽ bị phóng đại, dẫn đến kỳ vọng sai lệch.
Độ trượt giá (slippage):
Độ trượt giá là sự khác biệt giữa giá dự kiến và giá thực tế khi thực hiện lệnh. Với các chiến lược giao dịch tần suất cao, trượt giá có thể gây thiệt hại đáng kể. Bạn có thể ước tính trượt giá bằng cách lấy giá bất lợi nhất trong khoảng thời gian ngắn sau khi tín hiệu giao dịch xuất hiện.
May mắn ngẫu nhiên là rủi ro xảy ra khi chiến lược đạt kết quả tốt trong quá khứ chỉ do may mắn, chứ không phải do tính hiệu quả của nó. Nếu không có kiểm tra độ tin cậy, các chiến lược may mắn này có thể thất bại khi áp dụng vào giao dịch thực tế. Phương pháp như Monte-Carlo Testing hoặc Walk-Forward Optimization sẽ giúp kiểm tra chiến lược trên nhiều mẫu ngẫu nhiên, giúp đảm bảo rằng chiến lược của bạn không phụ thuộc vào may mắn.
Ví dụ:
Giả sử bạn có một chiến lược cho lợi nhuận 10% trên một dữ liệu backtest 1 năm, nhưng khi áp dụng trên dữ liệu 5 năm thì lợi nhuận giảm xuống còn 2%. Điều này cho thấy chiến lược ban đầu chỉ thành công ngắn hạn và thiếu tính ổn định dài hạn.
Thử nghiệm nhiều chiến lược trên cùng một tập dữ liệu có thể làm giảm độ tin cậy của kết quả. Hiệu suất của một chiến lược có thể bị ảnh hưởng do quá nhiều chiến lược khác được thử nghiệm trên cùng một dữ liệu, tạo ra hiệu ứng multiple testing (kiểm tra nhiều lần).
Công thức chiết khấu:
Một cách đơn giản để giảm thiểu vấn đề này là sử dụng hệ số chiết khấu dựa trên số lượng chiến lược đã thử nghiệm. Hệ số chiết khấu có thể tính bằng công thức sau:
Tỷ lệ chiết khẩu =
Với N là số lượng chiến lược đã thử nghiệm. Ví dụ, nếu bạn thử nghiệm 20 chiến lược, hệ số chiết khấu là 64%, nghĩa là bạn nên điều chỉnh các chỉ số đánh giá (lợi nhuận, tỷ lệ Sharpe) dựa trên hệ số này.
| Chỉ số | Trước khi chiết khấu | Sau khi chiết khấu (64%) |
| Tỷ lệ Sharpe | 2 | 0.72 |
| Lợi nhuận | 100% | 36% |
| Mức sụt giảm | 10% | 16% |
Rủi ro tỷ giá xảy ra khi bạn giao dịch tài sản bằng ngoại tệ và phải chịu sự biến động của tỷ giá hối đoái. Khi mở vị thế, tiền của bạn sẽ được quy đổi sang loại tiền tệ của tài sản đó và khi đóng vị thế, tiền sẽ được quy đổi ngược lại. Nếu tỷ giá thay đổi bất lợi, lợi nhuận thực tế có thể thấp hơn nhiều so với dự đoán ban đầu.
Ví dụ:
Giả sử bạn sống ở Việt Nam và giao dịch cổ phiếu Mỹ bằng USD. Khi mở một vị thế mua cổ phiếu, bạn chuyển đổi từ VND sang USD. Nếu tỷ giá USD/VND tăng khi bạn đóng vị thế, lợi nhuận thực tế của bạn sẽ giảm do tác động của tỷ giá.
Kết luận
Trên đây là 6 lỗi phổ biến nhất trong quá trình backtest danh mục đầu tư. Để có một chiến lược giao dịch đáng tin cậy, cần tránh các lỗi này và sử dụng các phương pháp kiểm tra độ tin cậy như Walk-Forward Optimization và Monte-Carlo Testing. Các lỗi này đặc biệt quan trọng khi bạn muốn áp dụng chiến lược trong thị trường Việt Nam, nơi tỷ giá và chi phí giao dịch có thể gây ảnh hưởng lớn đến hiệu quả thực tế.
Việc nhận diện và tránh các lỗi này sẽ giúp bạn có một chiến lược giao dịch thực tế hơn, mang lại lợi nhuận bền vững khi áp dụng vào thị trường thực tế.
0 / 5
Một trong những lỗi phổ biến nhất của nhà đầu tư cá nhân ở Việt Nam là quyết định mua trước, rồi mới mở chart ra sau để tìm lý do xác nhận. Có thể là một mã được nhắc nhiều trong room chat, một câu chuyện đầu tư công đang nóng, một cổ phiếu bất động sản “đã giảm quá sâu”, hay một mã ngân hàng “nghe nói sắp vào sóng”. Cách ra quyết định như vậy nghe quen vì nó rất đời thường, nhưng chính nó làm nhiều người kẹt hàng hàng tháng trời. Mua xong thì chart không chạy. Hoặc tệ hơn, chart vẫn tiếp tục bleed xuống nhưng người cầm hàng cứ bấu víu vào câu chuyện vì không biết nhìn chart thế nào để thừa nhận rằng mình đang đứng sai phía.
Điều làm nhiều tài khoản lỗ nặng không phải là vì trader luôn nhìn sai thị trường. Nhiều khi họ nhìn đúng xu hướng, nhưng vẫn thua vì vào sai kích thước vị thế. Đây là lỗi rất phổ biến. Khi thị trường êm, họ đánh lớn vì thấy giá đi đẹp. Đến lúc thị trường rung mạnh hơn, họ vẫn giữ đúng size cũ. Kết quả là một giai đoạn biến động lớn có thể xóa sạch thành quả của nhiều tuần trước đó.
Sai lầm rất phổ biến của người mới là thấy chỉ số tăng mạnh một phiên rồi kết luận thị trường đã tạo đáy. Thực tế, một nhịp hồi kỹ thuật thường có 3 đặc điểm: giá bật lên sau chuỗi giảm sâu, tâm lý bớt hoảng loạn, nhưng khối lượng chưa thật sự cải thiện và chỉ số vẫn chưa vượt lại các vùng kỹ thuật quan trọng. Phiên ngày 17/03/2026 là ví dụ khá rõ. VN-Index tăng 17,08 điểm, đóng cửa ở 1.710,29 điểm, số mã tăng là 179 so với 147 mã giảm, nhưng giá trị khớp lệnh HoSE chỉ khoảng 20,9 nghìn tỷ đồng, vẫn dưới trung bình 20 phiên. Cùng lúc đó, phân tích kỹ thuật của AseanSC cho thấy VN-Index khi ấy vẫn đóng cửa dưới MA10, MA20 và MA50, tức là xu hướng ngắn hạn chưa thực sự đảo chiều, nên nhịp tăng này nghiêng nhiều hơn về một nhịp hồi kỹ thuật hơn là tín hiệu xác nhận tiền lớn quay lại.
Điều đầu tiên người mới cần nhớ là thị trường gần như luôn đi trước nền kinh tế thật một nhịp. Khi chu kỳ vĩ mô bắt đầu đổi pha, tiền không chờ đến lúc GDP, lợi nhuận doanh nghiệp hay tín dụng tăng rõ ràng rồi mới vào. Nó thường phản ứng ngay khi có dấu hiệu áp lực lãi suất bớt căng, thanh khoản dễ thở hơn, hoặc rủi ro hệ thống giảm xuống. Việt Nam năm 2023 là ví dụ rất dễ kiểm chứng. Trong năm đó, Ngân hàng Nhà nước giảm lãi suất điều hành 4 lần; Reuters ghi rõ lãi suất tái cấp vốn và tái chiết khấu đều giảm tổng cộng 150 điểm cơ bản. Cùng giai đoạn đó, VNDIRECT ghi nhận đến ngày 25/5/2023 VN-Index đã lên 1.064,6 điểm, tăng 5,7% từ đầu năm, và thanh khoản bình quân 3 sàn trong tháng 5 lên 13.905 tỷ đồng mỗi phiên, tăng 4,7% so với tháng trước. Nghĩa là tiền đã bắt đầu quay lại thị trường ngay khi điều kiện tài chính bớt xấu, dù nền kinh tế thực lúc đó vẫn còn khó.
Khi mới học quant trading, rất nhiều người có chung một cảm giác phấn khích. Chỉ cần tải dữ liệu giá về, viết vài dòng Python, gắn thêm một vài điều kiện như MA cắt nhau, RSI quá bán hay breakout đỉnh cũ, rồi chạy backtest là có ngay một đường vốn tăng rất đẹp. Nhìn vào kết quả đó, ai cũng dễ nghĩ rằng mình vừa tìm ra một chiến lược có thể kiếm tiền thật. Nhưng vấn đề nằm ở chỗ backtest chỉ cho ta biết chiến lược sẽ trông như thế nào nếu quá khứ diễn ra đúng như dữ liệu đang có trong máy. Nó không hề đảm bảo rằng khi bước ra thị trường thật, nơi có độ trễ, có chi phí, có tâm lý và có những biến động bất ngờ, chiến lược đó vẫn giữ được hiệu quả như vậy.
Trong quant trading, rất nhiều người mới thường nhìn thị trường như một bài toán thuần số liệu. Họ tập trung vào giá, khối lượng, biến động, chỉ báo kỹ thuật, đôi khi thêm vài biến cơ bản như P/E, tăng trưởng lợi nhuận hay dòng tiền. Cách tiếp cận đó không sai, nhưng nó vẫn thiếu một lớp rất quan trọng, đó là lớp thông tin đang làm thay đổi kỳ vọng của thị trường theo thời gian thực. Giá là thứ ta nhìn thấy trên biểu đồ, nhưng trước khi giá dịch chuyển luôn tồn tại một quá trình hình thành nhận thức. Nhà đầu tư đọc tin, diễn giải tin, so sánh tin đó với kỳ vọng đã có sẵn trong đầu, rồi mới ra quyết định mua hay bán. News sentiment nằm đúng ở khoảng giữa đó. Nó không chỉ nói rằng có tin tức xuất hiện, mà còn giúp đo xem thị trường nhiều khả năng sẽ cảm nhận tin đó theo hướng nào, mạnh hay yếu, bất ngờ hay đã được phản ánh từ trước.
Được nghiên cứu và phát triển bởi các chuyên gia từ QMTrade và cộng đồng nhà đầu tư chuyên nghiệp.
Truy cập ngay!