18/03/2026
522 lượt đọc
Trong quant trading, rất nhiều người mới thường nhìn thị trường như một bài toán thuần số liệu. Họ tập trung vào giá, khối lượng, biến động, chỉ báo kỹ thuật, đôi khi thêm vài biến cơ bản như P/E, tăng trưởng lợi nhuận hay dòng tiền. Cách tiếp cận đó không sai, nhưng nó vẫn thiếu một lớp rất quan trọng, đó là lớp thông tin đang làm thay đổi kỳ vọng của thị trường theo thời gian thực. Giá là thứ ta nhìn thấy trên biểu đồ, nhưng trước khi giá dịch chuyển luôn tồn tại một quá trình hình thành nhận thức. Nhà đầu tư đọc tin, diễn giải tin, so sánh tin đó với kỳ vọng đã có sẵn trong đầu, rồi mới ra quyết định mua hay bán. News sentiment nằm đúng ở khoảng giữa đó. Nó không chỉ nói rằng có tin tức xuất hiện, mà còn giúp đo xem thị trường nhiều khả năng sẽ cảm nhận tin đó theo hướng nào, mạnh hay yếu, bất ngờ hay đã được phản ánh từ trước.
Điểm khiến news sentiment trở nên quan trọng là vì thị trường không bao giờ phản ứng với thông tin theo kiểu máy móc. Không phải cứ tin tốt là giá sẽ tăng, cứ tin xấu là giá sẽ giảm. Có những quý doanh nghiệp báo lợi nhuận tăng mà cổ phiếu vẫn bị bán mạnh vì mức tăng đó thấp hơn kỳ vọng. Có những thông tin nhìn qua tưởng tiêu cực nhưng giá lại bật lên vì thị trường nhận ra rủi ro thật ra nhỏ hơn những gì họ sợ trước đó. Khi làm quant trading đủ lâu, người ta sẽ không còn hỏi một câu rất sơ cấp là “tin này tốt hay xấu”, mà sẽ hỏi một câu quan trọng hơn nhiều: “tin này có làm thay đổi narrative định giá của thị trường hay không”. News sentiment chính là nỗ lực biến câu hỏi mềm đó thành dữ liệu cứng để mô hình có thể sử dụng.
News sentiment đặc biệt quan trọng ở những thị trường mà hành vi nhà đầu tư cá nhân chiếm tỷ trọng cao, dòng tiền phản ứng nhanh với tiêu đề tin tức, và thông tin có xu hướng lan truyền qua nhiều lớp từ báo chính thống sang diễn đàn, mạng xã hội và cộng đồng giao dịch. Ở môi trường đó, nếu chỉ nhìn biểu đồ thì bạn thường nhìn thấy hệ quả khi mọi thứ đã diễn ra. Còn nếu theo dõi được sentiment đủ sớm, bạn có thể nhìn thấy sự thay đổi kỳ vọng trước khi nó được phản ánh hoàn toàn vào giá. Đó là lý do tại sao trong các chiến lược event-driven, short-term momentum, post-news reaction hay cross-sectional ranking, news sentiment thường không phải là phần phụ cho đẹp mô hình, mà là một trong những lớp tín hiệu giúp tăng xác suất thắng đáng kể.
News sentiment không đơn giản là việc lấy một tiêu đề báo rồi gắn nhãn tích cực, tiêu cực hay trung tính. Nếu chỉ dừng ở mức đó, nó mới chỉ là NLP bề mặt chứ chưa phải tín hiệu giao dịch. Trong quant trading, sentiment có ý nghĩa khi nó đại diện cho cách thị trường có thể diễn giải một thông tin mới đối với tương lai của một tài sản. Nói cách khác, nó không chỉ đo câu chữ, mà cố gắng đo tác động kỳ vọng mà câu chữ đó tạo ra.
Ví dụ rất đơn giản là một doanh nghiệp công bố ký được hợp đồng mới. Về mặt ngôn ngữ thông thường, đây nghe có vẻ là tin tích cực. Nhưng nếu hợp đồng đó nhỏ, biên lợi nhuận thấp, hoặc không đủ lớn so với những gì thị trường chờ đợi, thì phản ứng thực tế có thể là thất vọng. Ngược lại, một thông tin như doanh nghiệp phải trích lập dự phòng mạnh trong quý này có thể bị nhìn như tin xấu nếu đọc sơ qua, nhưng với người hiểu câu chuyện tài chính thì đó đôi khi lại là bước dọn dẹp để mở ra nền lợi nhuận sạch hơn cho giai đoạn sau. Đó là lý do sentiment trong trading không thể chỉ dựa trên từ khóa ngây thơ. Nó phải gắn với ngữ cảnh tài chính, với kỳ vọng đã tồn tại trước đó, và với xác suất thị trường sẽ viết lại câu chuyện định giá sau khi tin xuất hiện.
Nhìn ở chiều sâu hơn, news sentiment thực chất là cầu nối giữa dữ liệu cơ bản và dữ liệu giá. Fundamental cho biết doanh nghiệp là gì, giá cho biết thị trường đang làm gì, còn sentiment cho biết thị trường đang nghĩ gì về những thay đổi mới nhất xoay quanh doanh nghiệp đó. Chính lớp “đang nghĩ gì” này mới là thứ cực kỳ có giá trị trong trading ngắn và trung hạn, bởi vì giá nhiều khi chưa phản ánh hết, trong khi câu chuyện đã bắt đầu dịch chuyển.
Trong thực chiến, không ai làm tử tế lại dùng sentiment theo kiểu đọc một headline rồi mua bán ngay. Cách làm bài bản là biến tin tức thành dữ liệu có cấu trúc, sau đó mới chuyển thành feature. Bước đầu tiên là thu thập dữ liệu từ các nguồn tin, chuẩn hóa thời gian công bố, loại bỏ bài trùng lặp, gắn đúng mã cổ phiếu hoặc doanh nghiệp liên quan, rồi phân loại loại sự kiện. Một hệ thống yếu thường chết ngay ở khâu này vì đếm cùng một tin nhiều lần, gán sai ticker, hoặc không phân biệt đâu là tin gốc đâu là tin báo khác dẫn lại. Khi đó backtest nhìn có thể rất đẹp nhưng hoàn toàn không bền khi chạy thật.
Bước tiếp theo là lượng hóa sentiment. Một mô hình tốt sẽ không chỉ chấm điểm dương âm. Nó còn phải cố gắng đo cường độ của thông tin, độ liên quan đến mã cổ phiếu, độ mới của tin, độ uy tín của nguồn và tầm quan trọng của sự kiện. Tin xử phạt hành chính nhẹ và tin bị điều tra gian lận đều có thể bị gắn màu âm, nhưng với trading thì hai thứ đó khác xa nhau về mức độ. Tin ký hợp đồng nhỏ và tin thắng thầu lớn cũng không thể để chung một nhãn tích cực rồi mong mô hình hiểu đúng.
Sau khi đã có điểm sentiment, người làm quant thường không dùng từng bài báo như một tín hiệu độc lập. Giá trị thật sự nằm ở cách tổng hợp theo thời gian. Chẳng hạn, sentiment trung bình trong 1 ngày, 3 ngày, 5 ngày; mức thay đổi của sentiment so với giai đoạn trước; số lượng tin tích cực tăng đột biến; tỷ lệ tin tốt trên tin xấu; mức độ được nhắc tới cao bất thường; hay trường hợp rất đáng chú ý là “tin tốt nhưng giá phản ứng yếu” hoặc “tin xấu nhưng giá không giảm”. Những feature này mới thực sự gần với hành vi thị trường, vì chúng nắm được dòng chảy thông tin chứ không chỉ từng dòng chữ riêng lẻ.
Trong nhiều mô hình, sentiment thường đóng vai trò bộ lọc hơn là cò súng bắn lệnh. Nó giúp trả lời xem setup kỹ thuật hiện tại có đang được hậu thuẫn bởi catalyst thông tin hay không. Nó cũng có thể làm lớp xác nhận cho price action, ví dụ một breakout đi cùng sentiment mạnh và volume mở rộng sẽ đáng tin hơn một breakout diễn ra trong khoảng trống thông tin. Ngoài ra, sentiment còn rất hữu ích trong việc giải thích các chuyển động bất thường mà giá tự nó không giải thích được. Một mã tăng volume đột biến chưa chắc đã là cơ hội tốt, nhưng nếu cùng lúc có cụm tin tức mới với sắc thái tích cực lan rộng, bức tranh sẽ khác ngay.
Hãy lấy một ví dụ rất gần với thị trường Việt Nam. Giả sử một ngân hàng công bố lợi nhuận quý tăng trưởng 18%. Nếu chỉ nhìn con số này, nhiều người sẽ kết luận ngay là tích cực. Nhưng nếu trước đó thị trường đã kỳ vọng tăng 25% đến 30%, đồng thời room đầu tư và các báo cáo preview đều đẩy kỳ vọng lên cao, thì kết quả 18% có thể bị xem là hụt hơi. Khi đó headline vẫn là “lợi nhuận tăng”, nhưng sentiment thực chiến lại nghiêng sang hướng thất vọng. Cổ phiếu có thể mở gap lên đầu phiên rồi bị bán dần trong ngày. Nếu mô hình của bạn chỉ biết gắn nhãn “positive earnings news”, nó sẽ dễ mua đúng vào đoạn không còn lợi thế.
Ngược lại, cũng có những trường hợp doanh nghiệp công bố số liệu nghe không mấy đẹp, chẳng hạn phải tăng trích lập hoặc doanh thu chỉ tăng nhẹ, nhưng thị trường lại phản ứng tốt vì phần quan trọng nhất nằm ở chỗ khác: nợ xấu được kiểm soát, biên gộp hồi phục, backlog tăng, hoặc ban lãnh đạo đưa ra tín hiệu tích cực cho các quý sau. Khi đó sentiment thật sự không nằm ở một con số riêng lẻ mà nằm ở toàn bộ thông điệp mà thông tin mới mang lại cho câu chuyện định giá. Đây là lý do người làm quant nếu muốn dùng news sentiment nghiêm túc phải rất thận trọng với việc đọc nghĩa tài chính chứ không thể chỉ đếm từ tốt hay xấu.
Một ví dụ khác là câu chuyện “tin tốt nhưng giá không tăng”. Trong trading, đây lại là tình huống rất giàu thông tin. Nếu nhiều tin tích cực xuất hiện liên tiếp mà giá phản ứng hời hợt, điều đó cho thấy hai khả năng. Một là thị trường đã phản ánh trước khá nhiều. Hai là bên mua không thực sự đủ mạnh để tiếp nhận thêm kỳ vọng mới. Trong một số chiến lược, đây thậm chí là tín hiệu cảnh báo hơn là tín hiệu mua. Ngược lại, “tin xấu nhưng giá không giảm” cũng là một dạng sức mạnh ẩn, vì nó cho thấy lượng cung sợ hãi đã được hấp thụ tốt hơn dự kiến. Nói cách khác, sentiment không chỉ nằm ở bản thân tin tức mà còn nằm ở chênh lệch giữa tin tức và phản ứng của giá.
Hiện tại, vnstock của tác giả Thịnh Vũ trên PyPI đang ở phiên bản 3.5.0, phát hành ngày 11/03/2026. Trong tài liệu hệ sinh thái của dự án, phần lấy giá lịch sử cho người dùng free được minh họa bằng vnstock.Quote, còn mảng news crawling và sentiment được tách sang vnstock_news và được liệt kê ở nhánh sponsored.
Điều đó có nghĩa là nếu bạn muốn xây một pipeline sentiment bằng import vnstock, cách hợp lý nhất là dùng vnstock để kéo dữ liệu giá, rồi tự ghép lớp news sentiment từ nguồn ngoài hoặc từ bộ dữ liệu tin mà bạn đã crawl được. Cách làm này rất thực tế, vì trong quant trading, phần quan trọng không chỉ là lấy tin mà là ghép được tin với phản ứng giá sau tin. Tài liệu ví dụ của hệ sinh thái vnstock hiện dùng cú pháp from vnstock import Quote, khởi tạo với Quote(source="kbs", symbol="VCB"), sau đó gọi history(...) để lấy giá lịch sử.
Ví dụ 1: Lấy giá bằng vnstock
Đoạn code trên chỉ mới làm một việc cơ bản là kéo giá lịch sử. Nhưng trong quant trading, đây là lớp dữ liệu bắt buộc vì sentiment không được đánh giá trong chân không. Ta luôn phải xem tin tức xuất hiện rồi giá phản ứng như thế nào trong ngày T, T+1, T+3, hoặc trong những cửa sổ khác nhau phù hợp với chiến lược.
Ví dụ 2: Tạo một sentiment score đơn giản từ tiêu đề tin
Đương nhiên, đây chưa phải hệ thống sentiment đủ mạnh để giao dịch thật. Nhưng nó cho bạn nhìn rất rõ điều cốt lõi: sentiment trong quant không nhất thiết phải bắt đầu bằng AI phức tạp. Nó bắt đầu bằng việc chuẩn hóa được dữ liệu tin, gắn được tin vào mã cổ phiếu, rồi biến nội dung đó thành một thước đo nhất quán theo thời gian.
Ví dụ 3: Gộp sentiment theo ngày và ghép với giá từ vnstock
Đây là bước mà rất nhiều người bỏ qua, trong khi nó mới là phần biến sentiment thành feature giao dịch.
Ý nghĩa của bước này rất lớn. Từ đây, bạn bắt đầu kiểm định được câu hỏi mà người làm quant thật sự quan tâm: những ngày sentiment dương mạnh có đi kèm lợi suất sau đó tốt hơn không, và hiệu lực của nó nằm ở T+1, T+3 hay T+5. Nếu chỉ đọc tin mà không nối được sang cửa sổ lợi suất tương lai, bạn chưa làm quant, bạn mới chỉ đọc báo có tổ chức.
Ví dụ 4: Biến sentiment thành rule thực dụng hơn
Một rule đơn giản nhưng khá đúng bản chất thị trường là không chỉ nhìn sentiment, mà nhìn sentiment đi cùng phản ứng giá.
Rule này còn rất sơ khai, nhưng nó đã phản ánh đúng tư duy giao dịch hơn việc chỉ thấy tin tốt là mua. Bạn đang buộc mô hình kiểm tra ba chuyện cùng lúc: có đủ nhiều tin để câu chuyện đáng chú ý hay không, sentiment có đủ mạnh hay không, và giá đã chạy quá đà hay chưa.
Trong môi trường của các quỹ định lượng, sentiment thường được dùng theo ba kiểu.
(1) Kiểu thứ nhất là làm lớp kích hoạt nghiên cứu, tức ngày nào một mã có lượng tin tăng đột biến hoặc sentiment đổi dấu mạnh thì hệ thống đưa mã đó vào danh sách theo dõi.
(2) Kiểu thứ hai là làm feature trong mô hình dự báo, nơi sentiment được ghép cùng return quá khứ, volume, volatility, relative strength, beta ngành và nhiều biến khác để dự báo xác suất tăng giảm trong ngắn hạn.
(3) Kiểu thứ ba là làm bộ lọc cho signal kỹ thuật, ví dụ chỉ chấp nhận breakout nếu đi kèm sentiment dương từ các nguồn đủ uy tín.
Cách dùng đúng ở đây là không thần thánh hóa sentiment. Bởi vì tin tốt chưa chắc mua được, tin xấu chưa chắc bán được. Quan trọng nhất là nó xuất hiện ở đâu trong chu kỳ kỳ vọng của thị trường. Nếu thông tin đến quá muộn so với lúc giá đã chạy, thì dù sentiment đẹp đến đâu nó cũng không còn alpha bao nhiêu. Ngược lại, có những thông tin nghe không quá giật gân nhưng xuất hiện đúng lúc thị trường đang chờ một điểm xoay câu chuyện, thì giá trị giao dịch lại rất lớn.
Giới hạn lớn nhất là chất lượng dữ liệu. Nếu bạn lấy tin từ nhiều nơi nhưng không de-duplicate, cùng một câu chuyện sẽ bị tính nhiều lần và làm sentiment trông mạnh giả tạo. Nếu bạn gắn sai ticker, mô hình sẽ học từ dữ liệu nhiễu. Nếu timestamp không chuẩn, bạn sẽ tưởng hệ thống phát hiện tin sớm trong khi thật ra giá đã phản ứng xong. Đây là những lỗi rất kỹ thuật nhưng giết chết hiệu quả thật nhanh hơn mọi sai lầm về mô hình.
Giới hạn thứ hai là ngôn ngữ tài chính rất khó đọc đúng nếu chỉ dùng từ khóa. Cụm “giảm lỗ” khác hoàn toàn “lỗ tăng”, “ký hợp đồng” khác “ký biên bản ghi nhớ”, “tăng doanh thu” chưa chắc là tốt nếu biên lợi nhuận co hẹp mạnh. Vì vậy, sentiment càng muốn hữu ích thì càng phải đi vào ngữ cảnh tài chính, ít nhất là qua event tagging đủ kỹ. Khi đó mô hình mới bớt ngây thơ và gần hơn với cách thị trường thực sự nghĩ.
Giới hạn thứ ba là sentiment mạnh nhất khi đi cùng price confirmation. Thực chiến không phải cuộc thi xem ai đọc tin hay hơn, mà là cuộc chơi kiểm tra xem thông tin có được dòng tiền xác nhận hay không. Một mô hình chỉ đọc tin mà không nhìn phản ứng giá rất dễ mua phải những câu chuyện đẹp trên giấy nhưng không có người trả tiền thật ngoài thị trường để đẩy nó đi tiếp.
0 / 5
Trong lĩnh vực quantitative finance, có một số công cụ mạnh mẽ nhưng ít được chú ý đến so với những mô hình phổ biến như Deep Learning hay SMA crossover. Một trong những công cụ mạnh mẽ đó chính là Mô hình Không gian Trạng thái (State-space models) và Bộ lọc Kalman (Kalman filter). Mặc dù có vẻ phức tạp, nhưng những công cụ này lại cực kỳ hữu ích và mạnh mẽ khi áp dụng vào việc phân tích và dự đoán thị trường tài chính. Mặc dù nghe có vẻ như là những mô hình nguyên thủy, thực tế chúng là những công cụ cực kỳ mạnh mẽ và bền bỉ (robust), đặc biệt trong môi trường thay đổi nhanh chóng của các thị trường tài chính.
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.
Đượ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!