23/02/2026
675 lượt đọc
Trong quant trading, đọc dữ liệu bằng bảng số thường làm người ta… tự lừa mình. Một backtest nhìn “đẹp” có thể chỉ là do bạn chưa nhìn thấy những thứ quan trọng: vùng sideway kéo dài, cú gap, giai đoạn thanh khoản yếu, hoặc drawdown âm ỉ nhưng rất dai. Chart là cách nhanh nhất để bóc lớp “ảo giác” đó.
Chương về matplotlib trong sách có một ý rất thực tế: trước khi nghĩ đến chiến lược, hãy vẽ chart. Vì chiến lược nào cũng cần “đúng môi trường”. Trend-following không hợp tài sản đi ngang; mean-reversion dễ chết trong giai đoạn breakout; intraday thì cực nhạy với biến động/khối lượng. Và chart là cách bạn nhìn thấy “regime” của thị trường trong vài giây.
Nhiều người mới làm quant hay mắc lỗi: chỉ vẽ price hoặc chỉ vẽ equity curve. Nhưng một hệ thống giao dịch phải được nhìn tối thiểu qua 3–4 góc: giá, tín hiệu, equity, drawdown, thậm chí thêm rolling volatility. Điểm hay của matplotlib là bạn tạo một “canvas” (figure) rồi chia nó thành nhiều cửa sổ (subplot) để nhìn được toàn cảnh cùng lúc.
Ví dụ workflow thực tế:
Nếu chỉ nhìn equity curve, bạn có thể bị “đánh lừa” bởi vài trade thắng lớn. Nhưng khi thêm drawdown, bạn sẽ thấy ngay chiến lược có đoạn “hấp hối” dài hay không. Đây là chỗ mà chương sách nói rất đúng: không có gì thay thế được một chart được thiết kế tử tế.
Dưới đây là khung code tối giản nhưng đúng tinh thần “xây hệ thống” (không chỉ vẽ cho vui). Bạn có thể thay dữ liệu giả bằng dữ liệu thật của VN30/VNINDEX/1 cổ phiếu bất kỳ.
Điểm quan trọng không phải “MA crossover” (cái này chỉ là ví dụ), mà là cách bạn đóng gói chiến lược thành một hệ thống có thể nhìn và kiểm tra. Khi bạn nhìn 3 biểu đồ cùng lúc, bạn trả lời được ngay những câu cực thực tế:
Đó mới là “giá trị” của matplotlib trong quant.
Trong thực tế, equity curve nên vẽ log nếu bạn nhìn dài hạn hoặc muốn so tăng trưởng theo % thay vì theo điểm. Vì tăng từ 1 lên 2 là +100%, tăng từ 100 lên 101 chỉ +1%. Nếu bạn không dùng log trong một số trường hợp, mắt bạn sẽ bị đánh lừa.
Còn annotate thì cực hợp để “đóng đinh” các điểm quan trọng: cú rơi mạnh nhất, ngày equity lập đỉnh, hoặc điểm tín hiệu đảo chiều. Ví dụ bạn đánh dấu đáy drawdown:
Một chiến lược có thể có Sharpe đẹp, winrate cao, nhưng equity đi kiểu “leo dốc rồi rơi thẳng đứng” thì đó là chiến lược có tail risk. Ngược lại, một chiến lược return không quá ấn tượng nhưng drawdown kiểm soát tốt lại là thứ sống lâu. Matplotlib không tạo ra edge, nhưng nó giúp bạn nhìn thấy sự thật của hệ thống: nó kiếm tiền như thế nào, đau ở đâu, và có chịu nổi thị trường xấu không.
Nếu muốn làm bài post này “đúng vibe facebook” hơn nữa (ngắn hơn nhưng vẫn chất), nói mình sẽ rút lại thành 8–10 câu, giữ nguyên insight và ví dụ code quan trọng nhất.
0 / 5
Khi thực hiện bất kỳ chiến lược giao dịch nào trên thị trường tài chính, một yếu tố không thể thiếu chính là khả năng giải thích (interpretability) của mô hình giao dịch. Điều này đặc biệt quan trọng trong bối cảnh môi trường biến động và khi quản lý rủi ro là yếu tố sống còn đối với các quỹ đầu tư và các trader chuyên nghiệp. Mỗi chiến lược giao dịch không chỉ cần phải hiệu quả mà còn phải dễ hiểu, có thể giải thích một cách rõ ràng tại sao tín hiệu mua/bán lại được đưa ra trong một tình huống cụ thể.
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.
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ụ.
Đượ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!