30/11/2025
219 lượt đọc
Nếu bỏ hết “mỹ từ” đi, long–short đơn giản là cách tách phần thị trường chung (beta) ra khỏi phần khác biệt do mô hình (alpha). Thay vì chỉ mua những gì mình thích, ta vừa long thứ mình cho là sẽ chạy “tương đối tốt hơn”, vừa short thứ mình cho là sẽ chạy “tương đối kém hơn”, rồi ghép lại thành một danh mục gần như trung hòa với thị trường.
Về mặt logic:
Ghép hai bên sao cho danh mục ít phụ thuộc vào việc VN-Index hay VN30 tăng / giảm, mà chủ yếu sống bằng chênh lệch giữa “tốt” và “xấu”.
Trong bối cảnh Việt Nam, long–short có vài dạng khả thi:
Về lý thuyết có thể long–short cổ phiếu với nhau, nhưng thực tế bị hạn chế khá nhiều bởi cơ chế short.
Ngay từ đầu, khi nói đến “code và backtest long–short”, QM Capital thường tự hỏi ba câu rất cụ thể:
Mô hình có xếp hạng được tài sản không? Nghĩa là nhóm được chọn vào long có thực sự tốt hơn nhóm short, nếu so trên cùng một giai đoạn và cùng điều kiện thị trường.
Khi biến những xếp hạng đó thành danh mục thực sự (có weight, rebalance, phí giao dịch, slippage), đường vốn nhìn ra sao: PnL, Sharpe, max drawdown, turnover?
Nếu đưa ra thế giới thật – với limit về short, margin, fee, thanh khoản – chiến lược còn sống được không, hay chỉ đẹp trên giấy?
Ví dụ: giả sử QM Capital xây một chiến lược long–short trên rổ 30 cổ phiếu thanh khoản nhất HOSE. Signal rất đơn giản: 60-day momentum. Mỗi tuần, hệ thống chọn top 20% cổ phiếu có momentum cao nhất để long, bottom 20% để short, cân bằng vốn hai bên. Sau 5 năm backtest, ta thấy:
Nhìn vậy là ổn, nhưng phải nhớ: kết quả này chỉ có ý nghĩa nếu ta chắc rằng dữ liệu không bị “nhìn tương lai”, phí giao dịch được tính đúng, và cấu trúc long–short có thể triển khai trong bối cảnh thật (ví dụ dùng VN30F để hedge thay vì short trực tiếp cổ phiếu). Toàn bộ phần còn lại – code và backtest – thực ra chỉ là cách trả lời cẩn thận cho ba câu hỏi đó.
Để không bị lạc trong chi tiết kỹ thuật, có thể chia quy trình thành bốn khối: dữ liệu → signal → danh mục → đánh giá. Mỗi khối nếu làm ẩu một chút thì kết quả cuối cùng sẽ lệch đi khá xa.
(a) Chuẩn bị dữ liệu và universe
Bước đầu tiên thường bị xem nhẹ, nhưng nó quyết định chiến lược có “đứng được” hay không.
Chọn universe: ví dụ top 50 mã thanh khoản nhất HOSE, hoặc rổ VN30 + một số bluechip.
Gom dữ liệu giá dạng OHLCV (open, high, low, close, volume) theo ngày; nếu trade intraday thì là 5-min, 15-min.
Đồng bộ ngày giao dịch, xử lý ngày nghỉ, loại các mã volume quá thấp.
Trong code (Python):
Đưa dữ liệu về dạng ma trận price[date, ticker], volume[date, ticker].
Cẩn thận với survivorship bias: nếu có thể, nên dùng toàn bộ danh sách mã ở từng thời điểm, không chỉ những mã còn sống tới hôm nay.
(b) Xây tín hiệu (signal) và xếp hạng
Long–short thực chất là một bài toán ranking. Với mỗi ngày (hoặc mỗi kỳ rebalance), ta cần một con số score cho mỗi mã.
Ví dụ signal đơn giản:
Momentum: 20-day hoặc 60-day return.
Mean reversion: âm của 5-day return (giảm mạnh có thể bật lại).
Yếu tố cơ bản: kết hợp P/E, P/B, tăng trưởng lợi nhuận, vốn hóa…
Trong code:
Tính signal dạng signal[date, ticker].
Dùng shift(1) để đảm bảo ngày T chỉ dùng thông tin đến T–1, tránh look-ahead bias.
Sau đó:
Loại mã không đủ dữ liệu, thanh khoản kém, bị hạn chế giao dịch.
Xếp hạng theo signal trên từng ngày.
Chọn top X% để long, bottom Y% để short (thường X = Y cho đơn giản).
(c) Từ signal sang portfolio: thiết kế trọng số long–short
Đây là nơi “lý thuyết đẹp” dễ bị vỡ khi gặp thực tế. Ý tưởng căn bản:
Long leg: phân bổ vốn đều cho các mã ở nhóm điểm cao (ví dụ mỗi mã +1/N).
Short leg: phân bổ đều cho các mã ở nhóm điểm thấp (mỗi mã –1/M).
Chuẩn hóa lại để tổng giá trị long ≈ tổng giá trị short → gần dollar-neutral.
Có thể thêm một số ràng buộc:
Giới hạn weight tối đa trên từng mã (ví dụ |weight| ≤ 5% NAV).
Giới hạn theo ngành để tránh một bên full bank, bên kia full thép.
Đặt lịch rebalance: hàng ngày, hàng tuần, hoặc khi tín hiệu thay đổi mạnh.
Nếu dùng VN30F làm công cụ short, cấu trúc sẽ khác một chút: ta long cổ phiếu, sau đó tính beta của rổ long với VN30, rồi short VN30F theo beta đó để giảm bớt rủi ro thị trường.
(d) Backtest: từ weight và return sang PnL
Khi đã có ma trận weight w[date, ticker] và lợi suất r[date, ticker], phần còn lại tương đối thẳng:
Portfolio return ngày T = tổng (w[T–1, ticker] × r[T, ticker]) – phí – slippage.
Cộng dồn để ra equity curve.
Từ đường vốn này, ta tính:
Lợi suất năm hóa, volatility, Sharpe, Sortino.
Max drawdown, thời gian hồi phục, win rate theo ngày / tháng.
Turnover (khối lượng điều chỉnh vị thế mỗi lần rebalance) → từ đó suy ra mức phí thực tế.
Một thói quen tốt là luôn tách long leg và short leg ra xem riêng:
Long leg có alpha dương rõ rệt không?
Short leg có thực sự underperform không, hay chỉ đơn giản là “không làm gì nhiều nhưng tốn phí”?
Ví dụ: trong backtest, QM Capital thấy long leg mang lại +18%/năm, short leg –6%/năm, danh mục long–short khoảng +12%/năm. Nếu sau này môi trường thay đổi, short leg không còn underperform nữa, chiến lược sẽ tụt khá nhanh. Nhìn riêng từng leg giúp thấy rõ rủi ro này.
Khi code xong một chiến lược long–short, nhìn đường equity đẹp là cảm giác rất “phê”. Nhưng trước khi tin, mình nên chủ động đi tìm lỗi – nhất là trong bối cảnh thị trường Việt Nam còn nhiều giới hạn về short, thanh khoản, biên độ.
(a) Những bẫy kỹ thuật dễ mắc
Có vài lỗi “kinh điển” mà QM Capital gần như luôn check lại:
Look-ahead bias: dùng dữ liệu của ngày T để quyết định ngày T – ví dụ dùng giá đóng cửa để quyết định lệnh cùng ngày – là lỗi nặng. Mọi input phải là shift(1).
Survivorship bias: chỉ dùng các mã đang niêm yết hiện tại. Những mã đã hủy niêm yết, delist, hoặc bị kiểm soát thường là mã xấu – loại chúng ra khỏi mẫu làm chiến lược trông khỏe hơn thực tế.
Phí và trượt giá (slippage): long–short thường có turnover cao, đặc biệt nếu rebalance mỗi ngày. Nếu để transaction cost = 0, Sharpe nào cũng đẹp. Thực tế phải giả định spread, phí môi giới, và độ trượt tùy theo thanh khoản từng mã.
Giới hạn short: với cổ phiếu Việt Nam, short trực tiếp là câu chuyện khác xa sách giáo khoa. Nếu backtest chiến lược “short 30 mã yếu nhất” mà không mô hình hóa được cơ chế short, thì kết quả chỉ mang tính tham khảo.
(b) Gợi ý áp dụng trong bối cảnh Việt Nam
Trong điều kiện hiện tại, hai hướng khá thực tế:
Long–short trên phái sinh VN30F
Dùng nhiều chiến lược khác nhau (trend following, mean reversion intraday, basis trading…) để tạo nhiều “mini-signal”, sau đó long–short giữa các chiến lược / các kỳ hạn.
Dữ liệu: 1–5 phút, có volumes, order book nếu có.
Lưu ý biên độ, limit up/down, những ngày basis bị méo do roll hợp đồng hoặc tin vĩ mô.
Long stock / short VN30F
Chiến lược stock-picking (value, quality, momentum…) nằm ở leg long; leg short là VN30F để giảm bớt tác động của thị trường chung.
Ví dụ: long rổ 10 mã bank, chứng, tiêu dùng mà model đánh giá tốt; short VN30F với size sao cho beta danh mục về gần 0.
Backtest phải tính cả: phí giao dịch cổ phiếu, phí hợp đồng tương lai, chi phí margin/ ký quỹ.
(c) Cách “vặn vẹo” chiến lược trước khi tin
Sau khi đã có một backtest nhìn ổn, QM Capital thường làm thêm vài bước kiểm tra:
Chạy chiến lược trên các giai đoạn con:
– Bull market (ví dụ 2017, 2020–2021).
– Sideway, hoặc phân hóa mạnh.
– Giai đoạn xấu (2011–2012, 2022...).
Nếu chiến lược chỉ kiếm được tiền trong một giai đoạn rất hẹp, cần hiểu rõ lý do.
Thử thay đổi nhẹ tham số:
– Window 60-day momentum → 40 hoặc 80 ngày.
– Rebalance hàng ngày → 2–3 ngày/lần.
– Thay top/bottom 20% → 10% hoặc 30%.
Nếu chỉ cần chỉnh nhẹ là PnL sụp, khả năng cao là overfit.
Đặt thêm lớp phí / constraint “xấu hơn”:
– Nhân transaction cost lên 1.5–2 lần.
– Cắt 20–30% khối lượng lệnh ở những ngày thanh khoản thấp.
– Giới hạn không được full position khi volatility bùng nổ (risk cap).
Ví dụ: một chiến lược long–short VN30F intraday có Sharpe 2.0 với phí 0.02%/chiều. Khi tăng phí lên 0.04% và giảm 20% khối lượng lệnh ở phiên ATC, Sharpe rơi xuống 0.7. Điều này cho thấy chiến lược đang sống nhờ việc “suýt sít” vào–ra với chi phí cực thấp – khó triển khai nếu không có hạ tầng tương đương backtest.
Cuối cùng, nếu nhìn long–short dưới góc độ hệ thống, nó chỉ là:
Một cơ chế xếp hạng tài sản (hoặc tín hiệu) nhất quán.
Một engine biến ranking thành trọng số, có kiểm soát risk.
Một bộ câu hỏi khó, dùng backtest để trả lời: chiến lược kiếm tiền từ đâu, và khi điều kiện thị trường thay đổi, nó sẽ “đau” ở đâu trước.
Khi trả lời được ba lớp đó một cách trung thực bằng code và dữ liệu, long–short không còn là câu chuyện “nghe rất hedge fund”, mà trở thành một công cụ rất rõ ràng để kiểm soát rủi ro và đo alpha trên thị trường Việt Nam
0 / 5
Trong giao dịch theo hệ thống, khoảnh khắc khó chịu nhất không phải là một phiên thua lỗ lớn, mà là một chuỗi thua đều đặn kéo dài. Ở thị trường Việt Nam, đặc biệt với phái sinh VN30F1M, sáu tháng liên tục không hiệu quả là đủ để khiến phần lớn trader bắt đầu nghi ngờ mọi thứ mình đang làm.
Một trong những giả định ngầm nhưng có ảnh hưởng lớn nhất đến cách nhà đầu tư tiếp cận thị trường là việc coi thị trường tài chính như một cỗ máy. Theo cách nhìn này, nếu hiểu đủ rõ các biến số đầu vào, nếu xây dựng được mô hình đủ tinh vi, ta có thể dự đoán chính xác đầu ra – giá sẽ đi đâu, khi nào, và bao xa.
Mô hình head and shoulders (vai đầu vai) là một trong những mô hình phân tích kỹ thuật cơ bản nhưng rất mạnh mẽ trong việc dự đoán xu hướng thị trường. Mô hình này rất phổ biến trong các giao dịch chứng khoán cơ sở và phái sinh, đặc biệt là tại các thị trường có độ biến động cao như Việt Nam. Được coi là mô hình đảo chiều, head and shoulders thường xuất hiện sau một xu hướng tăng, báo hiệu rằng giá có thể đảo chiều giảm, hoặc có thể xuất hiện ngược lại sau một xu hướng giảm, báo hiệu sự đảo chiều thành tăng.
Khi trader mới bước vào thị trường, đặc biệt là phái sinh VN30, một trong những câu chuyện được kể nhiều nhất là: “Có market maker kéo giá quét stop”. Sau vài lần bị hit stop rất gọn, đúng đỉnh đúng đáy, cảm giác đó là hoàn toàn thật. Nhưng nếu dừng lại ở mức “có ai đó săn mình”, thì rất dễ đi lạc hướng.
Nếu phải mô tả thị trường tài chính giai đoạn 2026 bằng một cụm từ, thì đó là: khó định hình nhưng không hề yên ắng. Sau nhiều năm thị trường bị dẫn dắt bởi những câu chuyện lớn – từ COVID, kích thích tiền tệ, lạm phát cho tới AI – nhà đầu tư dần nhận ra một vấn đề: những narrative này không còn vận hành theo đường thẳng. Lãi suất không tăng mạnh nữa nhưng cũng không quay về mức cực thấp. Lạm phát hạ nhiệt nhưng vẫn dai dẳng. AI tiếp tục thay đổi nền kinh tế, nhưng lợi nhuận không còn phân bổ đồng đều như giai đoạn đầu. Trong một môi trường như vậy, đầu tư dựa trên một kịch bản duy nhất trở nên cực kỳ mong manh.
Với rất nhiều người bước vào trading định lượng, data mining gần như là phản xạ tự nhiên đầu tiên. Bạn có dữ liệu giá, có indicator, có máy tính đủ mạnh, vậy thì việc “quét” hàng trăm, hàng nghìn tổ hợp tham số để tìm ra chiến lược có lợi nhuận nghe rất hợp lý. Cảm giác này đặc biệt mạnh với những ai có nền tảng kỹ thuật: code chạy được, backtest ra equity curve đẹp, drawdown thấp, Sharpe cao – mọi thứ trông rất khoa học và thuyết phụ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!