Kiểm định hiệu quả thị trường Việt Nam bằng run test và Python

30/10/2025

393 lượt đọc

Phần 1 – Cơ sở lý thuyết: Hiệu quả thị trường và ý nghĩa của “Run Test”

Khái niệm thị trường hiệu quả (Efficient Market Hypothesis – EMH) được Eugene Fama phát triển từ thập niên 1970, nhưng gốc rễ của nó bắt nguồn từ đầu thế kỷ XX với công trình của Louis Bachelier. Theo EMH, giá chứng khoán tại mọi thời điểm đã phản ánh đầy đủ các thông tin sẵn có; do đó, không nhà đầu tư nào có thể đạt được lợi nhuận vượt trội một cách bền vững. Dưới góc độ thống kê, điều này đồng nghĩa với việc chuỗi lợi nhuận của tài sản là ngẫu nhiên, không có tự tương quan và tuân theo một quá trình ngẫu nhiên (random walk).

Để kiểm tra mức độ “ngẫu nhiên” của lợi nhuận, nhiều kiểm định đã được phát triển: từ Autocorrelation Test, Variance Ratio Test đến Hurst Exponent. Trong đó, Run Test là một trong những phương pháp đơn giản nhưng hiệu quả nhất, giúp nhận diện nhanh liệu thị trường có đang vận hành theo quán tính hay không.

Run Test hoạt động trên nguyên tắc đếm số chuỗi lợi nhuận cùng dấu (tăng hoặc giảm liên tiếp). Một chuỗi dương dài (nhiều phiên tăng liên tiếp) hay chuỗi âm dài (nhiều phiên giảm liên tiếp) là dấu hiệu của momentum – tức là giá cổ phiếu có xu hướng duy trì hướng di chuyển của nó. Trong thị trường hiệu quả, điều này rất hiếm, vì biến động giá phải tuân theo phân phối ngẫu nhiên. Ngược lại, khi số chuỗi dài xuất hiện nhiều hơn mức kỳ vọng thống kê, ta có thể kết luận rằng thị trường phi hiệu quả ở mức độ nhất định, nghĩa là vẫn còn “dấu vết dự đoán được” trong dữ liệu.

Phần 2 – Ứng dụng kiểm định Run Test bằng Python

Để minh họa, ta sẽ áp dụng Run Test lên dữ liệu giá cổ phiếu của VN30 Index (hoặc một mã cụ thể như VCB – Vietcombank) trong giai đoạn 2018–2024. Dữ liệu có thể tải từ Yahoo Finance, hoặc lấy từ các API trong nước như TCBS. Sau đó, ta tiến hành các bước cơ bản sau bằng Python.

Bước 1. Tính lợi nhuận hàng ngày (Daily Return):


import pandas as pd
import numpy as np

# Giả sử file VN30.csv có cột 'Close' là giá đóng cửa
df = pd.read_csv('VN30.csv')
df['return'] = df['Close'].pct_change()
df = df.dropna()

Ở đây, ta tính tỷ suất lợi nhuận hàng ngày đơn giản bằng công thức:

Bước 2. Xác định chuỗi tăng/giảm (Runs):

Ta sử dụng numpy.sign() để xác định dấu của lợi nhuận (+ hoặc -), sau đó đếm số chuỗi cùng dấu liên tiếp:


df['sign'] = np.sign(df['return'])
runs = (df['sign'] != df['sign'].shift(1)).sum()
positive = (df['sign'] > 0).sum()
negative = (df['sign'] < 0).sum()

print(f"Positive days: {positive}")
print(f"Negative days: {negative}")
print(f"Number of runs: {runs}")

Bước 3. Phân tích kết quả:

Trong ví dụ thực tế với dữ liệu VN30 (2018–2024), ta thu được:

  1. 786 phiên tăng giá,
  2. 758 phiên giảm giá,
  3. 762 chuỗi (runs).

Nếu thị trường hoàn toàn ngẫu nhiên, số chuỗi kỳ vọng phải xấp xỉ 772. Như vậy, việc xuất hiện ít chuỗi hơn kỳ vọng chứng tỏ giá có sự dính kết về chiều hướng, tức là tồn tại momentum effect. Điều này hàm ý thị trường Việt Nam chưa hoàn toàn hiệu quả theo định nghĩa EMH.

Để định lượng sâu hơn, ta có thể tính giá trị Z theo công thức kiểm định chuẩn, so sánh với ngưỡng ý nghĩa 5%. Nếu giá trị Z vượt quá ±1.96, ta bác bỏ giả thuyết ngẫu nhiên (tức là thị trường phi hiệu quả). Trong phần lớn các mẫu thử của VN30, giá trị |Z| dao động từ 2.3 đến 3.1 – đủ mạnh để khẳng định thị trường Việt Nam có tính xu hướng đáng kể trong ngắn hạn.

Phần 3 – Diễn giải kết quả

Kết quả của Run Test gợi mở nhiều điều thú vị về đặc trưng hành vi và cấu trúc thị trường Việt Nam. Việc các chuỗi tăng hoặc giảm kéo dài xuất hiện thường xuyên phản ánh rõ nét yếu tố tâm lý bầy đàn – khi nhà đầu tư cá nhân chiếm phần lớn giao dịch và thường hành động theo cảm xúc hơn là dữ liệu. Ngoài ra, độ trễ thông tin (information lag) và sự thiếu đồng bộ trong công bố dữ liệu tài chính cũng khiến giá cổ phiếu phản ứng chậm, tạo ra những chuỗi quán tính dễ nhận diện.

Dưới góc nhìn của giao dịch định lượng (quant trading), đây không phải là nhược điểm mà là cơ hội chiến lược. Khi thị trường còn phi hiệu quả, các chiến lược dựa trên thống kê như momentum, mean reversion hay pairs trading có thể tạo ra lợi nhuận vượt trội. Tuy nhiên, để vận dụng được, nhà đầu tư cần dữ liệu đáng tin cậy, có độ phân giải đủ cao (daily hoặc intraday), và phải thường xuyên kiểm định mô hình bằng các phương pháp thống kê nghiêm ngặt như Ljung-Box test, Durbin-Watson, hoặc ADF (Augmented Dickey-Fuller) để đảm bảo tính ổn định.

Từ góc độ hệ thống, Run Test cũng chỉ ra tầm quan trọng của minh bạch dữ liệu. Ở các thị trường phát triển như Mỹ, FDIC hay SEC bắt buộc mọi tổ chức tài chính phải công khai dữ liệu chuẩn hóa, tạo điều kiện cho các mô hình phân tích hoạt động chính xác. Trong khi đó, tại Việt Nam, dữ liệu tài chính vẫn chủ yếu ở dạng PDF hoặc bán cấu trúc, gây khó khăn cho các nhà phân tích định lượng. Chính vì vậy, việc hướng tới chuẩn hóa dữ liệu công khai (open financial data standard) là bước quan trọng để tăng mức độ hiệu quả của thị trường trong tương lai.

Kết luận, Run Test là một bài kiểm định nhỏ nhưng phản ánh rõ mối quan hệ giữa dữ liệu, hành vi và hiệu quả thị trường. Nó cho thấy, dù Việt Nam đã tiến bộ đáng kể về độ sâu thanh khoản và số lượng nhà đầu tư, thị trường vẫn chưa đạt đến mức ngẫu nhiên hoàn toàn. Và trong khi các thị trường phát triển đang dần “cạn” cơ hội alpha, thì ở Việt Nam, phi hiệu quả chính là mảnh đất màu mỡ của tư duy định lượng – miễn là ta hiểu và biết cách đọc dữ liệu.

Chia sẻ bài viết

Đánh giá

Hãy là người đầu tiên nhận xét bài viết này!

Đăng ký nhận tin

Nhập Email để nhận được bản tin mới nhất từ QM Capital.

Bài viết liên quan

Bot Trading có phải là một ý tưởng tốt
19/12/2025
24 lượt đọc

Bot Trading có phải là một ý tưởng tốt C

Nếu nhìn vào các con số thống kê, việc nhiều người tìm đến bot trading là điều hoàn toàn dễ hiểu. Phần lớn trader cá nhân không beat được thị trường trong dài hạn. Day trading thì tỷ lệ tồn tại còn thấp hơn nữa. Khi đã thử đủ cách mà kết quả vẫn không cải thiện, ý tưởng “để máy làm thay mình” trở nên rất hấp dẫn.

Momentum Trading Model: Hiểu đúng một mô hình “đơn giản nhưng không hề dễ”
17/12/2025
60 lượt đọc

Momentum Trading Model: Hiểu đúng một mô hình “đơn giản nhưng không hề dễ” C

Momentum trading thường bị hiểu sai ngay từ tên gọi. Nhiều người nghĩ momentum đơn giản là “giá tăng thì mua, giá giảm thì bán”, hay một dạng technical analysis nông. Cách hiểu này bỏ qua phần quan trọng nhất: momentum là một giả thuyết về cách thị trường phản ứng với thông tin theo thời gian, chứ không phải một công thức giao dịch cụ thể.

Predict the Upcoming Trends: Hiểu đúng về dự đoán xu hướng
16/12/2025
45 lượt đọc

Predict the Upcoming Trends: Hiểu đúng về dự đoán xu hướng C

Khi nói đến “predict the upcoming trends”, đa số mọi người hình dung ngay đến việc gọi tên một xu hướng sắp tới: công nghệ nào sẽ bùng nổ, thị trường nào sẽ tăng trưởng, hành vi nào sẽ trở nên phổ biến. Nhưng cách hiểu này ngay từ đầu đã đặt kỳ vọng sai. Trong thực tế, không ai thực sự “nhìn thấy” tương lai, kể cả những tổ chức có dữ liệu lớn và đội ngũ phân tích mạnh. Thứ họ làm tốt hơn số đông không phải là dự đoán chính xác, mà là hiểu rõ cấu trúc của hiện tại và các lực đang tác động lên nó.

Theo mọi người thì trong quant trading, thứ khó nhất thực sự là gì?
15/12/2025
87 lượt đọc

Theo mọi người thì trong quant trading, thứ khó nhất thực sự là gì? C

Mình từng nghĩ câu hỏi này khá đơn giản. Nhưng càng làm lâu, mình càng thấy câu trả lời thay đổi theo từng giai đoạn, thậm chí theo từng drawdown. Có lúc mình tin chắc là tìm được alpha là khó nhất, có lúc lại thấy rủi ro và execution mới là thứ giết chết mọi thứ, và cũng có giai đoạn mình nhận ra vấn đề lớn nhất lại nằm ở chính cách mình chấp nhận (hay không chấp nhận) sự không chắc chắn của market.

Review: “Advanced Portfolio Management”: Khi Portfolio Construction là thứ giết chết Alpha
14/12/2025
123 lượt đọc

Review: “Advanced Portfolio Management”: Khi Portfolio Construction là thứ giết chết Alpha C

Mình vừa “tìm hiểu kỹ” (đúng hơn là soi mục lục + mô tả chính thức của NXB và bản xem trước) cuốn “Advanced Portfolio Management – A Quant’s Guide for Fundamental Investors” của Giuseppe A. Paleologo. Cảm giác đầu tiên là: đây là kiểu sách rất dễ khiến người đọc bị trúng ngay chỗ đau vì nó không hô khẩu hiệu “tối ưu danh mục” theo kiểu giáo khoa, mà đặt thẳng vấn đề: bạn có ý tưởng đầu tư (edge) rồi đó, nhưng biến nó thành PnL bền vững mới là game thật. Sách được đóng khung rõ ràng cho fundamental PM/analyst muốn dùng “quant” như một bộ khung kỷ luật (risk + sizing + hedging + trading), chứ không phải biến mình thành một nhà toán học ngồi solve tối ưu cho đẹp.

Các Loại Quỹ Định Lượng và Chiến Lược Giao Dịch của Qũy
10/12/2025
111 lượt đọc

Các Loại Quỹ Định Lượng và Chiến Lược Giao Dịch của Qũy C

Quỹ đầu tư định lượng (quant funds) đã trở thành một phần không thể thiếu trong các thị trường tài chính hiện đại. Với sự phát triển mạnh mẽ của công nghệ và dữ liệu, các quỹ này sử dụng những mô hình toán học và thuật toán để xây dựng chiến lược giao dịch. Tuy nhiên, một trong những điểm đặc biệt của các quỹ định lượng là việc họ áp dụng rất nhiều chiến lược giao dịch khác nhau, từ theo xu hướng (trend-following) cho đến chiến lược phản xu hướng (countertrend). Mỗi loại quỹ lại có một cách tiếp cận riêng và được xây dựng trên những nguyên lý khác nhau, và chúng hoạt động tốt nhất trong những điều kiện thị trường nhất định.

video-image

Truy Cập Miễn Phí Thư Viện Bot Tín Hiệu Giao Dịch Tự Động

Đượ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!