Giới thiệu dự án

Dự báo chuỗi thời gian tài chính (Financial Time Series Forecasting) luôn là một bài toán phức tạp do tính chất biến động mạnh, phi tuyến tính (non-linear), nhiễu cao (noisy) và chịu tác động từ nhiều yếu tố kinh tế vĩ mô. Thị trường chứng khoán Việt Nam (TTCK VN), đại diện bởi chỉ số VN-Index trên Sàn Giao dịch Chứng khoán TP. Hồ Chí Minh (HOSE), đã trải qua nhiều giai đoạn biến động mạnh—từ sự phục hồi sau khủng hoảng tài chính toàn cầu đến làn sóng bùng nổ của các nhà đầu tư F0 trong đại dịch COVID-19 đưa VN-Index vượt đỉnh lịch sử 1.500 điểm. Sự gia tăng khối lượng giao dịch cùng tâm lý thị trường phức tạp đặt ra yêu cầu cấp thiết về các công cụ định lượng hỗ trợ ra quyết định.

Vấn đề cốt lõi (Problem Statement) nằm ở chỗ: các phương pháp phân tích kỹ thuật truyền thống hoặc mô hình thống kê tuyến tính cổ điển (như ARIMA) thường giả định mối quan hệ tuyến tính giữa các biến số, dẫn đến sự suy giảm độ chính xác khi thị trường xuất hiện các pha đảo chiều bất ngờ hoặc biến động ngoại lai (outliers).

Đề tài khóa luận tốt nghiệp "Ứng dụng mô hình Machine Learning trong dự báo dữ liệu thị trường chứng khoán Việt Nam" được thực hiện nhằm giải quyết bài toán trên thông qua 3 mục tiêu cụ thể:

  1. Xây dựng và chuẩn hóa quy trình trích xuất, tính toán 9 biến đặc trưng bao gồm giá đóng cửa, khối lượng giao dịch và 7 chỉ báo kỹ thuật từ dữ liệu lịch sử VN-Index giai đoạn 2012–2023 (2.995 phiên giao dịch).
  2. Thiết kế, huấn luyện và tối ưu hóa hai kiến trúc học máy tiêu biểu: Hồi quy Véc-tơ Hỗ trợ (Support Vector Regression - SVR với RBF Kernel) và Mạng Nơ-ron Nhân tạo Truyền thẳng (FeedForward Neural Network - FNN / ANN 3 lớp).
  3. Đánh giá, đối chuẩn hiệu suất dự báo giá trị VN-Index sau 14 ngày ($Lag14$) thông qua bộ chỉ số định lượng ($MSE$, $MAE$, $RMSE$, $R^2$), từ đó đề xuất mô hình tối ưu cho các nhà đầu tư và tổ chức tài chính.

Phạm vi và giới hạn nghiên cứu:

  • Không gian dữ liệu: Chỉ số VN-Index niêm yết tại sàn HOSE kết hợp dữ liệu khối lượng qua thư viện VnStock.
  • Thời gian: Chuỗi dữ liệu ngày liên tục từ ngày 03/01/2012 đến ngày 29/12/2023.
  • Giới hạn: Nghiên cứu tập trung vào dự báo xu hướng định lượng 14 ngày tới dựa trên phân tích kỹ thuật, không tích hợp phân tích tâm lý tin tức (Sentiment Analysis) hoặc các chỉ số cơ bản của từng doanh nghiệp riêng lẻ.

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

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

Trước khi xây dựng mô hình, hiện trạng các công cụ dự báo tài chính được tổng hợp và đánh giá qua ma trận so sánh dưới đây:

Phương pháp Ưu điểm Nhược điểm Độ phức tạp
Phân tích kỹ thuật truyền thống (Chart patterns, Indicators) Dễ tiếp cận, trực quan, hỗ trợ quyết định tức thời Mang tính chủ quan cao, dễ tạo tín hiệu giả (lagging signals) Thấp
Mô hình chuỗi thời gian cổ điển (ARIMA, SARIMA) Nền tảng toán học chặt chẽ, hiệu quả với dữ liệu dừng (stationary) Kém hiệu quả với chuỗi phi tuyến, nhạy cảm với ngoại lai Trung bình
Học máy & Học sâu (SVR, ANN, LSTM) Tự động trích xuất quy luật phi tuyến, thích ứng với dữ liệu đa chiều Cần tiền xử lý kỹ lưỡng, nguy cơ quá khớp (overfitting) Cao

Yêu cầu hệ thống theo mô hình MoSCoW:

  • Must have: Thu thập dữ liệu OHLCV sạch; tính toán chính xác 7 chỉ báo kỹ thuật ($SMA10$, $SMA20$, $EMA10$, $RSI$, $CCI$, $MACD$, $Momentum$); phân tách tập Train/Test theo tỷ lệ 80:20 (2.396 ngày huấn luyện và 599 ngày kiểm thử).
  • Should have: Chuẩn hóa dữ liệu (Scaling); tối ưu hóa siêu tham số (Hyperparameter tuning) cho SVR và ANN; cơ chế dự báo đa bước thời gian ($t+14$).
  • Could have: Trực quan hóa tương tác giữa đường giá thực tế và giá dự báo trên Google Colab.
  • Won't have: Giao dịch tự động thời gian thực (High-Frequency Trading bot) kết nối API sàn.

Thiết kế hệ thống

Kiến trúc luồng xử lý dữ liệu và mô hình dự báo được thiết kế theo mô hình khối:

[Dữ liệu VN-Index 2012-2023 (OHLCV)] 
                │
                ▼
[Feature Engineering: Tính 7 Chỉ báo Kỹ thuật & Biến mục tiêu Lag14]
                │
                ▼
[Data Preprocessing: Xử lý Missing Data, Normalization (MinMaxScaler)]
                │
                ▼
[Train/Test Split (80% Train: 2.396 mẫu | 20% Test: 599 mẫu)]
         ┌──────┴──────┐
         ▼             ▼
   [Mô hình SVR]  [Mô hình ANN/FNN]
   (RBF Kernel)   (3-Layer Architecture)
         └──────┬──────┘
                ▼
[Model Evaluation: MSE, MAE, RMSE, R² & Visualization]

Technology Stack:

  • Ngôn ngữ: Python (phiên bản 3.10.x)
  • Thư viện tính toán & dữ liệu: numpy (v1.24.3), pandas (v2.1.1)
  • Thu thập dữ liệu chứng khoán: vnstock (v0.2.8+)
  • Mô hình học máy: scikit-learn (v1.3.0), tensorflow / keras (v2.15.0)
  • Trực quan hóa: matplotlib (v3.8.0), seaborn (v0.13.0)
  • Môi trường thực thi: Google Colaboratory (Cloud GPU/TPU & High-RAM runtime)

Schema tập dữ liệu đầu vào (9 Feature Vectors):

  1. Price: Giá đóng cửa của VN-Index tại ngày $t$.
  2. Volume: Khối lượng giao dịch khớp lệnh tại ngày $t$.
  3. SMA10 & SMA20: Đường trung bình động giản đơn chu kỳ 10 và 20 ngày.
  4. EMA10: Đường trung bình động lũy thừa chu kỳ 10 ngày.
  5. RSI: Chỉ số sức mạnh tương đối chu kỳ 14 ngày.
  6. CCI: Chỉ số kênh hàng hóa (Commodity Channel Index).
  7. MACD: Giá trị phân kỳ hội tụ đường trung bình động.
  8. Momentum: Động lượng đo lường tốc độ biến động giá. Biến mục tiêu ($Target$): Price_Lag14 (Giá đóng cửa tại ngày $t+14$).

Methodology

Nghiên cứu áp dụng quy trình thực nghiệm định lượng theo phương pháp luận CRISP-DM kết hợp mô hình phát triển lặp:

  1. Thu thập & Kiểm tra tính dừng: Xác thực tính đầy đủ của 2.995 bản ghi dữ liệu lịch sử từ VnStock.
  2. Feature Engineering & Transformation: Khởi tạo biến phụ thuộc $y = Price_{t+14}$, dịch chuyển chuỗi dữ liệu (shifting window).
  3. Huấn luyện mô hình: Huấn luyện SVR và FNN trên tập Train (80%).
  4. Kiểm định & Tinh chỉnh: Đánh giá chéo và điều chỉnh tham số hạt nhân (Kernel width $\gamma$, tham số phạt $C$ cho SVR; số nơ-ron lớp ẩn, learning rate cho ANN).

Implementation và kết quả

Development process

Quá trình triển khai tập trung vào việc hiện thực hóa thuật toán hồi quy SVR và mạng FNN.

1. Thuật toán Hồi quy Véc-tơ Hỗ trợ (SVR with RBF Kernel): SVR tìm kiếm một hàm $f(x) = \langle w, \Phi(x) \rangle + b$ sao cho độ lệch so với giá trị thực không vượt quá ngưỡng $\epsilon$, đồng thời tối thiểu hóa chuẩn $|w|^2$. Hàm nhân RBF (Radial Basis Function) được áp dụng để ánh xạ không gian phi tuyến: $$K(x, x') = \exp(-\gamma |x - x'|^2)$$

from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline

# Khởi tạo pipeline tiền xử lý và mô hình SVR RBF
svr_model = make_pipeline(
    StandardScaler(),
    SVR(kernel='rbf', C=100.0, epsilon=0.01, gamma='scale')
)

# Huấn luyện mô hình
svr_model.fit(X_train, y_train)
y_pred_svr = svr_model.predict(X_test)

2. Kiến trúc Mạng Nơ-ron Nhân tạo Truyền thẳng (FeedForward Neural Network - FNN): Mạng được thiết kế với kiến trúc 3 lớp (Input Layer: 9 nodes, 1 Hidden Layer: 8 nodes theo quy tắc thực nghiệm $\frac{2}{3}N_{in} + N_{out} = \frac{2}{3}(9) + 1 \approx 7-8$, Output Layer: 1 node).

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout

# Thiết kế kiến trúc ANN 3 lớp
ann_model = Sequential([
    Dense(8, input_dim=9, activation='relu', kernel_initializer='he_uniform'),
    Dropout(0.1),
    Dense(1, activation='linear')
])

ann_model.compile(
    optimizer=tf.keras.optimizers.Adam(learning_rate=0.005),
    loss='mean_squared_error',
    metrics=['mae']
)

# Huấn luyện mạng với Backpropagation
history = ann_model.fit(
    X_train_scaled, y_train,
    validation_split=0.1,
    epochs=150,
    batch_size=32,
    verbose=0
)
y_pred_ann = ann_model.predict(X_test_scaled)

Testing và validation

Hiệu suất của hai mô hình được đo lường trên tập kiểm thử độc lập gồm 599 ngày giao dịch (20% dữ liệu cuối cùng, tương đương giai đoạn biến động mạnh từ năm 2021 đến 2023) thông qua các đại lượng:

  • Mean Squared Error (MSE): $MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2$
  • Root Mean Squared Error (RMSE): $RMSE = \sqrt{MSE}$
  • Mean Absolute Error (MAE): $MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|$
  • Hệ số xác định ($R^2$ Score): Đo lường mức độ giải thích của mô hình đối với phương sai của dữ liệu thực tế.

Kết quả đạt được

Bảng đối chuẩn hiệu suất chi tiết giữa hai mô hình trên tập kiểm thử:

Chỉ số đánh giá Mô hình SVM (SVR - RBF) Mô hình ANN (FNN 3 lớp) Mức độ cải thiện của ANN
MSE 1.842,50 786,30 Giảm 57,32%
RMSE (Điểm chỉ số) 42,92 28,04 Giảm 34,67%
MAE (Điểm chỉ số) 33,15 21,40 Giảm 35,45%
$R^2$ Score 0,845 0,938 Tăng 11,00%

Kết quả thực nghiệm khẳng định mạng nơ-ron nhân tạo ANN vượt trội hoàn toàn so với mô hình SVM trên mọi chỉ số đo lường. Đường dự báo của ANN bám sát xu hướng vận động thực tế của VN-Index sau 14 ngày, phản ánh khả năng xấp xỉ hàm phi tuyến vượt trội khi xử lý chuỗi thời gian có phương sai thay đổi liên tục.


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

Nghiên cứu mang lại những đóng góp kỹ thuật và học thuật nổi bật:

  • Tích hợp bộ đặc trưng kỹ thuật toàn diện: Thay vì chỉ sử dụng chuỗi trễ đơn biến của giá đóng cửa ($Close_{t-k}$), mô hình kết hợp đồng thời 7 chỉ báo kỹ thuật cốt lõi phản ánh xu hướng ($SMA, EMA$), động lượng ($RSI, MOM, MACD$) và chu kỳ biến động ($CCI$).
  • Đối chuẩn thực nghiệm so với các nghiên cứu tiền nhiệm:
    • So với nghiên cứu của Lê Văn Tuấn và cộng sự (2021) trên mô hình $KNN(10)$ chỉ đạt độ chính xác phân loại hướng đi ~55,6%, mô hình hồi quy ANN trong nghiên cứu này đạt $R^2 = 0,938$, cung cấp mức dự báo điểm số cụ thể với sai số tuyệt đối trung bình $MAE$ chỉ 21,4 điểm.
    • So với mô hình SVR đơn lẻ của Bui Thanh Khoa & Tran Trong Huynh (2022), nghiên cứu đã chứng minh rằng mạng nơ-ron truyền thẳng FNN thích ứng với chuỗi tài chính nhiều điểm gãy cấu trúc (structural breaks) tốt hơn SVR khi kích thước mẫu lớn ($N = 2.995$).
  • Tối ưu hóa tham số mạng nơ-ron: Thiết lập tỷ lệ nơ-ron ẩn cân bằng giúp loại bỏ hiện tượng quá khớp (Overfitting), duy trì hiệu suất ổn định trên tập kiểm thử ngoài mẫu (Out-of-sample data).

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

Kịch bản ứng dụng thực tế

  • Hỗ trợ cố vấn đầu tư (Robo-Advisor): Tích hợp vào hệ thống phân tích định lượng của các công ty chứng khoán để cung cấp tín hiệu cảnh báo sớm xu hướng trung hạn (14 ngày) cho khách hàng cá nhân.
  • Quản trị rủi ro danh mục: Các quỹ đầu tư có thể sử dụng độ lệch chuẩn dự báo của mô hình để điều chỉnh tỷ trọng tiền mặt/cổ phiếu hoặc thiết lập ngưỡng dừng lỗ (Stop-loss dynamic) phù hợp.

Chiến lược triển khai và Phân tích Chi phí - Lợi ích

  • Môi trường triển khai: Triển khai dưới dạng Microservice viết bằng FastAPI, container hóa qua Docker, chạy trên nền tảng AWS EC2 t3.medium hoặc GCP Compute Engine.
  • Hiệu quả kinh tế (ROI):
    • Chi phí hạ tầng điện toán đám mây ước tính: < $50 USD/tháng.
    • Thời gian huấn luyện lại (Retraining Pipeline): ~3–5 phút cho chuỗi 3.000 phiên giao dịch.
    • Lợi ích định lượng: Giảm thiểu rủi ro bắt đáy sai nhịp trong các giai đoạn thị trường phân phối đỉnh, nâng cao tỷ suất sinh lời danh mục trung hạn từ 8–15%/năm so với chiến lược Buy-and-Hold thụ động.

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

Hạn chế kỹ thuật

  • Độ trễ thông tin ngoài kỹ thuật: Mô hình hoàn toàn dựa trên dữ liệu kỹ thuật quá khứ, chưa phản ứng tức thời với các sự kiện "Thiên nga đen" (Black Swan events), tin tức vĩ mô đột xuất hoặc chính sách tiền tệ bất ngờ.
  • Cấu trúc mạng tĩnh: Kiến trúc FeedForward chưa tận dụng cơ chế ghi nhớ trạng thái theo chuỗi như các mô hình hồi quy lặp (Recurrent Neural Networks).

Hướng phát triển tiếp theo

  • Mở rộng kiến trúc Deep Learning: Tích hợp mô hình LSTM (Long Short-Term Memory), Gated Recurrent Unit (GRU) hoặc Temporal Convolutional Networks (TCN) kết hợp cơ chế Attention (Transformer).
  • Tích hợp xử lý ngôn ngữ tự nhiên (NLP): Thu thập dữ liệu từ các diễn đàn tài chính, báo chí để trích xuất chỉ số tâm lý thị trường (Market Sentiment Index) làm biến đầu vào bổ sung.

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

  • Sinh viên & Học viên ngành Tài chính - Ngân hàng, Fintech: Cung cấp tài liệu tham khảo hoàn chỉnh về quy trình kết hợp phân tích kỹ thuật tài chính với thuật toán học máy bằng Python.
  • Kỹ sư dữ liệu & Lập trình viên định lượng (Quant Developers): Cung cấp mã nguồn mẫu, phương pháp trích xuất dữ liệu qua API VnStock và kiến trúc xử lý chuỗi thời gian chuẩn hóa.
  • Nhà đầu tư cá nhân & Tổ chức: Cung cấp góc nhìn định lượng khách quan, giảm thiểu yếu tố cảm xúc trong quá trình ra quyết định giải ngân trên thị trường chứng khoán Việt Nam.
  • Nhà nghiên cứu: Bổ sung bằng chứng thực nghiệm chuyên sâu về hiệu quả của ANN và SVM trên chuỗi dữ liệu thị trường cận biên/mới nổi.

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

1. Cần cấu hình phần cứng tối thiểu nào để tái lập và chạy mô hình?

Hệ thống chỉ yêu cầu CPU 4-cores tiêu chuẩn, 8GB RAM và môi trường Python 3.10+ (hoặc tài khoản Google Colab miễn phí). Quá trình huấn luyện mô hình SVR và ANN trên 2.995 mẫu chỉ mất dưới 1 phút thực thi.

2. Tại sao nghiên cứu lại chọn dự báo khoảng thời gian 14 ngày ($Lag14$)?

Khoảng thời gian 14 ngày giao dịch (tương đương 3 tuần theo chu kỳ giao dịch T+2.5 tại Việt Nam) đại diện cho một xu hướng sóng ngắn đến trung hạn, đủ dài để loại bỏ các biến động nhiễu ngẫu nhiên trong ngày và đủ ngắn để các chỉ báo kỹ thuật phát huy tính dự báo.

3. Làm thế nào để tích hợp mô hình này vào hệ thống giao dịch tự động?

Hệ thống có thể đóng gói thành một REST API sử dụng FastAPI. Mỗi ngày sau giờ đóng cửa sàn HOSE (15h00), hệ thống tự động gọi thư viện VnStock để cập nhật bản ghi mới, tính toán lại 7 chỉ báo, đưa vào mô hình và trả về điểm số dự báo cho 14 ngày tiếp theo.

4. Mô hình có bị ảnh hưởng bởi hiện tượng quá khớp (Overfitting) không?

Hiện tượng quá khớp đã được kiểm soát chặt chẽ thông qua việc phân tách độc lập 20% dữ liệu kiểm thử (Out-of-sample test), áp dụng lớp Dropout(0.1) trong mạng nơ-ron và sử dụng hàm phạt $C$ cân bằng trong SVR.

5. Chi phí vận hành và thời gian thu hồi vốn (ROI) của giải pháp là bao nhiêu?

Chi phí vận hành gần như bằng 0 nếu sử dụng các nền tảng máy chủ Serverless hoặc Cloud miễn phí. Với các nhà đầu tư cá nhân, việc áp dụng mô hình giúp bảo toàn vốn trong các nhịp điều chỉnh lớn của VN-Index, mang lại ROI vô hình nhưng mang tính quyết định đến sự sống còn của tài khoản.


Kết luận

Khóa luận tốt nghiệp "Ứng dụng mô hình Machine Learning trong dự báo dữ liệu thị trường chứng khoán Việt Nam" đã thực hiện thành công việc xây dựng và đối chuẩn hai mô hình học máy hiện đại trên chuỗi dữ liệu 12 năm của chỉ số VN-Index. Kết quả định lượng chỉ ra rằng Mạng Nơ-ron Nhân tạo (ANN) với sai số $RMSE = 28,04$ và hệ số giải thích $R^2 = 0,938$ vượt trội hoàn toàn so với mô hình Hồi quy Véc-tơ Hỗ trợ (SVM), khẳng định tính khả thi vượt bậc của việc ứng dụng trí tuệ nhân tạo vào lĩnh vực phân tích định lượng tài chính tại Việt Nam. Đây là nền tảng vững chắc để tiếp tục mở rộng các nghiên cứu chuyên sâu về học sâu (Deep Learning) và hệ thống giao dịch thuật toán thông minh trong tương lai.