9 Năm Dữ Liệu VN30+HNX30 Đã Phá Vỡ 5 Điều Retail Tin Tưởng Tuyệt Đối

Hầu hết những gì cộng đồng retail VN gọi là "kinh nghiệm" thực ra là bias được lặp lại đủ lâu đến mức trở thành niềm tin — và backtest 45.493 dòng dữ liệu sạch trên cohort VN30+HNX30 qua 9 năm vừa cho thấy điều đó rõ hơn bao giờ hết.


Khi "đỉnh phân phối = bán" hóa ra là lời khuyên tệ nhất

Wyckoff là framework được giảng dạy nhiều nhất trong các group chứng khoán VN. Logic nghe rất hợp lý: Stage 2 là markup — thị trường đang tăng, mua vào. Stage 3 là distribution — smart money đang xả, bán ra. Retail nghe xong gật đầu, vẽ sơ đồ Wyckoff lên chart, và cảm thấy mình hiểu "cấu trúc thị trường."

Data không đồng ý.

Trên cohort 9 năm, Stage 3 (distribution) cho forward return 60 ngày trung bình +6.63%, win rate 60%, edge +1.88%. Stage 2 (markup) — cái mà mọi người được dạy là "thời điểm vàng để nắm giữ" — chỉ cho +5.46%, win rate 53%, edge +0.71%.

Tức là "đỉnh phân phối" trong lịch sử giá VN không phải tín hiệu bán. Nó là tín hiệu mà cohort tiếp tục thắng với xác suất cao hơn cả giai đoạn markup. Lý do nhiều khả năng nằm ở cấu trúc thị trường VN — thanh khoản mỏng, biên độ rộng, và smart money ở đây không hoạt động theo giáo trình Wyckoff viết cho thị trường Mỹ thập niên 1930.


RSI > 70 không phải "vùng nguy hiểm" — data nói ngược lại

Câu hỏi kinh điển trong mọi group F0: "RSI vượt 70 rồi, có nên bán không?" Câu trả lời mặc định luôn là: "Overbought rồi, cẩn thận."

Trên cohort này, RSI > 70 cho forward return 60 ngày trung bình +9.23%, win rate 60%. RSI < 30 (oversold — thứ mọi người được dạy là "cơ hội mua") cho +6.32%, win rate 60%.

Cả hai đều thắng. Nhưng RSI cao thắng nhiều hơn đáng kể — chênh nhau gần 3 điểm phần trăm về return tuyệt đối. Momentum tồn tại trong dữ liệu VN. Cổ phiếu đang mạnh có xu hướng tiếp tục mạnh trong khung 60 ngày, không phải "mean-revert" ngay lập tức như lý thuyết RSI kinh điển ngụ ý.

Đây không có nghĩa là mua mọi cổ phiếu RSI > 70. Nó có nghĩa là việc bán vì RSI cao là một rule thiếu nền tảng thống kê trên thị trường VN.


CRISIS regime: Lúc mọi người bán tháo là lúc data thắng mạnh nhất 🎯

Finding này có lẽ gây khó chịu nhất với retail.

Phân loại thị trường theo regime: STABLE (thị trường bình thường) và CRISIS (biến động lớn, thường kèm theo tin xấu, bán tháo). Kết quả forward 60 ngày:

Win rate 67% trong CRISIS là con số đáng chú ý — trên cohort đủ lớn (N=45.493), đây không phải noise. Thị trường STABLE thậm chí không vượt 50% win rate, tức là trong điều kiện bình thường, việc timing thị trường không có edge thống kê đáng kể.

Tâm lý retail trong CRISIS rất nhất quán: bán để "cắt lỗ", chờ "thị trường ổn định mới mua lại." Data cho thấy đây chính xác là thời điểm cohort mua vào ghi nhận win rate cao nhất. Panic-selling của retail tạo ra định giá thấp — và đó là edge có thể đo được.


Active trading vs. buy-hold: 16 năm dữ liệu, 1 kết quả tàn nhẫn

Đây là phần mà nhiều trader chuyên nghiệp sẽ không thích đọc.

Active trading (low-vol top-5, rebalance hàng tháng): CAGR 16 năm +3%

Buy-hold VN30 equal-weight: CAGR 16 năm +15.37%

Chênh lệch: hơn 12 điểm phần trăm mỗi năm, gộp lại qua 16 năm là khoảng cách tài sản khổng lồ. Nguyên nhân cơ học rất rõ: phí giao dịch 0.35% × 12 lần rebalance mỗi năm = 4.2%/năm chỉ riêng phí. Chưa tính spread, thuế, và opportunity cost của việc giữ tiền mặt khi "chờ điểm vào tốt."

Active trading không thua vì chọn cổ phiếu dở. Nó thua vì cấu trúc chi phí ăn hết alpha trước khi alpha kịp tích lũy. Đây là lý do tại sao Warren Buffett cược với hedge fund và thắng — không phải vì passive luôn thông minh hơn, mà vì phí luôn hiện hữu còn alpha thì không.


Sequence-of-returns: Thứ không ai dạy bạn nhưng quyết định 50% kết quả

Finding cuối cùng là thứ làm tôi dừng lại lâu nhất khi chạy số.

Cùng một setup: 2 tỷ đầu tư, rút 12 triệu/tháng (144 triệu/năm).

Cùng chiến lược. Cùng số vốn. Cùng mức rút. Kết quả khác nhau 4.5 lần chỉ vì năm bắt đầu khác nhau.

Đây là sequence-of-returns risk — rủi ro không phải từ kỹ năng hay chiến lược, mà từ việc thị trường sụt giảm lớn đúng vào những năm đầu khi danh mục chưa đủ lớn để "hồi phục bằng lãi kép." Người bắt đầu 2010 đi qua giai đoạn tăng trưởng mạnh trước, xây buffer đủ lớn để CRISIS sau này không xóa sạch. Người bắt đầu 2022 đối mặt với điều ngược lại.

50% kết quả đầu tư dài hạn phụ thuộc vào timing luck của năm bắt đầu — không phải stock picking, không phải kỹ năng đọc chart. Điều này không có nghĩa là từ bỏ chiến lược. Nó có nghĩa là sequencing risk cần được hedge bằng cash buffer hoặc glide path, không phải bằng việc tin rằng mình đủ giỏi để timing.


Thread chung: Intuition retail VN đang chạy ngược chiều data 📊

Năm finding này có một mẫu số chung: phản ứng bản năng của retail VN — bán khi phân phối, bán khi RSI cao, bán khi crisis, trading thường xuyên, tin vào kỹ năng hơn timing — đều ngược chiều với những gì cohort 9 năm cho thấy.

Edge không đến từ việc "đảo ngược tâm lý" một cách mù quáng. Nó đến từ pre-commit rules dựa trên data — những quy tắc được đặt ra trước khi thị trường biến động, không phải quyết định trong lúc adrenaline chạy. Sự khác biệt giữa hai cách tiếp cận này, gộp lại qua 10-16 năm, là con số không thể bỏ qua.


3 Takeaway

1. Wyckoff Stage 3 và RSI > 70 không phải tín hiệu bán trên thị trường VN — lịch sử cho thấy cohort tiếp tục thắng với win rate cao hơn so với giai đoạn "an toàn" theo giáo trình.

2. CRISIS regime là thời điểm data thắng mạnh nhất (win rate 67%) — panic-selling của retail tạo ra edge đo được, nhưng chỉ khai thác được bằng pre-commit rules, không phải bằng dũng cảm trong lúc thị trường đang rơi.

3. Sequence-of-returns risk lớn hơn skill risk với nhà đầu tư dài hạn — cash buffer và glide path quan trọng hơn việc tìm chiến lược "tốt hơn."


Verify reproducible

Toàn bộ backtest chạy trên dataset công khai. Tự kiểm tra tại https://github.com/ducnhd/lotusmarket hoặc qua Lotus AI.

pip install lotusmarket pandas numpy
from lotusmarket import cohort, backtest

df = cohort.load("VN30+HNX30", clean=True)
result = backtest.forward_return(df, group_by="wyckoff_stage", horizon=60)
print(result.summary())

Hoặc dùng CLI:

lmcli backtest --cohort VN30+HNX30 --group wyckoff_stage --horizon 60d --output table

Disclaimer: Bài viết phân tích dữ liệu lịch sử thuần túy. Không phải lời khuyên đầu tư. Kết quả quá khứ không đảm bảo kết quả tương lai.


Thích bài này? ⭐ Star repo · 💬 Subscribe Telegram để nhận daily report · 📡 RSS feed