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

30/10/2025

540 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

Danh mục của bạn đang ngầm giả định điều gì về tương lai thị trường?
05/02/2026
33 lượt đọc

Danh mục của bạn đang ngầm giả định điều gì về tương lai thị trường? C

Một danh mục đầu tư, dù được xây dựng cẩn trọng đến đâu, cũng luôn chứa đựng những giả định ngầm về tương lai. Những giả định này hiếm khi được viết ra thành lời, nhưng lại quyết định cách danh mục phản ứng khi thị trường đi vào những trạng thái bất lợi. Vấn đề không nằm ở việc có giả định hay không, mà ở chỗ nhà đầu tư có ý thức được những giả định đó hay không.

Khủng hoảng tài chính không phải thiên nga đen, nó lặp lại theo cấu trúc
05/02/2026
42 lượt đọc

Khủng hoảng tài chính không phải thiên nga đen, nó lặp lại theo cấu trúc C

Trong diễn giải phổ biến về thị trường tài chính, các cuộc khủng hoảng lớn thường được mô tả như những sự kiện hiếm, bất ngờ và không thể dự đoán – thường được gọi chung dưới khái niệm “thiên nga đen”.

Top 5 hành vi khiến nhà đầu tư thua không phải vì thiếu kiến thức, mà vì…
04/02/2026
57 lượt đọc

Top 5 hành vi khiến nhà đầu tư thua không phải vì thiếu kiến thức, mà vì… C

Nhiều người nghĩ thua lỗ đến từ việc chọn sai cổ phiếu, vào sai điểm, hoặc thiếu công cụ phân tích. Nhưng nếu nhìn đủ lâu, bạn sẽ thấy một thứ lặp đi lặp lại ở hầu hết tài khoản: thua lỗ thường xuất phát từ hành vi, không phải từ “thiếu chỉ báo”.

Năm chỉ báo quen thuộc – và cách chúng thực sự được dùng trong chiến lược trend-following
01/02/2026
108 lượt đọc

Năm chỉ báo quen thuộc – và cách chúng thực sự được dùng trong chiến lược trend-following C

Trong trading, “theo xu hướng” (trend-following) là một trong những khái niệm được nhắc tới nhiều nhất, nhưng cũng bị hiểu sai nhiều nhất. Không ít người nghĩ rằng trend-following đơn giản là mua khi giá tăng, bán khi giá giảm, hoặc gắn vài chỉ báo lên chart rồi chờ tín hiệu.

Bollinger Bands là gì, dùng thế nào, và vì sao chiến lược “quen mà sai” xuất hiện rất nhiều?
01/02/2026
99 lượt đọc

Bollinger Bands là gì, dùng thế nào, và vì sao chiến lược “quen mà sai” xuất hiện rất nhiều? C

Bollinger Bands thường được giới thiệu như một công cụ “đơn giản mà hiệu quả”. Giá chạm dải trên thì được coi là quá mua, chạm dải dưới thì được coi là quá bán. Ý tưởng nghe rất tự nhiên: giá đi quá xa mức trung bình thì sẽ quay về. Với nhiều nhà đầu tư mới, đây là một trong những chiến lược đầu tiên họ tiếp cận, vì nó trực quan, dễ hiểu và có vẻ rất hợp lý về mặt logic.

Relative Strength Index (RSI): vì sao chỉ báo quen thuộc này thường bị hiểu sai?
28/01/2026
129 lượt đọc

Relative Strength Index (RSI): vì sao chỉ báo quen thuộc này thường bị hiểu sai? C

Relative Strength Index (RSI) là một trong những chỉ báo kỹ thuật phổ biến nhất trên thị trường tài chính. Với rất nhiều nhà đầu tư, RSI gần như đồng nghĩa với một quy tắc đơn giản: RSI trên 70 là quá mua, dưới 30 là quá bán. Từ đó, RSI được sử dụng như một công cụ bắt đỉnh đáy trực quan, nhanh gọn và “có vẻ hợp lý”.

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!