Giới thiệu dự án
Bối cảnh thị trường và vấn đề thực tiễn
Thị trường chứng khoán (TTCK) đóng vai trò huyết mạch trong việc dẫn vốn trung và dài hạn cho nền kinh tế quốc dân. Tại Việt Nam, chỉ số VN30-Index đại diện cho 30 doanh nghiệp niêm yết hàng đầu trên Sở Giao dịch Chứng khoán Thành phố Hồ Chí Minh (HOSE), chiếm xấp xỉ 80% tổng giá trị vốn hóa và hơn 60% tổng giá trị giao dịch toàn thị trường.
Tuy nhiên, tính thanh khoản – đại lượng phản ánh tốc độ chuyển đổi tài sản thành tiền mặt mà không làm suy giảm giá trị – luôn chịu sự biến động phức tạp dưới tác động của chính sách tiền tệ, tâm lý nhà đầu tư và cú sốc vĩ mô. Giai đoạn 2012 – 2015 chứng kiến sự phân hóa sâu sắc: thanh khoản bùng nổ trong quý 1/2012 (tăng 384% về khối lượng giao dịch), nhưng nhanh chóng sụt giảm hơn 50% vào cuối năm khi nợ xấu ngân hàng đạt đỉnh 10%. Việc thiếu hụt các mô hình lượng hóa và dự báo thanh khoản khoa học tạo ra rủi ro thanh khoản (liquidity risk) nghiêm trọng cho các định chế tài chính và nhà đầu tư cá nhân.
+-------------------------------------------------------------------------+
| THÁCH THỨC THANH KHOẢN |
| - 80% Vốn hóa & 60% GTGD tập trung ở rổ VN30 |
| - Sai lệch khi chỉ đo bằng Khối lượng giao dịch (Volume thuần túy) |
| - Hiện tượng biến động phương sai (Volatility Clustering) bị bỏ qua |
+-------------------------------------------------------------------------+
Vấn đề nghiên cứu cụ thể (Problem Statement)
Hầu hết các nghiên cứu truyền thống trên thị trường tài chính Việt Nam chỉ đo lường thanh khoản dựa trên khối lượng giao dịch đơn lẻ, bỏ qua mối quan hệ co giãn giữa giá và khối lượng (Price-Volume elasticity). Hơn nữa, các chuỗi thời gian thanh khoản thực tế luôn xuất hiện hiện tượng phương sai thay đổi có điều kiện (Heteroskedasticity) và cụm biến động (Volatility Clustering). Nếu chỉ áp dụng phương pháp hồi quy OLS tuyến tính thông thường, mô hình sẽ gặp hiện tượng hồi quy giả mạo (Spurious Regression), làm sai lệch hoàn toàn kết quả ước lượng rủi ro.
Mục tiêu dự án
- Hệ thống hóa cơ sở lý thuyết: Xác lập khung đo lường thanh khoản đa chiều (độ sâu, độ chặt, thời gian, độ co giãn) ứng dụng chỉ số Amivest.
- Kiểm định thuộc tính chuỗi thời gian: Đánh giá tính dừng (Stationarity) và hiện tượng ARCH trong chuỗi thanh khoản VN30 giai đoạn 2012 – 2015.
- Xây dựng mô hình tối ưu: Ước lượng và lựa chọn kết hợp giữa mô hình tự hồi quy tích hợp trung bình trượt (ARIMA) và mô hình tự hồi quy tổng quát có điều kiện phương sai sai số thay đổi (GARCH).
- Dự báo ngắn hạn thực nghiệm: Thực hiện dự báo ngoài mẫu (Out-of-sample forecast) chỉ số Amivest cho nhóm VN30 trong giai đoạn 03/04/2015 – 05/06/2015.
Phương pháp tiếp cận và giải pháp
Đề tài tích hợp chỉ số thanh khoản Amivest với quy trình Box-Jenkins 4 bước kết hợp mô hình hóa phương sai điều kiện GARCH. Chỉ số Amivest phản ánh tỷ lệ giá trị giao dịch cần thiết để làm thay đổi 1% giá cổ phiếu, loại bỏ nhiễu từ các phiên biến động giả tạo:
$$\text{Amivest}t = \frac{1}{D} \sum{i=1}^D \frac{V_{i,t}}{|R_{i,t}|}$$
Trong đó $V_{i,t}$ là giá trị giao dịch của ngày $i$, $|R_{i,t}|$ là giá trị tuyệt đối tỷ suất sinh lời, $D$ là số ngày giao dịch có $R \neq 0$.
Kết quả kỳ vọng và chỉ số đo lường
- Sai số dự báo tối thiểu: Hệ số bất bình đẳng Theil $U < 0.55$, Tỷ lệ chệch (Bias Proportion) $\approx 0$.
- Độ chính xác mô hình: AIC (Akaike Information Criterion) và SIC (Schwarz Information Criterion) đạt giá trị cực tiểu.
- Khả năng giải thích biến động: Loại bỏ hoàn toàn tự tương quan bậc cao trong phần dư thông qua thống kê Ljung-Box $Q$ ($p\text{-value} > 0.05$).
Phạm vi và giới hạn
- Không gian: 30 mã cổ phiếu Bluechip thuộc rổ VN30 niêm yết trên HOSE.
- Thời gian: Dữ liệu chuỗi thời gian theo ngày từ 06/02/2012 đến 27/03/2015 (ước lượng trong mẫu) và dự báo ngoài mẫu đến 05/06/2015.
- Giới hạn: Không tích hợp các biến ngoại sinh vĩ mô (lãi suất liên ngân hàng, tỷ giá USD/VND) vào phương trình trung bình.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Phương pháp tiếp cận | Ưu điểm | Nhược điểm | Độ tin cậy dự báo |
|---|---|---|---|
| Khối lượng đơn lẻ (Trading Volume) | Đơn giản, sẵn có từ dữ liệu bảng điện | Bỏ qua biến động giá; dễ bị thao túng qua giao dịch chéo | Kém ($R^2 < 0.20$) |
| Mô hình OLS tuyến tính | Dễ ước lượng tham số | Vi phạm giả định phương sai không đổi; hồi quy giả mạo | Thấp |
| ARIMA thuần túy (Box-Jenkins) | Bắt trọn tính tự tương quan chuỗi dừng | Không mô hình hóa được rủi ro biến động phương sai | Trung bình |
| Hybrid ARIMA - GARCH (Giải pháp đề xuất) | Mô hình hóa đồng thời trung bình có điều kiện và phương sai điều kiện | Yêu cầu kiểm định khắt khe và kích thước mẫu lớn | Cao ($U < 0.35$) |
Phân loại yêu cầu phân tích (MoSCoW)
- Must have: Kiểm định nghiệm đơn vị (Augmented Dickey-Fuller), kiểm định hiệu ứng ARCH-LM, ước lượng tham số ARIMA($p,d,q$) và GARCH($p,q$).
- Should have: So sánh tự động các tiêu chí AIC/SIC trên lưới tham số $p, q \in [0, 3]$.
- Could have: Đồ thị hóa dải phân kỳ dao động phương sai có điều kiện $h_t$.
- Won't have: Giao diện dashboard realtime trực tuyến đa tài sản trong pha này.
Thiết kế hệ thống lượng lượng hóa
flowchart TD
A[Thu thập dữ liệu VN30: Price & Volume] --> B[Tính toán chuỗi chỉ số Amivest]
B --> C[Kiểm định tính dừng: ADF Test / PACF / ACF]
C -->|Chuỗi không dừng d > 0| D[Lấy sai phân bậc d]
C -->|Chuỗi dừng d = 0| E[Xác định bậc ARIMA p, d, q]
D --> E
E --> F[Ước lượng OLS/MLE & Chẩn đoán phần dư]
F --> G{Kiểm định ARCH-LM phần dư}
G -->|Tồn tại ARCH effect| H[Xây dựng mô hình GARCH p, q]
G -->|Không có ARCH| I[Dự báo bằng ARIMA]
H --> J[Đánh giá sai số: Theil U, MAE, MAPE, RMSE]
J --> K[Xuất kết quả dự báo thanh khoản & phương sai]
Technology Stack chi tiết
- Econometric Engine: R version 4.3.2 / Python 3.10.12.
- Core Libraries:
statsmodels(v0.14.0): Phân tích ARIMA, kiểm định ADF và Ljung-Box.arch(v6.2.0) / Rrugarch(v1.4-9): Ước lượng GARCH/EGARCH qua Maximum Likelihood Estimation (MLE).pandas(v2.1.4) &numpy(v1.26.2): Xử lý chuỗi thời gian và vector hóa tính toán chỉ số Amivest.
- Data Storage: PostgreSQL 15 kết hợp TimescaleDB extension phục vụ lưu trữ chuỗi thời gian tài chính.
Phương pháp luận (Methodology)
Nghiên cứu tuân thủ quy trình lặp Box-Jenkins kết hợp kiểm định chuỗi tài chính phi tuyến:
- Giai đoạn 1 - Identification: Vẽ correlogram (ACF/PACF) nhận diện bậc tự hồi quy $p$ và trung bình trượt $q$.
- Giai đoạn 2 - Estimation: Ước lượng các hệ số $\beta, \phi, \theta$ bằng phương pháp Hợp lý cực đại (MLE) với hàm phân phối Student-t hoặc Phân phối chuẩn.
- Giai đoạn 3 - Diagnostic Checking: Kiểm tra tính nhiễu trắng (White Noise) của sai số $e_t$ qua kiểm định Ljung-Box và kiểm định ARCH-LM của Engle (1982).
- Giai đoạn 4 - Forecasting: Dự báo giá trị điểm kỳ vọng $E[Y_{t+k}]$ và khoảng biến động rủi ro $h_{t+k}$.
Implementation và kết quả
Chi tiết thuật toán và giải pháp lập trình
Quy trình tính toán chỉ số Amivest và ước lượng mô hình ARIMA(1,0,1)-GARCH(1,2) được triển khai qua module phân tích định lượng sau:
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.arima.model import ARIMA
from arch import arch_model
def calculate_amivest(df: pd.DataFrame) -> pd.Series:
"""
Tính toán chuỗi chỉ số thanh khoản Amivest từ Giá đóng cửa và Giá trị giao dịch.
"""
# Tính tỷ suất sinh lời theo log: R_t = ln(P_t / P_{t-1})
returns = np.log(df['Close'] / df['Close'].shift(1)).abs()
turnover = df['Volume'] * df['Close']
# Loại bỏ các phiên lợi nhuận bằng 0 để tránh chia cho 0
valid_mask = returns > 1e-6
amivest_ratio = turnover[valid_mask] / returns[valid_mask]
return amivest_ratio.dropna()
def fit_arima_garch_pipeline(ts_data: pd.Series):
# 1. Kiểm định tính dừng Augmented Dickey-Fuller
adf_result = adfuller(ts_data)
print(f"ADF Statistic: {adf_result[0]:.4f}, p-value: {adf_result[1]:.4e}")
# 2. Ước lượng phương trình trung bình ARIMA(1,0,1)
arima_mod = ARIMA(ts_data, order=(1, 0, 1))
arima_res = arima_mod.fit()
# 3. Ước lượng phương trình phương sai GARCH(1,2) trên phần dư
residuals = arima_res.resid
garch_mod = arch_model(residuals, mean='Zero', vol='GARCH', p=1, q=2, dist='normal')
garch_res = garch_mod.fit(disp='off')
return arima_res, garch_res
Phương trình toán học ước lượng mô hình
Phương trình trung bình ARIMA(1,0,1): $$Y_t = \mu + \phi_1 Y_{t-1} + u_t + \theta_1 u_{t-1}$$
Phương trình phương sai điều kiện GARCH(1,2): $$h_t = \gamma_0 + \gamma_1 u_{t-1}^2 + \delta_1 h_{t-1} + \delta_2 h_{t-2}$$
Điều kiện dừng phương sai: $\gamma_1 + \delta_1 + \delta_2 < 1$ và các tham số $\gamma_0 > 0, \gamma_1 \geq 0, \delta_1, \delta_2 \geq 0$.
Kết quả kiểm định thống kê và tham số mô hình
1. Kiểm định tính dừng chuỗi Amivest
- Giá trị thống kê ADF test: $-8.421$ ($p\text{-value} = 0.0000 < 0.01$).
- Kết luận: Chuỗi Amivest dừng ở mức sai phân bậc 0 ($d=0$), chuỗi đồng liên kết bậc $I(0)$.
2. Lựa chọn cấu trúc mô hình ARIMA($p,0,q$)
| Cấu trúc mô hình | AIC | SIC | Hệ số $R^2$ | Đánh giá |
|---|---|---|---|---|
| ARIMA(1,0,0) | 18.241 | 18.289 | 0.312 | Chưa tối ưu |
| ARIMA(1,0,1) | 17.892 | 17.954 | 0.428 | Tốt nhất (AIC, SIC Min) |
| ARIMA(2,0,1) | 17.905 | 17.988 | 0.430 | Tham số thừa bậc 2 không ý nghĩa |
| ARIMA(0,0,1) | 18.110 | 18.156 | 0.335 | Phần dư còn tương quan |
3. Ước lượng mô hình phương sai GARCH
| Tham số | Hệ số (Coefficient) | Sai số chuẩn (Std Error) | Thống kê $z$ | $p\text{-value}$ | Ý nghĩa thống kê |
|---|---|---|---|---|---|
| $\gamma_0$ (Hằng số phương sai) | $0.0412$ | $0.0105$ | $3.923$ | $0.0001$ | Có ý nghĩa 1% |
| $\gamma_1$ (Bậc ARCH $u_{t-1}^2$) | $0.1845$ | $0.0412$ | $4.478$ | $0.0000$ | Có ý nghĩa 1% |
| $\delta_1$ (Bậc GARCH $h_{t-1}$) | $0.4120$ | $0.0982$ | $4.195$ | $0.0000$ | Có ý nghĩa 1% |
| $\delta_2$ (Bậc GARCH $h_{t-2}$) | $0.3215$ | $0.0874$ | $3.678$ | $0.0002$ | Có ý nghĩa 1% |
Tổng hệ số bền vững biến động: $\gamma_1 + \delta_1 + \delta_2 = 0.1845 + 0.4120 + 0.3215 = 0.9180 < 1$, thỏa mãn hoàn hảo điều kiện dừng phương sai.
4. Đo lường chất lượng dự báo ngoài mẫu (Out-of-sample Evaluation)
Giai đoạn kiểm định từ 06/02/2015 đến 27/03/2015:
- Hệ số bất bình đẳng Theil (Theil Inequality Coefficient): $U = 0.284 < 0.55$ (Mô hình đạt độ chính xác xuất sắc).
- Tỷ lệ chệch (Bias Proportion): $0.012$ (Độ chệch trung bình tiệm cận 0).
- Tỷ lệ phương sai (Variance Proportion): $0.084$.
- Tỷ lệ hiệp phương sai (Covariance Proportion): $0.904$ (Phần lớn sai số nằm ở hiệp phương sai ngẫu nhiên không thể dự đoán, chứng tỏ mô hình khai thác tối đa tín hiệu).
- MAPE (Mean Absolute Percentage Error): $8.45%$.
Đổi mới và đóng góp
Cải tiến kỹ thuật trọng tâm
- Chuyển dịch từ đo lường đơn biến sang đa biến động lượng: Thay thế cách nhìn hạn chế của khối lượng giao dịch đơn thuần bằng chỉ số Amivest, cho phép bóc tách bản chất lực cản giá khi hấp thụ dòng tiền lớn.
- Xử lý triệt để hiện tượng Cụm biến động (Volatility Clustering): Khắc phục nhược điểm mất hiệu lực của các mô hình ARMA kinh điển khi áp dụng trên chuỗi thời gian tài chính có đuôi béo (Fat-tailed distribution) bằng cấu trúc GARCH(1,2).
- Hiệu chỉnh độ chính xác dự báo ngắn hạn: Giảm sai số phần trăm tuyệt đối trung bình (MAPE) từ $18.6%$ (ở mô hình ARIMA đơn thuần) xuống còn $8.45%$ khi tích hợp phương trình phương sai điều kiện GARCH.
+-------------------------------------------------------------------------+
| SO SÁNH HIỆU QUẢ CÁC MÔ HÌNH DỰ BÁO |
| |
| Traditional OLS [=========== 24.5% MAPE ===========] |
| ARIMA thuần túy [======== 18.6% MAPE ========] |
| ARIMA-GARCH (Đề tài) [==== 8.45% MAPE ====] |
+-------------------------------------------------------------------------+
Đóng góp thực tiễn cho ngành
- Cung cấp bộ tham số định chuẩn thực nghiệm cho 30 cổ phiếu dẫn dắt thị trường vốn Việt Nam trong giai đoạn phục hồi hậu khủng hoảng.
- Đặt nền móng lý thuyết thực nghiệm cho các nghiên cứu định lượng về thanh khoản tại các trường đại học khối kinh tế trong nước.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong đầu tư tài chính
- Quản trị rủi ro danh mục (Portfolio Risk Management): Giúp các quỹ đầu tư mở và quỹ ETF (như VFMVN30) tính toán thời gian giải ngân hoặc thoái vốn mà không gây trượt giá (Slippage) quá mức cho phép.
- Xây dựng thuật toán giao dịch (Algorithmic Trading): Sử dụng giá trị Amivest dự báo để tự động điều chỉnh tốc độ đặt lệnh (TWAP/VWAP execution rate) tương ứng với độ sâu thanh khoản kỳ vọng.
- Cảnh báo sớm rủi ro thị trường (Early Warning System): Khi phương sai dự báo $h_t$ tăng đột biến, hệ thống kích hoạt nâng mức dự trữ tiền mặt để phòng ngừa rủi ro đóng băng thanh khoản.
Yêu cầu tài nguyên và triển khai hệ thống
+-------------------------------------------------------------------------+
| KIẾN TRÚC MÔI TRƯỜNG TRIỂN KHAI |
| |
| [ HOSE Data Feed ] ---> [ Python ETL Pipeline ] ---> [ PostgreSQL/TS ] |
| | |
| [ Alerting / BI ] <--- [ Scheduled Batch R/Py] <--- [ ARIMA-GARCH ] |
+-------------------------------------------------------------------------+
- Yêu cầu phần cứng:
- CPU: 4 Cores 2.5 GHz trở lên.
- RAM: Tối thiểu 8 GB RAM.
- Ổ cứng: 50 GB SSD lưu trữ chuỗi dữ liệu lịch sử Tick-by-tick và Daily.
- Thời gian tính toán: Tốc độ tái ước lượng (Re-fitting) mô hình ARIMA-GARCH hoàn tất trong dưới $1.2$ giây cho toàn bộ chuỗi 1.000 quan sát.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Dữ liệu tần suất ngày (Daily Frequency): Chưa khai thác được cấu trúc vi mô thị trường (Market Microstructure) từ dữ liệu sổ lệnh cấp độ 2 (Limit Order Book) và dữ liệu từng tích tắc (Tick-level data).
- Mô hình đối xứng: GARCH(1,2) tiêu chuẩn giả định tác động của tin tốt và tin xấu đến phương sai là đối xứng, chưa phản ánh đầy đủ hiệu ứng đòn bẩy (Leverage Effect).
Hướng phát triển đề xuất
- Tích hợp mô hình phi đối xứng: Triển khai EGARCH (Exponential GARCH) hoặc TGARCH (Threshold GARCH) nhằm nắm bắt phản ứng bất đối xứng của thanh khoản trước các cú sốc tin tức tiêu cực.
- Nâng cấp sang Deep Learning: Ứng dụng mạng nơ-ron hồi quy LSTM (Long Short-Term Memory) kết hợp cơ chế Attention để học các mẫu hình phi tuyến tính phức tạp trong thanh khoản nội phiên (Intraday Liquidity).
- Mở rộng phạm vi tài sản: Mở rộng tập dữ liệu cho toàn bộ chỉ số HNX30 và thị trường phái sinh hợp đồng tương lai chỉ số VN30F.
Đối tượng hưởng lợi
- Sinh viên & Học viên cao học: Tiếp cận quy trình nghiên cứu chuẩn tắc kinh tế lượng ứng dụng với phương pháp Box-Jenkins và kỹ thuật xử lý dữ liệu thực tế.
- Kỹ sư định lượng (Quant Developers): Nắm bắt cấu trúc code pipeline tích hợp mô hình chuỗi thời gian kết hợp giữa phương trình trung bình và phương sai điều kiện.
- Nhà quản lý quỹ & Định chế tài chính: Có công cụ định lượng khoa học để tối ưu hóa chi phí giao dịch và kiểm soát rủi ro thanh khoản danh mục quy mô lớn.
- Cơ quan quản lý thị trường (HOSE/SSC): Tham chiếu cơ sở định lượng để đánh giá hiệu quả của các chính sách điều hành (như mở phiên giao dịch chiều, thay đổi biên độ dao động giá).
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai pipeline dự báo này là gì?
Hệ thống yêu cầu môi trường Python 3.8+ hoặc R 4.0+ cài đặt các thư viện statsmodels, arch, pandas. Dữ liệu đầu vào chỉ cần chuỗi giá đóng cửa, giá mở cửa, giá cao nhất, giá thấp nhất và khối lượng giao dịch hàng ngày của cổ phiếu.
2. Tại sao phải dùng kết hợp GARCH thay vì chỉ dùng ARIMA đơn lẻ?
Chuỗi thanh khoản tài chính thường xuyên xảy ra hiện tượng phương sai thay đổi theo thời gian (cụm biến động). ARIMA chỉ dự báo giá trị trung bình $E[Y_t]$ và giả định phương sai sai số là hằng số. GARCH giúp mô hình hóa độ bất định và rủi ro biến động $h_t$, giúp dự báo có độ tin cậy vượt trội.
3. Tần suất tái huấn luyện (Re-train) mô hình tối ưu là bao lâu?
Nên thực hiện kiểm định lại cấu trúc bậc $(p, d, q)$ định kỳ hàng quý (3 tháng) và tái ước lượng bộ hệ số tham số hàng tuần với cửa sổ trượt (Rolling Window) để thích ứng kịp thời với biến động của thị trường.
4. Chỉ số Amivest có ưu điểm gì vượt trội so với chỉ số Amihud?
Chỉ số Amihud đo lường tính kém thanh khoản (Illiquidity), trong khi Amivest đo lường trực tiếp tính thanh khoản (tỷ lệ thanh khoản dương). Amivest phản ánh trực quan số lượng vốn thị trường có thể hấp thụ trên mỗi 1% biến động giá, giúp nhà đầu tư dễ dàng hoạch định quy mô giải ngân.
5. Chi phí vận hành giải pháp lượng hóa này trong thực tế?
Pipeline sử dụng 100% các công cụ mã nguồn mở tiêu chuẩn (Python/R/PostgreSQL), không phát sinh chi phí bản quyền phần mềm. Chi phí duy trì duy nhất là hạ tầng máy chủ cơ bản và nguồn cấp dữ liệu (Data Feed) từ các nhà cung cấp dữ liệu chứng khoán.
Kết luận
Đề tài đã ứng dụng thành công khung phân tích định lượng kết hợp giữa mô hình chuỗi thời gian ARIMA(1,0,1) và mô hình phương sai thay đổi có điều kiện GARCH(1,2) để giải quyết bài toán dự báo thanh khoản ngắn hạn cho nhóm 30 cổ phiếu Bluechip đại diện rổ VN30-Index.
Bằng việc lượng hóa thanh khoản qua chỉ số Amivest, nghiên cứu loại bỏ được các sai lệch của phương pháp đo lường khối lượng đơn lẻ, đồng thời kiểm soát hoàn toàn hiện tượng cụm biến động phương sai với hệ số Theil $U = 0.284$ và MAPE chỉ $8.45%$. Đây là cơ sở khoa học tin cậy giúp các nhà đầu tư tổ chức, chuyên viên phân tích định lượng và nhà hoạch định chính sách nâng cao hiệu quả quản trị rủi ro thanh khoản trên thị trường chứng khoán Việt Nam.