04/11/2025
654 lượt đọc
Ở Việt Nam chúng ta không có Thanksgiving, nhưng lại có một “cụm lễ hội” mạnh mẽ hơn hẳn bất kỳ giai đoạn nào khác trong năm: 11.11, Black Friday, 12.12, Giáng sinh, rồi nối mạch sang cận Tết và ngày vía Thần Tài. Khi tiêu dùng và chiến dịch giảm giá cùng tăng nhiệt, kỳ vọng của nhà đầu tư về doanh thu quý IV và đầu năm thường dịch chuyển trước cả khi báo cáo ra mắt. Câu hỏi thực tế với người làm định lượng là: những mốc này có tạo ra một độ lệch có thể đo lường được trên giá cổ phiếu hay không, độ lệch đó lặp lại đủ ổn định hay không, và nếu có thì biến nó thành quy tắc giao dịch, cắt lỗ, quản trị vốn như thế nào để sống sót qua nhiều mùa. Bài viết này của QM Capital đi thẳng vào ba phần: bối cảnh và giả thuyết phù hợp với thị trường Việt Nam; khung đo lường “copy-friendly” để bất cứ ai cũng có thể kiểm định lại; và hai ví dụ triển khai kèm quy trình hóa giao dịch, nhấn mạnh kỷ luật hơn là đoán đỉnh đáy.
Trong thực tế vận hành, chúng tôi quan sát thấy hai lực đẩy chồng lớp. Lực thứ nhất đến từ thương mại hiện đại: 11.11, Black Friday, 12.12 và Noel khiến GMV, số đơn, vòng quay tồn kho, tần suất nhắc trên truyền thông và các gói khuyến mãi tăng rõ. Lực thứ hai lại mang tính văn hóa và lịch âm: trước Tết, nhu cầu quà biếu, trang sức, thời trang, di chuyển và ăn uống tăng; tâm lý nắm giữ tiền mặt hoặc chốt lời trước kỳ nghỉ dài cũng thay đổi nhịp giao dịch. Hai lực này không bảo đảm giá tăng, nhưng tạo căn cứ hợp lý để đặt giả thuyết rằng một số nhóm cổ phiếu “nhạy mùa vụ” có thể tạo ra drift tương đối dương trong một cửa sổ thời gian ngắn nếu so với nền thị trường. Ở lát cắt doanh nghiệp, các mã bán lẻ điện máy – công nghệ tiêu dùng, bán lẻ trang sức, vận hành trung tâm thương mại hoặc một số FMCG có cơ chế phản ánh “cầu cuối năm” tương đối trực diện hơn phần còn lại; trong khi vàng miếng nội địa SJC là câu chuyện đặc thù, chịu ảnh hưởng mạnh bởi premium nội so với vàng thế giới và chính sách quản lý. Nếu mục tiêu chỉ là bắt nhịp tiêu dùng trang sức, dùng cổ phiếu bán lẻ trang sức làm proxy thường “sạch” hơn so với cố gắng giao dịch SJC. Cần nhắc lại một điểm sống còn: mọi nhận định mùa vụ, nếu tồn tại, cũng chỉ là một độ lệch xác suất nhỏ; thứ giữ bạn sống sót không phải một “hiệu ứng thần thánh”, mà là quy trình đo lường – thực thi – kiểm soát rủi ro được kỷ luật hóa.
Ví dụ 1: Bán lẻ điện máy quanh 11.11 và Black Friday (giả lập rổ 3 mã)
Giả thuyết: chiến dịch 11.11 và Black Friday kéo GMV và truyền thông, rổ điện máy – công nghệ có xu hướng “đi trước” báo cáo quý IV một vài phiên.
Cách đo lường (event study):
daily_return = close_today / close_yesterday - 1.AR = stock_return - market_return.average across years of AR at relative day d.sum of AAR(d) for d in [d1..d2].Diễn giải mục tiêu: nếu AAR dương ở d = −2, −1, +1 và CAAR dương đáng kể trong D−5→D+3 lặp lại qua nhiều năm, có cơ sở viết quy tắc.
Ví dụ 2: Trang sức cận Tết và ngày vía Thần Tài (proxy thay SJC)
Giả thuyết: nhu cầu trang sức quà biếu tăng cận Tết; SJC nhiễu vì premium – chính sách, nên proxy hợp lý là cổ phiếu bán lẻ trang sức.
Cách đo lường:
Nếu muốn tránh cảm tính, hãy bắt đầu bằng một nghiên cứu sự kiện đơn giản nhưng nhất quán. Bạn chọn mốc D là ngày 11.11, Black Friday (quy đổi theo lịch Việt Nam), 12.12, Giáng sinh 25/12, và với Tết âm lịch thì chọn “ngày giao dịch cuối trước kỳ nghỉ Tết”. Bạn mở cửa sổ đo lường đối xứng quanh D. Với các lễ cuối năm, cửa sổ hợp lý là D-10 đến D+10; với Tết có thể mở rộng D-15 đến D+10 vì kỳ nghỉ dài. Chỉ dùng ngày có giao dịch để tránh nhiễu. Vũ trụ kiểm định nên có một chuẩn nền để so sánh, ví dụ VN30 hoặc ETF bám VN30, cùng một rổ mục tiêu gồm những mã thanh khoản tốt đại diện cho bán lẻ, trang sức, trung tâm thương mại. Cách tính lợi suất ngày rất đơn giản và có thể dán thẳng vào code: daily_return = close_today / close_yesterday − 1. Độ lệch bất thường trong ngày, gọi là AR, được định nghĩa ở dạng chữ dễ copy như sau: AR = stock_return − market_return. Nếu bạn muốn bóc tách ảnh hưởng thị trường sâu hơn, dùng “market model” với hai tham số alpha và beta ước lượng trên cửa sổ trước sự kiện (ví dụ 120 phiên trước D-20), khi đó: AR = stock_return − (alpha + beta * market_return).
Sau khi có AR, bạn sắp xếp dữ liệu theo “ngày tương đối” quanh D cho nhiều năm. Với mỗi ngày tương đối d, ví dụ d = −5 là 5 phiên trước D, bạn gom AR của tất cả các năm ở đúng d và lấy trung bình. Đại lượng này gọi là AAR, viết đúng kiểu copy-friendly là: AAR(d) = average across years of AR at relative day d. Khi bạn cộng dồn AAR theo trục ngày tương đối trên một đoạn cửa sổ, bạn thu được CAAR, viết gọn là: CAAR(d1→d2) = sum of AAR(d) for d in [d1..d2]. Nếu CAAR trong đoạn D-5 đến D+3 dương đủ lớn so với nhiễu lịch sử, bạn có cơ sở diễn giải rằng “trong nhiều năm, rổ này có xu hướng vượt nền thị trường trong khoảng từ 5 phiên trước đến 3 phiên sau sự kiện”. Để không rơi vào cái bẫy thấy gì cũng “có ý nghĩa”, bạn nên dùng kiểm định đơn giản trên AAR hoặc CAAR (t-test) và điều chỉnh sai số chuẩn để xử lý tự tương quan và thay đổi phương sai. Trước khi kết luận, hãy tự kỷ luật hóa bằng ba câu hỏi tối thiểu: tôi đã khóa lịch sự kiện trước khi kéo dữ liệu hay chưa (tránh look-ahead bias), tôi có loại trừ được survivorship bias hay chưa (vẫn tính cả những mã từng trong rổ rồi rời rổ hoặc hủy niêm yết), và tôi đã mô phỏng đủ chi phí giao dịch – trượt giá theo từng giai đoạn thanh khoản hay chưa (vì lợi thế mùa vụ thường rất mỏng).
Ví dụ thứ nhất là “giỏ bán lẻ lễ hội” quanh Noel. Bạn tạo một rổ cân bằng gồm ba lát cắt khác nhau, ví dụ một nhà bán lẻ điện máy – công nghệ, một doanh nghiệp bán lẻ trang sức, và một nhà vận hành trung tâm thương mại. Với mỗi năm trong giai đoạn đủ dài, bạn tính AR của rổ so với VN30 cho từng ngày trong cửa sổ D-10 đến D+10 với D = 25/12. Bạn tính AAR(d) và CAAR trên các đoạn con. Nếu bạn thấy AAR(d) thường dương ở d = −2, −1, +1 và CAAR dương đáng kể trong D-5 đến D+3, trong khi từ D+4 trở đi CAAR quay về sát 0, bạn có một khung diễn giải hợp lý: rổ bán lẻ có xu hướng vượt nền thị trường khoảng một đến hai phiên trước Noel tới một đến ba phiên sau Noel. Từ khung ấy, bạn có thể viết một quy tắc kỷ luật: vào ở cuối phiên D-1 khi có bằng chứng “tiền đã đẩy sớm” (ví dụ AAR(−1) dương và khối lượng phiên D-1 cao hơn trung vị 60 phiên), thoát ở cuối phiên D+2, cắt lỗ nếu drawdown nội kỳ vượt một mức cố định dựa trên ATR 20 phiên của rổ, điều chỉnh kích thước vị thế theo mục tiêu biến động 10 phần trăm một năm để rủi ro ổn định giữa các mùa, và bắt buộc ghi nhật ký P&L theo từng mùa để đánh giá suy giảm hiệu lực theo thời gian. Điểm mấu chốt không nằm ở chỗ bạn vào đúng một lần, mà ở chỗ quy tắc của bạn lặp lại được mà không cần linh cảm.
Ví dụ thứ hai là proxy trang sức quanh Tết, tránh nhiễu của premium SJC. Nếu mục tiêu là bắt nhịp tiêu dùng trang sức, chọn cổ phiếu bán lẻ trang sức làm đại diện giúp bạn phản ánh hành vi mua vàng trang sức và quà biếu trực tiếp hơn là dùng SJC. Bạn đặt D là “ngày giao dịch cuối trước nghỉ Tết” và cửa sổ D-15 đến D+10. Bạn lặp lại quy trình tính AR, AAR(d), CAAR như trên. Nếu kết quả cho thấy CAAR dương ổn định trong D-7 đến D+3 ở phần lớn các năm, thay vì “full-send” một lệnh duy nhất, bạn có thể chia thang vào ở D-3, D-2, D-1 để giảm rủi ro nhảy giá trước kỳ nghỉ; thoát dần ở D+1, D+2, D+3 để tránh dồn lệnh vào một ngày duy nhất; và hạ tỷ trọng nếu thanh khoản tụt mạnh trước nghỉ. Tất nhiên bạn vẫn phải mô phỏng chi phí giao dịch và trượt giá, vì chỉ cần một vài điểm cơ bản chi phí là đã đủ bào mòn lợi thế nhỏ của mùa vụ. Nếu mục tiêu thay vì “đi theo mùa vụ” là “đi ngược sau lễ”, bạn chuyển sang một biến thể mean-reversion: quan sát D+1 đến D+3, nếu có gap tăng vượt ngưỡng lệch chuẩn lịch sử riêng của mã, xác suất điều chỉnh ngắn hạn tăng lên; trong tình huống đó, hành động đúng không nhất thiết là bán khống, mà có thể là hạ beta danh mục, chốt một phần lợi nhuận hoặc đứng ngoài cho tới khi biến động quay về bình thường.
Những ví dụ trên chỉ là cách QM Capital chuyển dữ liệu thành quy trình. Để chúng thực sự “sống được” trên thị trường, buộc mình đi kèm bốn lớp kỷ luật:
Kết lại, cụm 11.11 – Black Friday – 12.12 – Noel rồi Tết là một chuỗi giàu ý nghĩa để kiểm định mùa vụ ở Việt Nam. Cách tiếp cận đúng không phải săn tin giảm giá, mà là đo lường xem nhóm nào thực sự được dòng tiền ưu tiên, vào khi nào và trong bao lâu; sau đó viết thành quy tắc vào – ra, cắt lỗ và quản trị vốn đủ kỷ luật để chịu được sai số. Những công thức ở dạng chữ như “AR = stock_return − market_return”, “AR = stock_return − (alpha + beta * market_return)”, “AAR(d) là trung bình AR tại ngày tương đối d”, “CAAR(d1→d2) là tổng AAR trên đoạn từ d1 đến d2” giúp bất cứ ai cũng có thể dán vào code và tự kiểm định. Không có chiến lược nào đúng mãi, nhưng một quy trình nghiêm túc sẽ cho bạn thấy khi nào lợi thế suy yếu để điều chỉnh kịp thời.
0 / 5
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ụ.
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.
Đượ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!