Bên trong quy trình xây dựng một chiến lược Quant Trading: Từ dữ liệu đến giao dịch thực tế
Bên trong quy trình xây dựng một chiến lược Quant Trading: Từ dữ liệu đến giao dịch thực tế
Quant Trading thường được hiểu đơn giản là dùng thuật toán, dữ liệu hoặc AI để tìm điểm mua bán. Nhưng thực tế, một chiến lược định lượng không chỉ là một công thức kiểu “mua khi RSI thấp” hay “bán khi giá thủng MA20”. Một strategy quant hoàn chỉnh là cả một hệ thống gồm nhiều bước liên kết với nhau: từ ý tưởng, dữ liệu, tín hiệu, phân bổ vốn, quản trị rủi ro cho đến thực thi lệnh ngoài thị trường thật.
Một pipeline cơ bản thường đi theo logic:
Idea → Data → Feature Engineering → Alpha Signal → Portfolio Construction → Risk Management → Backtest → Execution → Monitoring
Điểm quan trọng là mỗi bước đều có thể làm strategy thành công hoặc thất bại. Một tín hiệu tốt nhưng dữ liệu sai thì backtest vô nghĩa. Một backtest đẹp nhưng không tính phí giao dịch thì lợi nhuận thực tế có thể biến mất. Một strategy có alpha tốt nhưng phân bổ vốn sai thì vẫn có thể drawdown rất sâu. Vì vậy, edge trong quant trading không chỉ nằm ở mô hình, mà nằm ở toàn bộ quy trình biến ý tưởng thành hệ thống giao dịch thật.

1. Data: Nền móng quyết định chất lượng strategy
Mọi chiến lược quant đều bắt đầu từ dữ liệu. Trong discretionary trading, một trader có thể dựa vào kinh nghiệm, cảm nhận thị trường hoặc đọc tin tức để ra quyết định. Nhưng với quant trading, hệ thống ra quyết định gần như hoàn toàn dựa trên dữ liệu. Nếu dữ liệu sai, toàn bộ kết quả phía sau sẽ sai.
Dữ liệu trong quant trading có thể rất đa dạng. Đơn giản nhất là dữ liệu giá và khối lượng giao dịch: giá mở cửa, cao nhất, thấp nhất, đóng cửa, volume, giá trị giao dịch. Phức tạp hơn có thể là order book, dữ liệu tài chính doanh nghiệp, macro như lãi suất, CPI, tỷ giá, PMI, hoặc alternative data như sentiment từ tin tức, mạng xã hội, dữ liệu vệ tinh, dữ liệu logistics.
Tuy nhiên, vấn đề lớn nhất không phải là có nhiều dữ liệu, mà là dữ liệu có sạch và dùng được hay không.
Ví dụ, một cổ phiếu từng chia tách tỷ lệ 1:2. Nếu dữ liệu giá không được điều chỉnh, biểu đồ sẽ xuất hiện một cú giảm 50% giả tạo. Strategy có thể hiểu nhầm đó là một cú sập giá lớn, trong khi thực tế chỉ là điều chỉnh kỹ thuật do chia tách cổ phiếu. Tương tự, nếu cổ phiếu trả cổ tức tiền mặt lớn nhưng dữ liệu giá không được điều chỉnh, backtest có thể đánh giá sai lợi nhuận thật của nhà đầu tư.
Một lỗi khác rất phổ biến là survivorship bias. Giả sử ta backtest một chiến lược momentum trên thị trường trong 10 năm, nhưng chỉ lấy những cổ phiếu hiện vẫn còn niêm yết, thanh khoản tốt và tồn tại đến hiện tại. Khi đó, các cổ phiếu từng bị hủy niêm yết, giảm sâu, mất thanh khoản hoặc phá sản đã bị loại khỏi dữ liệu. Kết quả là backtest thường đẹp hơn thực tế, vì dataset đã vô tình chỉ giữ lại “người sống sót”.
Ví dụ, một strategy khi backtest trên nhóm cổ phiếu hiện còn giao dịch tốt có thể cho lợi nhuận trung bình 24%/năm và max drawdown chỉ khoảng 18%. Nhưng nếu đưa thêm những cổ phiếu từng bị hủy niêm yết, từng mất thanh khoản hoặc giảm rất sâu trong quá khứ, lợi nhuận có thể giảm xuống còn 12–15%/năm, trong khi drawdown tăng lên 30–35%. Đây là khác biệt rất lớn giữa một backtest đẹp và một backtest gần với thực tế.
Với thị trường Việt Nam, bước xử lý dữ liệu càng quan trọng. Cần chú ý đến cổ tức tiền mặt, cổ tức cổ phiếu, phát hành thêm, chia tách, điều chỉnh giá, biên độ trần sàn, ngày giao dịch không thanh khoản, giao dịch thỏa thuận và những mã có dữ liệu lịch sử quá ngắn. Nếu bỏ qua các yếu tố này, hệ thống có thể cho ra tín hiệu tưởng như chính xác nhưng thực chất đang dựa trên dữ liệu méo.
Vì vậy, trong quant trading, data không phải là phần kỹ thuật phụ. Data là móng nhà. Móng yếu thì mô hình càng phức tạp càng nguy hiểm.
2. Feature Engineering và Alpha Signal: Biến dữ liệu thô thành tín hiệu có ý nghĩa
Sau khi có dữ liệu sạch, bước tiếp theo là biến dữ liệu thô thành các biến có ý nghĩa. Đây là phần feature engineering. Thị trường không đưa sẵn tín hiệu “mua” hay “bán”. Quant researcher phải tự tạo ra các feature để đo hành vi thị trường.
Từ chuỗi giá đơn giản, ta có thể tạo ra rất nhiều feature: return 5 phiên, return 20 phiên, return 60 phiên, volatility 20 phiên, khoảng cách giá so với MA20 hoặc MA50, tỷ lệ volume hiện tại so với trung bình 20 phiên, sức mạnh tương đối của cổ phiếu so với ngành, hoặc mức độ biến động so với thị trường chung.
Ví dụ, nếu muốn xây một strategy momentum, ta có thể tạo feature là return 3 tháng. Ý tưởng là những cổ phiếu tăng mạnh hơn thị trường trong 3 tháng gần nhất có thể tiếp tục thu hút dòng tiền trong ngắn hạn. Nhưng nếu chỉ dùng return 3 tháng thì chưa đủ. Một cổ phiếu tăng 40% trong 3 tháng nhưng thanh khoản thấp, volatility quá cao và vừa tăng trần nhiều phiên liên tiếp có thể rủi ro hơn một cổ phiếu tăng 18% nhưng thanh khoản đều, nền giá chặt và dòng tiền ổn định.
Vì vậy, một tín hiệu momentum tốt có thể không chỉ nhìn vào “cổ phiếu tăng mạnh nhất”, mà còn kết hợp nhiều điều kiện: return 3 tháng dương, thanh khoản trung bình trên một mức tối thiểu, volume gần đây cao hơn trung bình, volatility không quá cực đoan và giá vẫn giữ trên đường xu hướng chính.
Ví dụ cụ thể: tài khoản đang theo dõi 100 cổ phiếu thanh khoản tốt. Hệ thống xếp hạng cổ phiếu theo return 3 tháng. Top 20 cổ phiếu có momentum mạnh nhất được đưa vào danh sách quan sát. Sau đó, hệ thống loại những mã có giá trị giao dịch trung bình dưới 30 tỷ đồng/ngày, loại những mã có volatility quá cao, và chỉ chọn những mã có volume xác nhận. Cuối cùng, có thể chỉ còn 8–10 cổ phiếu đủ điều kiện để đưa vào danh mục.
Đây chính là cách feature chuyển thành alpha signal. Feature là biến đo lường. Alpha signal là tín hiệu có khả năng dự báo lợi nhuận tương lai.
Alpha signal có thể đến từ nhiều nhóm khác nhau. Momentum dựa trên ý tưởng cổ phiếu mạnh có thể tiếp tục mạnh. Mean reversion dựa trên ý tưởng giá biến động quá mức có thể hồi về trung bình. Value dựa trên ý tưởng tài sản rẻ có thể được định giá lại. Quality tập trung vào doanh nghiệp có ROE tốt, nợ thấp, dòng tiền ổn định. Carry thường xuất hiện nhiều trong futures, bond hoặc FX. Sentiment dùng dữ liệu tin tức hoặc tâm lý thị trường để đo phản ứng ngắn hạn.
Điểm cần nhớ là mô hình phức tạp không tự động tạo ra alpha tốt. Nhiều strategy thất bại vì cố dùng machine learning hoặc AI trên một tập feature nhiễu, không có logic kinh tế. Ngược lại, một feature đơn giản nhưng có lý do tồn tại rõ ràng đôi khi lại mạnh hơn nhiều.
Sai lầm nguy hiểm nhất ở bước này là look-ahead bias. Ví dụ, nếu strategy dùng dữ liệu lợi nhuận quý I nhưng lại giả định rằng nhà đầu tư biết thông tin đó trước ngày doanh nghiệp công bố báo cáo tài chính, backtest sẽ bị “nhìn trước tương lai”. Kết quả có thể rất đẹp, nhưng không thể giao dịch thật.
Vì vậy, câu hỏi quan trọng ở bước alpha không phải là: “Tín hiệu này backtest có lời không?”
Câu hỏi đúng hơn là: Tín hiệu này có logic thị trường không, dữ liệu có sẵn tại thời điểm giao dịch thật không, hiệu quả có lặp lại qua nhiều giai đoạn không, và sau phí giao dịch còn đủ hấp dẫn không?
3. Portfolio Construction và Risk Management: Có tín hiệu tốt chưa đủ, phải biết phân bổ vốn
Một trong những hiểu lầm lớn nhất về quant trading là nghĩ rằng chỉ cần tìm ra cổ phiếu có điểm số cao nhất rồi mua. Thực tế, từ tín hiệu đến danh mục là một bài toán riêng.
Giả sử hệ thống chọn ra 10 cổ phiếu tốt nhất tuần này. Câu hỏi tiếp theo là: mỗi mã mua bao nhiêu? Có nên chia đều mỗi mã 10% tài khoản không? Nếu 5 mã đều thuộc nhóm bất động sản thì có quá tập trung không? Nếu một mã có volatility cao gấp đôi mã khác thì có nên phân bổ vốn bằng nhau không? Nếu một mã thanh khoản thấp, khi thị trường xấu có thoát được không?
Đây là phần portfolio construction.
Cách đơn giản nhất là equal weight, tức chia đều vốn cho các cổ phiếu được chọn. Ví dụ tài khoản 1 tỷ đồng, mua 10 cổ phiếu, mỗi cổ phiếu 100 triệu đồng. Cách này dễ làm, nhưng chưa chắc tối ưu vì mỗi cổ phiếu có mức rủi ro khác nhau.
Một cách chuyên nghiệp hơn là phân bổ theo rủi ro. Ví dụ hệ thống đặt quy tắc mỗi lệnh chỉ được phép lỗ tối đa 1% NAV. Với tài khoản 1 tỷ đồng, mức lỗ tối đa mỗi lệnh là 10 triệu đồng. Nếu cổ phiếu A có điểm mua 50.000 đồng và stop-loss ở 47.500 đồng, tức rủi ro mỗi cổ phiếu là 2.500 đồng, hệ thống chỉ được mua tối đa 4.000 cổ phiếu. Tổng giá trị vị thế là 200 triệu đồng. Nếu sai và chạm stop-loss, tài khoản mất khoảng 10 triệu đồng, tức đúng 1% NAV.
Nhưng nếu nhà đầu tư không tính position sizing và all-in 1 tỷ vào cổ phiếu đó, cùng một mức stop-loss 5%, tài khoản sẽ mất 50 triệu đồng, tức 5% NAV. Chỉ cần 4 lệnh thua như vậy, tài khoản có thể mất gần 20%. Đây là lý do cùng một strategy nhưng người quản trị vốn tốt có thể sống sót, còn người phân bổ vốn sai có thể cháy tài khoản dù tín hiệu ban đầu giống nhau.
Risk management trong quant trading không chỉ là đặt stop-loss. Nó gồm nhiều lớp: giới hạn rủi ro mỗi lệnh, giới hạn thua lỗ mỗi ngày, giới hạn drawdown, giới hạn tỷ trọng ngành, giới hạn thanh khoản và cơ chế giảm exposure khi thị trường biến động mạnh.
Ví dụ, một strategy có thể đặt quy tắc: rủi ro mỗi lệnh tối đa 1% NAV; nếu lỗ 3% trong một ngày thì dừng giao dịch; nếu drawdown vượt 10% thì giảm một nửa quy mô vị thế; nếu drawdown vượt 15% thì đưa strategy vào trạng thái review; nếu một ngành đã chiếm 30% danh mục thì không mua thêm mã cùng ngành.
Các con số này không phải chuẩn cố định, nhưng tư duy phía sau rất quan trọng: strategy phải biết mình được phép sai đến đâu.
Một khái niệm khác rất phổ biến là volatility targeting. Khi thị trường ổn định, strategy có thể giữ exposure cao hơn. Nhưng khi volatility tăng mạnh, hệ thống sẽ tự giảm tỷ trọng để giữ rủi ro danh mục ở mức kiểm soát được. Ví dụ, nếu trong điều kiện bình thường strategy dùng 100% vốn, nhưng volatility thị trường tăng gấp đôi, hệ thống có thể giảm exposure xuống 50–60%. Mục tiêu không phải là đoán đúng từng phiên, mà là tránh để danh mục bị cuốn vào những giai đoạn biến động bất thường.
Bài học ở đây rất rõ: alpha signal giúp tìm cơ hội, nhưng portfolio construction và risk management quyết định strategy có sống được hay không. Một tín hiệu tốt nhưng phân bổ vốn sai có thể tạo drawdown rất lớn. Ngược lại, một tín hiệu vừa phải nhưng quản trị vốn tốt có thể trở thành hệ thống bền hơn.
4. Backtest, Execution và Monitoring: Khác biệt giữa strategy trong notebook và strategy chạy thật
Một strategy nằm trong notebook chưa phải là strategy có thể giao dịch thật. Để đi từ nghiên cứu đến thị trường, strategy phải vượt qua ba bước rất quan trọng: backtest thực tế, execution thực tế và monitoring sau khi chạy thật.
Backtest là bước kiểm tra strategy trên dữ liệu lịch sử. Nhưng backtest không nên được hiểu là công cụ để làm đẹp kết quả. Backtest tốt là backtest càng gần thực tế càng tốt. Điều đó có nghĩa là phải tính phí giao dịch, thuế, bid-ask spread, slippage, giới hạn thanh khoản, thời điểm phát sinh tín hiệu và thời điểm thật sự có thể khớp lệnh.
Ví dụ, một strategy ngắn hạn có thể cho lợi nhuận thô 28%/năm trước chi phí. Nhưng nếu strategy giao dịch 150–200 lần mỗi năm, mỗi vòng giao dịch mất 0,4–0,6% vì phí, thuế và trượt giá, lợi nhuận thực tế có thể giảm xuống chỉ còn 12–15%/năm. Nếu thị trường thanh khoản kém hơn giả định, lợi nhuận có thể còn thấp hơn nữa.
Đây là lý do nhiều strategy trông rất đẹp trong backtest nhưng thất bại khi chạy thật. Không phải vì ý tưởng luôn sai, mà vì backtest đã bỏ qua chi phí thực tế.
Execution là bước chuyển tín hiệu thành lệnh giao dịch. Đây là phần nhiều người mới làm quant thường đánh giá thấp. Strategy có thể báo mua cổ phiếu ở 50.000 đồng, nhưng khi đặt lệnh thật, giá khớp trung bình có thể là 50.400 đồng vì thanh khoản mỏng hoặc lực mua đẩy giá lên. Mức chênh 0,8% này gọi là slippage. Nếu kỳ vọng lợi nhuận mỗi lệnh chỉ khoảng 2%, thì riêng slippage đã ăn mất gần một nửa edge.
Với thị trường Việt Nam, execution càng cần chú ý vì nhiều cổ phiếu midcap và smallcap có thanh khoản không đều. Một lệnh 500 triệu đồng có thể không ảnh hưởng nhiều đến cổ phiếu vốn hóa lớn, nhưng có thể tạo tác động đáng kể với cổ phiếu thanh khoản thấp. Nếu backtest giả định có thể mua/bán ngay tại giá đóng cửa, kết quả có thể quá lạc quan.
Một quy tắc thực tế là không nên để quy mô vị thế quá lớn so với thanh khoản trung bình. Ví dụ, nếu một cổ phiếu chỉ giao dịch trung bình 20 tỷ đồng/ngày, việc nắm vị thế 5–10 tỷ đồng có thể khiến việc thoát lệnh trở nên khó khăn khi thị trường xấu. Strategy có thể đúng trên giấy, nhưng không thoát được ở giá mong muốn ngoài đời thật.
Cuối cùng là monitoring. Một strategy sau khi chạy thật không nên bị bỏ mặc. Cần theo dõi xem hiệu suất live có còn giống backtest không. Nếu backtest kỳ vọng win rate 55% nhưng khi chạy thật chỉ còn 43% trong nhiều tháng, cần xem lại. Nếu slippage trung bình tăng từ 0,2% lên 0,8%, edge có thể đã bị bào mòn. Nếu drawdown vượt xa mức lịch sử, có thể thị trường đã đổi regime hoặc strategy không còn phù hợp.
Một strategy trưởng thành thường đi qua nhiều bước: nghiên cứu ý tưởng, làm sạch dữ liệu, tạo feature, kiểm tra alpha, backtest, out-of-sample test, paper trading, chạy vốn nhỏ, tăng vốn dần và monitoring liên tục. Quá trình này không nhanh, nhưng đó là cách biến một ý tưởng trong notebook thành một hệ thống có khả năng vận hành thật.
Kết luận
Bên trong một chiến lược Quant Trading không chỉ có mô hình và tín hiệu mua bán. Một strategy hoàn chỉnh là một pipeline gồm nhiều lớp: dữ liệu sạch, feature có logic, alpha signal được kiểm chứng, danh mục được phân bổ hợp lý, rủi ro được kiểm soát, backtest gần thực tế, execution có tính đến chi phí và monitoring liên tục.
Nhiều chiến lược thất bại không phải vì ý tưởng ban đầu sai, mà vì một bước nào đó trong pipeline bị làm hời hợt. Data sai làm backtest sai. Feature nhiễu làm alpha yếu. Portfolio construction kém làm drawdown lớn. Risk management lỏng lẻo khiến strategy chết trong giai đoạn xấu. Execution tệ khiến lợi nhuận bị bào mòn. Monitoring thiếu khiến strategy tiếp tục chạy dù edge đã biến mất.
Vì vậy, quant trading không nên được hiểu là việc đi tìm một công thức thắng thị trường. Nó nên được hiểu là quá trình xây dựng một hệ thống ra quyết định dựa trên dữ liệu, trong đó mỗi giả thuyết phải được kiểm chứng, mỗi tín hiệu phải được chuyển hóa thành danh mục có kiểm soát, và mỗi giao dịch phải tính đến chi phí thực tế.
