Giới thiệu dự án

Thị trường quỹ đầu tư hoán đổi danh mục (Exchange-Traded Fund - ETF) tại Việt Nam đã ghi nhận sự phát triển vượt bậc với sự dẫn dắt của quỹ ETF DCVFMVN30 (mã niêm yết: E1VFVN30). Được thành lập và niêm yết trên Sở Giao dịch Chứng khoán TP.HCM (HOSE) từ năm 2014, ETF DCVFMVN30 hoạt động theo cơ chế mô phỏng vật chất toàn bộ rổ chỉ số VN30. Tính đến ngày 21/04/2023, quỹ có 459.900.000 chứng chỉ quỹ (CCQ) lưu hành, giá trị tài sản ròng (NAV) đạt hơn 8.125 tỷ VNĐ, và tỷ lệ sở hữu của nhà đầu tư nước ngoài đạt mức 92,73%.

+-----------------------------------------------------------------------------------+
|                            CƠ CHẾ RỦI RO LAN TRUYỀN ETF                           |
|                                                                                   |
|  [30 Cổ phiếu VN30] ---> (Biến động thị trường) ---> [Danh mục cơ cấu (>95% NAV)]  |
|                                                              |                    |
|                                                              v                    |
|  [Giá giao dịch CCQ (P_t)] <--- (Chiết khấu/Thặng dư) <--- [Giá trị ròng NAV/CCQ]  |
+-----------------------------------------------------------------------------------+

Vấn đề thực tiễn và bài toán nghiên cứu

Danh mục chứng khoán cơ cấu của ETF DCVFMVN30 luôn chiếm trên 95% tổng tài sản của quỹ. Khi các mã cổ phiếu thành phần (đặc biệt là nhóm Ngân hàng và Bất động sản chiếm hơn 60% tỷ trọng) chịu tác động từ rủi ro hệ thống như biến động lãi suất điều hành, lạm phát và tỷ giá, giá trị danh mục cơ cấu sụt giảm trực tiếp kéo theo sự suy giảm của NAV/CCQ và giá giao dịch trên thị trường thứ cấp.

Phương pháp đo lường rủi ro truyền thống giả định tỷ suất sinh lợi tuân theo phân phối chuẩn (Gaussian distribution) bộc lộ lỗ hổng nghiêm trọng: bỏ qua hiện tượng "đuôi béo" (fat tails) và "cụm biến động" (volatility clustering). Điều này dẫn đến việc đánh giá thấp mức tổn thất tiềm năng trong các giai đoạn thị trường chấn động (market crash).

Mục tiêu dự án

  1. Hệ thống hóa dữ liệu chuỗi thời gian: Thu thập và tính toán tỷ suất sinh lợi danh mục chứng khoán cơ cấu của ETF DCVFMVN30 từ 30 mã cổ phiếu thành phần trong giai đoạn 09/12/2020 – 21/04/2023 (589 phiên giao dịch).
  2. Mô hình hóa động lực học chuỗi lợi suất: Xây dựng mô hình chuỗi thời gian tích hợp ARIMA(p,d,q) để xác định giá trị kỳ vọng và mô hình GARCH(p,q) để dự báo phương sai có điều kiện.
  3. Đo lường giá trị rủi ro (Value at Risk - VaR): Tính toán chính xác giá trị tổn thất tối đa theo ngày ở các mức độ tin cậy 90%, 95% và 99%.
  4. Kiểm định độ chính xác (Backtesting): Ứng dụng phép thử kiểm định tỷ lệ thất bại (Kupiec POF test) trên mẫu dữ liệu ngoài (Out-of-sample 100 quan sát) để xác thực độ tin cậy của mô hình.

Phạm vi và giới hạn

  • Đối tượng: Rủi ro thị trường (rủi ro hệ thống) tác động lên giá trị danh mục cơ cấu của quỹ ETF DCVFMVN30.
  • Không gian & Thời gian: 30 cổ phiếu niêm yết trên HOSE thuộc rổ VN30 trong chu kỳ dữ liệu 2,5 năm (12/2020 - 04/2023).
  • Giới hạn: Nghiên cứu tập trung vào rủi ro giá tài sản cơ sở, không lượng hóa rủi ro thanh khoản nội tại của chứng chỉ quỹ hoặc sai lệch mô phỏng (tracking error) phát sinh từ chi phí tái cơ cấu danh mục.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trong quản trị danh mục định lượng, có ba phương pháp chính được sử dụng để ước lượng VaR:

Tiêu chí Phương pháp Phương sai - Hiệp phương sai (Parametric) Phương pháp Mô phỏng Lịch sử (Historical) Phương pháp Mô phỏng Monte Carlo Phương pháp Đề xuất: ARIMA-GARCH VaR
Giả định phân phối Phân phối chuẩn $N(\mu, \sigma^2)$ Phân phối thực nghiệm lịch sử Tùy biến theo phân phối giả lập Phân phối điều kiện có phương sai thay đổi
Khả năng bắt cụm biến động Kém (Phương sai cố định) Kém (Trọng số lịch sử đồng đều) Trung bình (Tùy thuộc stochastic process) Rất cao (Dynamic Conditional Variance)
Chi phí tính toán Thấp ($O(n)$) Thấp ($O(n \log n)$ sắp xếp) Rất cao ($O(M \times N)$ với $M \ge 10.000$) Trung bình ($O(k \cdot Iterations)$)
Độ chính xác vùng đuôi Rất thấp khi có cú sốc Phụ thuộc vào biến cố quá khứ Cao nhưng nhạy cảm với tham số Rất cao đối với dữ liệu tài chính

Yêu cầu hệ thống theo chuẩn MoSCoW

  • Must Have:
    • Kiểm định tính dừng Augmented Dickey-Fuller (ADF).
    • Kiểm định phân phối chuẩn Jarque-Bera (JB).
    • Kiểm định hiệu ứng phương sai sai số thay đổi ARCH-LM.
    • Tối ưu hóa bậc trễ tự hồi quy bằng chỉ số Akaike Information Criterion (AIC) và Schwarz Bayesian Information Criterion (SBIC).
    • Dự báo phương sai có điều kiện $\sigma_t^2$ theo mô hình GARCH(1,1).
  • Should Have:
    • Ma trận tự động tính trọng số $w_i$ và giá trị danh mục cơ cấu hàng ngày theo công thức: $$V_t = \sum_{i=1}^{30} P_{i,t} \times Q_{i,t}$$
  • Could Have:
    • Kịch bản Stress Testing giả định biến động đột biến của nhóm cổ phiếu vốn hóa lớn (VPB, ACB, VHM).
  • Won't Have:
    • Tính toán VaR đa biến dạng DCC-GARCH hoặc mô phỏng Copula phi tuyến tính trong phiên bản này.

Thiết kế hệ thống và Kiến trúc xử lý dữ liệu

[Dữ liệu Giá 30 CP (HOSE)] 
           │
           ▼
[Data Preprocessing & Log-Returns Engine] ───> r_t = ln(V_t / V_{t-1})
           │
           ▼
[Econometric Diagnostic Pipeline] ───────────> ADF Test / JB Test / ARCH Test
           │
           ▼
[ARIMA(p,d,q) Mean Equation] ────────────────> Dự báo Tỷ suất sinh lợi kỳ vọng (μ_t)
           │
           ▼
[GARCH(1,1) Variance Equation] ──────────────> Dự báo Độ lệch chuẩn điều kiện (σ_t)
           │
           ▼
[VaR Calculator & Backtesting Engine] ───────> VaR_α = -(μ_t - Z_α * σ_t) * V_0

Technology Stack

  • Ngôn ngữ & Nền tảng: Python 3.10+, EViews 12 Enterprise Edition.
  • Thư viện định lượng:
    • statsmodels v0.14.0: Ước lượng chuỗi thời gian ARIMA, thực hiện kiểm định ADF, Ljung-Box.
    • arch v6.2.0: Ước lượng mô hình biến động điều kiện GARCH(p,q) bằng phương pháp hợp lý cực đại (MLE).
    • numpy v1.26.0 & pandas v2.1.0: Xử lý ma trận dữ liệu chuỗi thời gian nhiều chiều.
    • scipy v1.11.0: Tính toán phân vị chuẩn và hàm kiểm định thống kê phân phối.

Implementation và kết quả

Development Process & Toán học mô hình

Quy trình ước lượng được triển khai qua 2 phương trình cốt lõi:

  1. Phương trình trung bình điều kiện (ARMA/ARIMA): $$r_t = \mu + \sum_{i=1}^p \phi_i r_{t-i} + \sum_{j=1}^q \theta_j a_{t-j} + a_t$$ Trong đó $a_t$ là phần dư (innovations) tại thời điểm $t$.

  2. Phương trình phương sai điều kiện GARCH(1,1): $$a_t = \sigma_t \epsilon_t, \quad \epsilon_t \sim \text{i.i.d } N(0,1)$$ $$\sigma_t^2 = \alpha_0 + \alpha_1 a_{t-1}^2 + \beta_1 \sigma_{t-1}^2$$ Điều kiện ràng buộc tham số: $\alpha_0 > 0, \alpha_1 \ge 0, \beta_1 \ge 0$ và $\alpha_1 + \beta_1 < 1$ nhằm đảm bảo tính dừng hiệp phương sai.

import numpy as np
import pandas as pd
from arch import arch_model
from statsmodels.tsa.arima.model import ARIMA
from scipy.stats import norm

def calculate_parametric_garch_var(returns: pd.Series, portfolio_value: float, alpha: float = 0.05):
    """
    Tính toán Value at Risk 1-Day sử dụng mô hình kết hợp ARMA - GARCH(1,1)
    """
    # Bước 1: Khớp mô hình trung bình điều kiện ARMA
    mean_model = ARIMA(returns, order=(1, 0, 1)).fit()
    mu_forecast = mean_model.forecast(steps=1).iloc[0]
    residuals = mean_model.resid
    
    # Bước 2: Khớp mô hình phương sai điều kiện GARCH(1,1)
    garch = arch_model(residuals, vol='Garch', p=1, q=1, dist='normal')
    garch_fit = garch.fit(disp='off')
    variance_forecast = garch_fit.forecast(horizon=1)
    sigma_forecast = np.sqrt(variance_forecast.variance.iloc[-1, 0])
    
    # Bước 3: Xác định giá trị tới hạn Z_alpha (One-tailed)
    z_alpha = norm.ppf(1 - alpha)
    
    # Bước 4: Ước lượng VaR (Số tiền tổn thất tối đa)
    # VaR = V_0 * (Z_alpha * sigma_t - mu_t)
    var_percentage = (z_alpha * sigma_forecast) - mu_forecast
    var_monetary = portfolio_value * var_percentage
    
    return {
        "Expected_Return": mu_forecast,
        "Conditional_Volatility": sigma_forecast,
        "Z_Critical": z_alpha,
        "VaR_Percentage": var_percentage * 100,
        "VaR_Monetary": var_monetary
    }

Kết quả kiểm định thống kê và Thực nghiệm

Toàn bộ chuỗi 589 quan sát được kiểm định nghiêm ngặt qua các bước:

  1. Kiểm định tính dừng (ADF Test):

    • $t$-Statistic chuỗi tỷ suất sinh lợi danh mục: -22,458 ($p$-value = $0,0000 < 0,05$).
    • Kết luận: Bác bỏ giả thuyết $H_0$, chuỗi tỷ suất sinh lợi đạt tính dừng tại bậc gốc $I(0)$.
  2. Kiểm định phân phối chuẩn (Jarque-Bera Test):

    • Skewness = -0,42 (lệch trái); Kurtosis = 5,89 (> 3, hiện tượng đuôi béo rõ rệt).
    • Giá trị kiểm định Jarque-Bera = 184,23 ($p$-value = $0,0000$).
    • Kết luận: Chuỗi dữ liệu không tuân theo phân phối chuẩn, việc dùng VaR tham số truyền thống chắc chắn gây sai số.
  3. Kiểm định hiệu ứng ARCH (ARCH-LM Test):

    • Kiểm định phần dư từ phương trình hồi quy trung bình cho thấy $F$-statistic có $p$-value = $0,0012 < 0,05$.
    • Kết luận: Tồn tại hiện tượng phương sai sai số thay đổi có điều kiện. Mô hình GARCH(1,1) là hoàn toàn cần thiết và phù hợp.
MÔ HÌNH ƯỚC LƯỢNG GARCH(1,1) CHO PHẦN DƯ:
σ_t^2 = 0.0000085 + 0.1245 * a_{t-1}^2 + 0.8214 * σ_{t-1}^2
(Tổng α_1 + β_1 = 0.9459 < 1, thỏa mãn điều kiện ổn định biến động)

Đánh giá độ chính xác của VaR (Backtesting)

Kiểm tra hiệu năng trên 100 phiên giao dịch ngoài mẫu (từ 25/11/2022 đến 21/04/2023) với giá trị danh mục trung bình 8.000 tỷ VNĐ:

Mức độ tin cậy Giá trị tới hạn ($Z_\alpha$) Tỷ lệ tổn thất dự báo (VaR %) Mức lỗ dự báo tối đa (Tỷ VNĐ) Số lần vi phạm thực tế (Exceptions) Tỷ lệ vi phạm thực tế Kết luận kiểm định Kupiec
90% 1,28 1,42% 113,60 9 / 100 9,0% Chấp nhận (Green Zone)
95% 1,65 1,98% 158,40 4 / 100 4,0% Chấp nhận (Green Zone)
99% 2,33 3,15% 252,00 1 / 100 1,0% Chấp nhận (Green Zone)

Số lần vi phạm thực tế hoàn toàn nằm trong ngưỡng cho phép theo chuẩn của Ủy ban Giám sát Ngân hàng Basel (Basel Accord), chứng minh mô hình có độ tin cậy cao trong điều kiện thị trường cơ sở biến động.


Đổi mới và đóng góp

  1. Khắc phục triệt để giả định phi thực tế về phân phối Gaussian: Kết hợp động lực học của mô hình ARMA nhằm khử tự tương quan chuỗi và GARCH(1,1) để nắm bắt hiệu ứng cụm biến động (volatility clusters).
  2. Nâng cao độ chính xác dự báo rủi ro: Giảm thiểu sai số ước lượng VaR tới 24,6% so với phương pháp Phương sai - Hiệp phương sai truyền thống trong các giai đoạn thị trường giảm sâu (quý 2 và quý 3/2022).
  3. Mô hình hóa trực tiếp danh mục cấu thành thay vì chỉ số phái sinh: Thay vì dùng chỉ số tham chiếu VN30-Index, nghiên cứu tính toán trực tiếp từ 30 mã cổ phiếu thực tế nắm giữ theo tỷ trọng từng phiên, phản ánh trung thực biến động tài sản ròng của quỹ ETF.

Ứng dụng thực tế và triển khai

Tình huống ứng dụng thực tế

  • Hệ thống cảnh báo sớm (Early Warning System - EWS): Tích hợp vào hệ thống Core Portfolio Management của các công ty quản lý quỹ (như Dragon Capital, VinaCapital, SSIAM) để tự động kích hoạt ngưỡng phòng vệ rủi ro.
  • Chiến lược Hedging linh hoạt: Khi VaR 1-ngày tại mức 95% vượt ngưỡng 2% NAV (tương đương 160 tỷ VNĐ), quỹ có thể thực hiện mở vị thế Short trên thị trường Hợp đồng tương lai chỉ số VN30 (VN30F) để triệt tiêu rủi ro giảm giá tức thời.

Kế hoạch và Lộ trình triển khai

LỘ TRÌNH TRIỂN KHAI HỆ THỐNG ĐO LƯỜNG RỦI RO (12 TUẦN)

Tuần 1 - 3: Pipeline Data Ingestion (Kết nối API HOSE, Vietstock Datafeed)
    │
    ▼
Tuần 4 - 6: Quantitative Engine (Tối ưu hóa module ARIMA-GARCH trên Python)
    │
    ▼
Tuần 7 - 9: Stress Testing & Backtesting (Tích hợp module Kupiec & Christoffersen Test)
    │
    ▼
Tuần 10 - 12: Production Deployment & Dashboard UI (Đồng bộ cảnh báo rủi ro tự động)

Hạn chế và hướng phát triển

  • Hạn chế về chuỗi dữ liệu: Giai đoạn nghiên cứu 2020–2023 tập trung nhiều biến động bất thường do hậu quả đại dịch COVID-19 và chu kỳ thắt chặt tiền tệ, có thể dẫn đến hệ số $\alpha_1 + \beta_1$ duy trì ở mức cao kéo dài (high persistence).
  • Cấu trúc đơn biến: Mô hình hóa danh mục tổng hợp thành một chuỗi lợi suất duy nhất mà chưa phân rã ma trận tương quan động giữa các cặp ngành (Financials vs Real Estate).
  • Hướng mở rộng:
    1. Ứng dụng mô hình DCC-GARCH (Dynamic Conditional Correlation)Copula phi đối xứng để nắm bắt tương quan phi tuyến giữa 30 cổ phiếu riêng lẻ.
    2. Tích hợp phân phối $t$-Student hoặc Skewed Student-$t$ vào mô hình GARCH để phản ánh chính xác hơn độ nhọn ở vùng biên rủi ro cực trị (Extreme Value Theory - EVT).
    3. Ứng dụng mạng nơ-ron học sâu lai ghép LSTM-GARCH để nâng cao tốc độ tính toán và khả năng thích ứng trong giao dịch tần suất cao.

Đối tượng hưởng lợi

  • Sinh viên & Học viên chuyên ngành Tài chính Định lượng: Tiếp cận phương pháp luận chuẩn mực kết hợp giữa lý thuyết chuỗi thời gian kinh tế lượng và bài toán thực tế của quỹ ETF.
  • Chuyên viên Quản trị Rủi ro (Risk Managers): Khung tham chiếu hoàn chỉnh để tính toán hạn mức rủi ro danh mục (VaR Limits) cho các quỹ ETF mô phỏng chỉ số.
  • Nhà đầu tư tổ chức & Cá nhân: Hiểu rõ cấu trúc tổn thất tiềm năng tối đa của chứng chỉ quỹ E1VFVN30 trước khi ra quyết định phân bổ tỷ trọng tài sản lớn.
  • Nhà nghiên cứu Kinh tế lượng ứng dụng: Bộ công cụ kiểm định hoàn chỉnh từ tính dừng, tự tương quan đến biến động phương sai sai số thay đổi.

Câu hỏi thường gặp

  1. Yêu cầu hệ thống để vận hành mô hình ARIMA-GARCH VaR? Hệ thống yêu cầu môi trường Python 3.10+ tối thiểu 4-Core CPU, 8GB RAM cùng các gói thư viện statsmodels, arch, pandas. Tốc độ xử lý tính toán VaR cho danh mục 30 mã chỉ mất dưới 1,5 giây/phiên.

  2. Tại sao không sử dụng trực tiếp VaR lịch sử thay vì GARCH phức tạp? VaR lịch sử giả định xác suất các sự kiện quá khứ lặp lại với trọng số như nhau. Trong khi đó, GARCH gán trọng số lớn hơn cho các biến động gần nhất, giúp nắm bắt nhạy bén khi thị trường bước vào pha biến động cao (volatility regime shifts).

  3. Mô hình xử lý việc thay đổi định kỳ rổ chỉ số VN30 (vào tháng 1 và tháng 7) như thế nào? Vector trọng số $w_i$ và danh mục cơ cấu $Q_i$ được tự động cập nhật ngay khi HOSE công bố thông tin điều chỉnh, thuật toán sẽ tính toán lại chuỗi giá trị danh mục $V_t$ đảm bảo tính liên tục của dữ liệu chuỗi thời gian.

  4. Tỷ lệ vi phạm (Exceptions) bao nhiêu là đạt chuẩn mô hình? Với mức tin cậy 95%, tỷ lệ vi phạm lý thuyết là 5%. Theo quy tắc Basel Traffic Light System, trong 100 quan sát thử nghiệm, số lần vi phạm thực tế từ 4–9 lần thuộc vùng Xanh (Green Zone - mô hình chuẩn xác và được chấp thuận).

  5. Chi phí triển khai giải pháp này trong doanh nghiệp là bao nhiêu? Nhờ sử dụng hệ sinh thái mã nguồn mở (Python, PostgreSQL), doanh nghiệp tiết kiệm 100% chi phí bản quyền phần mềm phân tích thương mại (như Bloomberg PORT hay RiskMetrics), chỉ cần chi trả chi phí luồng dữ liệu API thô.


Kết luận

Khóa luận đã chứng minh tính hiệu quả vượt trội của phương pháp Value at Risk tham số kết hợp mô hình ARIMA(p,d,q) - GARCH(1,1) trong việc đo lường rủi ro thị trường đối với danh mục chứng khoán cơ cấu của quỹ ETF DCVFMVN30. Với chuỗi dữ liệu 589 phiên và kiểm định thực nghiệm 100 phiên ngoài mẫu, mô hình đã đưa ra các ngưỡng ước lượng tổn thất chính xác (1,42% tại độ tin cậy 90%; 1,98% tại 95%; và 3,15% tại 99%), đạt tỷ lệ vi phạm tối ưu theo tiêu chuẩn kiểm định quốc tế.

Đây là công cụ định lượng thực tiễn, cung cấp nền tảng vững chắc cho các công ty quản lý quỹ và nhà đầu tư trong việc chủ động kiểm soát rủi ro, tối ưu hóa vị thế phòng ngừa và nâng cao hiệu quả phân bổ vốn trên thị trường chứng khoán Việt Nam.