06/04/2026
78 lượt đọc
Trong thực tế, rất nhiều ý tưởng giao dịch nghe qua đều có vẻ hợp lý. Ví dụ như mua khi giá vượt MA dài hạn, mua khi cổ phiếu breakout kèm thanh khoản tăng, hoặc đứng ngoài khi thị trường chung nằm dưới đường trung bình dài hạn. Nếu chỉ nhìn chart bằng mắt, rất dễ cảm thấy những ý tưởng như vậy “có vẻ đúng”. Vấn đề là cảm giác đó không đủ để dùng tiền thật. Với QM Capital, giá trị đầu tiên và lớn nhất của vectorized backtesting không phải là để khoe một equity curve đẹp, mà là để biến một ý tưởng mơ hồ thành một bộ quy tắc kiểm tra được.
Điều này đặc biệt hữu ích ở thị trường Việt Nam, nơi nhà đầu tư cá nhân rất hay bị kéo bởi câu chuyện. Một mã đang được bàn tán nhiều trong nhóm ngành chứng khoán, đầu tư công hay bán lẻ thường dễ tạo cảm giác “chắc là có sóng”. Nhưng khi chuyển ý tưởng đó thành quy tắc và áp lên dữ liệu lịch sử, rất nhiều thứ bắt đầu lộ ra. Có ý tưởng nhìn trên chart vài đoạn thì ổn, nhưng chạy xuyên suốt nhiều năm lại gần như không tạo ra lợi thế gì rõ. Có ý tưởng chỉ hợp trong một giai đoạn thị trường tăng mạnh, còn bước sang giai đoạn đi ngang hoặc giảm thì hiệu quả xấu đi rất nhanh. Có ý tưởng tưởng là “trend-following”, nhưng thực chất chỉ đang bám theo vài pha đẹp và thua nhiều trong phần còn lại.
Đó là lý do QM Capital xem vectorized backtesting như một bộ lọc đầu tiên. Nó không chứng minh chiến lược sẽ thắng trong tương lai, nhưng nó giúp trả lời sớm ba câu hỏi cực kỳ quan trọng. Thứ nhất, ý tưởng này có giữ được logic khi áp lên cả chuỗi dữ liệu hay không. Thứ hai, profile của nó có khác đáng kể so với việc mua và nắm giữ hay không. Thứ ba, nó có đủ ổn để đáng nghiên cứu tiếp hay nên dừng ngay từ đây. Trong thực tế nghiên cứu chiến lược, biết bỏ sớm một ý tưởng yếu thường có giá trị gần bằng việc tìm được một ý tưởng tốt.
Ở thị trường Việt Nam, cách dùng đúng nhất là bắt đầu từ những mã hoặc nhóm mã mà mình thật sự có thể giao dịch. Nghĩa là không nên lấy những cổ phiếu thanh khoản quá thấp, mã đầu cơ quá nhiễu hoặc một rổ cổ phiếu mà ngoài đời rất khó triển khai. Nếu đang ở giai đoạn đầu, thực tế nhất là bắt đầu từ nhóm VN30 hoặc ít nhất là nhóm HOSE thanh khoản tốt. Làm như vậy không phải vì “mã to thì chắc tốt hơn”, mà vì mục tiêu của vectorized backtesting là kiểm tra ý tưởng theo cách có khả năng bước tiếp ra đời thật. Một chiến lược nhìn đẹp trên những mã khó giao dịch thường ít giá trị thực dụng hơn nhiều so với một chiến lược tạm ổn trên một universe đủ sạch và đủ thanh khoản.
Nếu nhìn theo góc thực hành, vectorized backtesting chỉ cần ba lớp rất cơ bản: dữ liệu giá, tín hiệu, và vị thế. Thứ mình cần đầu tiên là dữ liệu lịch sử tương đối sạch và dễ lấy. Với thị trường Việt Nam, vnstock là một lựa chọn rất tiện cho bước đầu vì nó giúp kéo dữ liệu giá lịch sử nhanh mà không phải tự đi gom từ nhiều nguồn. Ở mức cơ bản, chỉ cần lấy OHLCV của một mã, rồi tính lợi suất ngày là đã đủ để bắt đầu nghiên cứu.
Một khung thực tế rất đơn giản có thể như sau:
Đến đây, điều quan trọng không phải là viết mô hình phức tạp, mà là đặt một quy tắc giao dịch đủ rõ để kiểm tra. Ví dụ, một chiến lược rất cơ bản là khi MA ngắn nằm trên MA dài thì giữ vị thế, còn ngược lại thì đứng ngoài. Mục đích ở đây không phải chứng minh MA là tốt nhất. Mục đích là dùng một ý tưởng đủ rõ để xem backtesting thật sự giúp mình nhìn ra điều gì.
Dòng shift(1) là một chi tiết rất nhỏ nhưng mang giá trị thực tế rất lớn. Nó nhắc mình rằng quyết định giao dịch không thể dùng chính thông tin của phiên đó để tự thưởng cho mình mức giá đẹp trong cùng phiên. Khi đã quen với logic này, người làm backtest sẽ bớt mắc lỗi quá phổ biến là vô tình dùng dữ liệu tương lai. Với QM Capital, một backtest rất đơn giản nhưng sạch sẽ còn có ích hơn nhiều một backtest nhìn chuyên nghiệp nhưng sai logic thời gian.
Khi đã có vị thế, lợi suất chiến lược ở mỗi ngày chỉ là lợi suất thị trường nhân với vị thế của mình trong ngày đó. Đây là chỗ mà vectorized backtesting trở nên rất hữu ích về mặt thực hành: từ một ý tưởng khá trừu tượng, mọi thứ được đưa về một logic rất rõ.
Chỉ với vài dòng như vậy, bạn đã có thể nhìn một ý tưởng giao dịch bằng con mắt rất khác. Không còn là “chart này trông ổn”, mà là “nếu áp quy tắc này đều đặn, đường vốn của nó trông ra sao”. Và đây chính là giá trị thực tiễn của vectorized backtesting: nó buộc mình thôi nhìn chiến lược như một câu chuyện và bắt đầu nhìn nó như một chuỗi quyết định lặp lại.
Nếu làm đúng, sau một buổi tối hoặc một cuối tuần, người đọc có thể tự kiểm tra được những ý tưởng rất cơ bản như:
giữ vị thế khi xu hướng trung hạn còn tốt
thoát khi giá yếu đi rõ rệt
chỉ tham gia khi thanh khoản cao hơn trung bình
hoặc kết hợp tín hiệu giá với một bộ lọc đơn giản từ thị trường chung
Điều quan trọng là đừng tối ưu quá sớm. Giai đoạn này không nên lao vào hỏi MA 18/47 có tốt hơn MA 20/50 không. Cái cần kiểm tra trước là logic tổng thể của ý tưởng có tạo ra một profile đủ tử tế để nghiên cứu tiếp hay không. Đây là chỗ rất nhiều người mới đi sai: họ bắt đầu tối ưu chi tiết khi còn chưa biết ý tưởng nền có thật sự đáng giữ lại không.
QM Capital nghĩ rằng một bài viết về vectorized backtesting chỉ thật sự có giá trị nếu nói rõ luôn phần giới hạn của nó. Nhiều người mới dễ mắc hai thái cực. Một là xem nhẹ backtesting, nghĩ rằng chỉ cần nhìn chart bằng mắt là đủ. Hai là tin backtest quá mức, thấy chiến lược có đường vốn đẹp là nghĩ đã gần như sẵn sàng giao dịch thật. Cả hai cách nhìn này đều không đúng.
Vectorized backtesting rất mạnh ở vai trò kiểm tra ý tưởng ban đầu. Nó nhanh, gọn, dễ lặp, dễ so sánh nhiều giả thuyết khác nhau. Với thị trường Việt Nam, điều đó rất hữu ích vì bạn có thể lấy dữ liệu từ vnstock, viết vài quy tắc đơn giản, rồi trả lời nhanh xem một ý tưởng có còn đáng để nghĩ tiếp hay không. Nếu không có bước này, quá trình nghiên cứu chiến lược rất dễ trôi vào cảm tính. Người nghiên cứu sẽ liên tục bị cuốn vào những chart “trông như hợp lý” mà không có một lớp kiểm tra đủ khách quan.
Nhưng vectorized backtesting không phải nơi để kết luận cuối cùng. Nó chưa xử lý được đầy đủ những chuyện rất thật của thị trường Việt Nam như chi phí giao dịch, thuế bán, T+2, biên độ giá, sự khác biệt lớn về thanh khoản giữa các nhóm cổ phiếu, hay việc nhiều lệnh ngoài đời không thể khớp đẹp như trên dữ liệu cuối ngày. Vì vậy, nếu một chiến lược trông ổn qua vòng vectorized backtest, cách dùng đúng không phải là đem đi giao dịch ngay, mà là chuyển nó sang vòng kiểm tra thực tế hơn. Có thể là thêm chi phí cơ bản, thêm turnover, thêm ràng buộc universe, hoặc nếu nghiêm túc hơn thì đi sang event-driven backtesting.
Nói cách khác, giá trị thực tiễn của vectorized backtesting không nằm ở việc nó trả lời hết mọi câu hỏi. Giá trị của nó nằm ở chỗ nó giúp người nghiên cứu đặt đúng câu hỏi ngay từ đầu. Ý tưởng này có đáng để mất thêm thời gian không. Profile lợi nhuận có khác gì so với việc chỉ mua và giữ không. Chiến lược này có vẻ sống nhờ một vài giai đoạn đẹp hay có logic đủ đều. Nếu không vượt qua được vòng kiểm tra đầu tiên này, thì không nên mất thêm nhiều công sức cho các bước phức tạp hơn.
Nếu phải rút gọn toàn bộ topic này thành một ý ngắn, QM Capital sẽ nói thế này: vectorized backtesting rất có giá trị thực tế không phải vì nó dự báo được tương lai, mà vì nó giúp mình loại bỏ sớm những ý tưởng không đủ tốt trước khi đem chúng ra thử với tiền thật. Với người mới làm quant trên thị trường Việt Nam, chỉ riêng việc có được một bộ lọc như vậy đã là một bước tiến rất lớn rồi.
0 / 5
Khi mới học quant trading, nhiều người thường tập trung gần như toàn bộ vào phần mô hình. Họ nghĩ rằng nếu dự báo đúng hơn một chút, hoặc nếu tìm được một tín hiệu chính xác hơn phần còn lại của thị trường, thì kết quả giao dịch chắc chắn sẽ tốt. Cách nghĩ này không sai hoàn toàn, nhưng mới đúng một nửa. Trong giao dịch thực tế, dự báo chỉ là điểm bắt đầu. Sau đó còn một bước quan trọng hơn nhiều: biến tín hiệu đó thành vị thế thật, giao dịch thật, lợi nhuận thật.
Nếu phải chọn một rủi ro làm hỏng nhiều chiến lược định lượng nhất, thì đó thường không phải là thiếu mô hình hiện đại, mà là overfitting. Nói đơn giản, overfitting xảy ra khi mô hình học quá kỹ dữ liệu quá khứ đến mức nó không chỉ học tín hiệu thật, mà còn học luôn cả nhiễu. Khi nhìn lại lịch sử, mọi thứ trông rất đẹp: độ chính xác cao, equity curve mượt, drawdown dễ chịu, Sharpe ratio hấp dẫn. Nhưng đến khi đem sang giai đoạn mới, hoặc live trading, mô hình bắt đầu hỏng rất nhanh.
Có một hiểu lầm rất phổ biến khi mới bước vào quant trading: cứ nghe đến “quant” là nghĩ ngay đến deep learning, transformers, reinforcement learning, foundation models, hay ít nhất cũng phải có một thứ gì đó đủ phức tạp để nghe giống phòng lab hơn là bàn giao dịch. Nhưng nếu nhìn vào cách nhiều tổ chức thật đang vận hành, bức tranh lại bớt hào nhoáng hơn nhiều.
Nếu nhìn theo kiểu tin tức, ngày đáo hạn phái sinh thường bị gắn với những cụm như rung lắc, kéo trụ, ép ATC. Nhưng với quant trading, cách hỏi như vậy vẫn còn cảm tính. Câu hỏi đúng hơn là: ngày đáo hạn có tạo ra một mẫu biến động lặp lại, đủ ổn định, đủ rõ, để mình đưa vào bộ lọc của hệ thống hay không. Đây là một câu hỏi rất hợp với thị trường Việt Nam, vì hợp đồng tương lai VN30 có lịch đáo hạn cố định vào thứ Năm lần thứ ba của tháng đáo hạn, nên bản thân nó đã là một event định kỳ, rất phù hợp để làm event study. Ngoài ra, hợp đồng VN30 hiện có hệ số nhân 100.000 đồng mỗi điểm chỉ số, nên đây không phải một sản phẩm quá nhỏ để bỏ qua khi nhìn hành vi của nhóm cổ phiếu trụ.
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 đó.
Đượ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!