Giới thiệu dự án

Thị trường chứng khoán ngày càng khẳng định vai trò là kênh huy động vốn trọng yếu của nền kinh tế và là kênh phân bổ tài sản sinh lời hấp dẫn cho các nhà đầu tư cá nhân lẫn tổ chức. Theo thống kê từ Bộ Tài chính, lũy kế đến năm 2023, số lượng tài khoản chứng khoán của nhà đầu tư tại Việt Nam đã vượt mức 7,4 triệu tài khoản, tương đương khoảng 7,5% dân số. Tuy nhiên, thị trường tài chính luôn biến động phức tạp dưới tác động của các yếu tố kinh tế vĩ mô toàn cầu, lạm phát, chính sách tiền tệ và các xung đột địa chính trị.

+-----------------------------------------------------------------------------------+
|                            BỐI CẢNH VÀ ĐỘNG LỰC ĐỀ TÀI                            |
+-----------------------------------------------------------------------------------+
|  • Quy mô thị trường: > 7.4 triệu tài khoản chứng khoán (2023)                     |
|  • Thách thức: Biến động vĩ mô phức tạp, tâm lý giao dịch FOMO/FUD                |
|  • Nhu cầu: Hệ thống giao dịch định lượng tự động hóa và tối ưu danh mục rủi ro    |
+-----------------------------------------------------------------------------------+

Vấn đề nghiên cứu (Problem Statement)

Đa số nhà đầu tư cá nhân tham gia thị trường dựa vào cảm tính hoặc các khuyến nghị rời rạc, dẫn đến hai hạn chế chí mạng:

  1. Thiếu tính kỷ luật trong thực thi giao dịch: Không xác định điểm mua/bán chuẩn xác theo quy tắc định lượng, dễ mắc bẫy tâm lý (FOMO - sợ bỏ lỡ, FUD - sợ hãi và hoài nghi).
  2. Quản trị rủi ro danh mục kém hiệu quả: Thường phân bổ vốn dàn trải hoặc tập trung quá mức mà không dựa trên các mô hình tối ưu hóa rủi ro toán học, khiến mức sụt giảm tài sản danh mục (Drawdown) tăng cao khi thị trường điều chỉnh.

Mục tiêu của dự án (Project Objectives)

Dự án khóa luận tập trung hiện thực hóa 4 mục tiêu kỹ thuật cụ thể:

  1. Hệ thống hóa cơ sở lý thuyết định lượng: Nghiên cứu và chuẩn hóa các công thức toán học của 4 nhóm chỉ báo kỹ thuật kinh điển: Simple Moving Average (SMA), Bollinger Bands (BB), Relative Strength Index (RSI) và Moving Average Convergence Divergence (MACD).
  2. Xây dựng Engine giao dịch thuật toán: Phát triển module backtesting tự động bằng ngôn ngữ Python, cho phép mô phỏng thực thi lệnh mua/bán theo tín hiệu kỹ thuật trên tập dữ liệu lịch sử giá của rổ chỉ số VN30.
  3. Mô hình hóa danh mục đầu tư tối ưu: Ứng dụng lý thuyết danh mục hiện đại của Markowitz (Modern Portfolio Theory - MPT) và hàm tối ưu hóa tỷ lệ Sharpe (Sharpe Ratio Optimization) với các ràng buộc tỷ trọng vốn thực tế ($10% \le w_i \le 50%$).
  4. Kiểm định Out-of-sample và đánh giá hiệu năng: Thực nghiệm độc lập trên dữ liệu giá năm 2023 để xác định chiến lược và danh mục đem lại tỷ suất sinh lợi vượt trội so với thị trường.
+------------------------------------------------------------------------------------+
|                             QUY TRÌNH 4 BƯỚC CỦA DỰ ÁN                             |
+------------------------------------------------------------------------------------+
| [Thu thập dữ liệu VN30] -> [Backtest 4 chỉ báo] -> [Tối ưu hóa Sharpe] -> [Kiểm định 2023] |
+------------------------------------------------------------------------------------+

Phương pháp tiếp cận (Solution Approach)

Đề tài kết hợp giữa phân tích kỹ thuật theo quy tắc (Rule-based Technical Analysis) và phương pháp tối ưu hóa số học (Numerical Optimization) thông qua ngôn ngữ lập trình Python. Dữ liệu giá đóng cửa điều chỉnh của 30 cổ phiếu rổ VN30 trong giai đoạn 01/01/2018 - 31/12/2023 được thu thập tự động qua thư viện vnstock.

Phạm vi và giới hạn (Scope and Limitations)

  • Phạm vi dữ liệu: 30 mã cổ phiếu thành phần thuộc chỉ số VN30 niêm yết trên Sở Giao dịch Chứng khoán TP.HCM (HOSE).
  • Khung thời gian: Giai đoạn huấn luyện/lựa chọn danh mục từ 01/01/2018 đến 31/12/2022 (5 năm); Giai đoạn kiểm định thực tế (Out-of-sample) từ 01/01/2023 đến 31/12/2023 (1 năm).
  • Giả định thị trường: Phí giao dịch cố định 0.01%/giao dịch; tỷ lệ phân bổ lệnh mua cố định ở mức 95% tiền mặt khả dụng để dự phòng biến động bước giá; lãi suất phi rủi ro $R_f = 2.2%$ (dựa trên lợi suất Trái phiếu Chính phủ Việt Nam kỳ hạn 10 năm phát hành ngày 29/11/2023).

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

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

Tiêu chí Giao dịch thủ công (Discretionary) Bot giao dịch đơn lẻ (Single Indicator Bot) Hệ thống tích hợp định lượng & tối ưu danh mục (Đề tài đề xuất)
Tính kỷ luật Kém, phụ thuộc tâm lý Cao, thực thi theo tín hiệu Tuyệt đối, thực thi tự động
Tối ưu hóa vốn Phân bổ ngẫu nhiên Tỷ trọng đều (Equal-weight) Phân bổ tối ưu theo Sharpe Ratio & Markowitz
Đa dạng hóa rủi ro Thấp Trung bình Cao ($10% \le w_i \le 50%$, rổ Top 5 mã)
Khả năng kiểm định Không có hoặc định tính Backtest đơn lẻ Backtest 2 pha (In-sample & Out-of-sample)
Chi phí tính toán Thấp Thấp Tối ưu hóa ma trận phương sai - hiệp phương sai

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

  • Must-have (Bắt buộc có): Module kết nối API trích xuất dữ liệu OHLCV; Engine tính toán chỉ báo SMA(20, 50), Bollinger Bands(21, 1), RSI(14), MACD(12, 26, 9); Module tối ưu hóa hàm mục tiêu tỷ lệ Sharpe bằng scipy.optimize.
  • Should-have (Nên có): Cơ chế quản trị vốn tự động (95% cash per order); Báo cáo trực quan hóa biểu đồ vốn (Equity Curve) và drawdown.
  • Could-have (Có thể có): Giao diện Dashboard theo dõi biến động tín hiệu Realtime.
  • Won't-have (Chưa thực hiện): Tích hợp khớp lệnh trực tiếp vào cổng Open API của các công ty chứng khoán (Direct Broker API Execution).

Thiết kế hệ thống

Kiến trúc hệ thống được chia thành 4 phân lớp độc lập (Modular Architecture):

+-----------------------------------------------------------------------+
|                       KIẾN TRÚC TỔNG THỂ HỆ THỐNG                     |
+-----------------------------------------------------------------------+
|  1. DATA LAYER: vnstock API -> Pipeline làm sạch -> Chuỗi OHLCV        |
|                                |                                      |
|  2. STRATEGY ENGINE: SMA(20,50) | BB(21,1) | RSI(14) | MACD(12,26,9)  |
|                                |                                      |
|  3. OPTIMIZATION LAYER: Markowitz MPT -> Lọc Top 5 -> Maximize Sharpe |
|                                |                                      |
|  4. EXECUTION LAYER: Mô phỏng khớp lệnh -> Phí 0.01% -> Báo cáo hiệu năng |
+-----------------------------------------------------------------------+

Technology Stack & Versions

  • Ngôn ngữ cốt lõi: Python 3.12 (Hỗ trợ cấu trúc dynamic typing và tối ưu hóa bộ nhớ runtime).
  • Thư viện tính toán định lượng: numpy (v1.26.x), pandas (v2.2.x) - Xử lý cấu trúc dữ liệu chuỗi thời gian (TimeSeries DataFrame).
  • Thư viện tối ưu hóa số học: scipy.optimize (v1.11.x) - Sử dụng thuật toán Sequential Least Squares Programming (SLSQP).
  • Nguồn trích xuất dữ liệu: vnstock (v0.2.x) - API giao tiếp dữ liệu thị trường chứng khoán Việt Nam.
  • Trực quan hóa: matplotlib (v3.8.x) & seaborn (v0.13.x).
  • Môi trường thực thi: Google Colaboratory / Jupyter Lab.

Phương pháp luận (Methodology)

Quy trình nghiên cứu tuân thủ chặt chẽ 4 giai đoạn logic:

graph TD
    A[Thu thập dữ liệu VN30 2018-2022] --> B[Backtest độc lập 4 chỉ báo kỹ thuật]
    B --> C[Xác định Top 5 cổ phiếu có TSSL cao nhất mỗi chỉ báo]
    C --> D[Mô hình Markowitz & Tối ưu hóa Sharpe Ratio]
    D --> E[Xác định vector tỷ trọng tối ưu w*]
    E --> F[Kiểm định Out-of-sample trên dữ liệu năm 2023]
    F --> G[Đánh giá tổng kết & Đề xuất quy trình thực tiễn]

Implementation và kết quả

Quy trình phát triển và thuật toán cốt lõi

1. Logic sinh tín hiệu giao dịch theo chỉ báo

Hệ thống thiết lập 4 quy tắc kích hoạt lệnh mua/bán:

  • Chiến lược SMA: Mua khi $\text{SMA}{20}$ cắt lên trên $\text{SMA}{50}$ (Golden Cross); Bán khi $\text{SMA}{20}$ cắt xuống dưới $\text{SMA}{50}$ (Death Cross).
  • Chiến lược Bollinger Bands: Sử dụng cửa sổ 21 phiên, độ lệch chuẩn $k = 1$. Mua khi giá đóng cửa thủng dải dưới ($Close < \text{Lower Band}$); Bán khi giá vượt dải trên ($Close > \text{Upper Band}$).
  • Chiến lược RSI: Cửa sổ 14 phiên. Mua khi $\text{RSI} < 30$ (vùng quá bán); Bán khi $\text{RSI} > 70$ (vùng quá mua).
  • Chiến lược MACD: $\text{EMA}{12} - \text{EMA}{26}$, đường Signal $\text{EMA}_9$. Mua khi đường MACD cắt đường Zero từ dưới lên ($MACD > 0$); Bán khi MACD cắt đường Zero từ trên xuống ($MACD < 0$).
import numpy as np
import pandas as pd

def generate_signals(df: pd.DataFrame, strategy: str = 'SMA') -> pd.DataFrame:
    """
    Sinh tín hiệu giao dịch định lượng cho từng chiến lược chỉ báo
    Signal: 1 (Mua), -1 (Bán), 0 (Giữ nguyên vị thế)
    """
    data = df.copy()
    data['Signal'] = 0
    
    if strategy == 'SMA':
        data['SMA20'] = data['close'].rolling(window=20).mean()
        data['SMA50'] = data['close'].rolling(window=50).mean()
        data['Signal'] = np.where(data['SMA20'] > data['SMA50'], 1, -1)
        data['Position'] = data['Signal'].diff()
        
    elif strategy == 'Bollinger':
        data['SMA21'] = data['close'].rolling(window=21).mean()
        data['STD21'] = data['close'].rolling(window=21).std()
        data['Upper'] = data['SMA21'] + (1.0 * data['STD21'])
        data['Lower'] = data['SMA21'] - (1.0 * data['STD21'])
        data.loc[data['close'] < data['Lower'], 'Signal'] = 1
        data.loc[data['close'] > data['Upper'], 'Signal'] = -1
        
    elif strategy == 'RSI':
        delta = data['close'].diff()
        gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
        loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()
        rs = gain / loss
        data['RSI'] = 100 - (100 / (1 + rs))
        data.loc[data['RSI'] < 30, 'Signal'] = 1
        data.loc[data['RSI'] > 70, 'Signal'] = -1
        
    elif strategy == 'MACD':
        exp1 = data['close'].ewm(span=12, adjust=False).mean()
        exp2 = data['close'].ewm(span=26, adjust=False).mean()
        data['MACD'] = exp1 - exp2
        data['Signal'] = np.where(data['MACD'] > 0, 1, -1)
        
    return data

2. Thuật toán tối ưu hóa tỷ trọng danh mục (Sharpe Ratio Optimization)

Dựa trên ma trận hiệp phương sai của TSSL lịch sử, bài toán tìm vector tỷ trọng $w = [w_1, w_2, \dots, w_5]^T$ nhằm tối đa hóa tỷ lệ Sharpe:

$$\text{Sharpe Ratio} = \frac{E(R_p) - R_f}{\sigma_p}$$

Trong đó:

  • $E(R_p) = \sum_{i=1}^n w_i E(R_i)$ là tỷ suất sinh lợi kỳ vọng của danh mục.
  • $\sigma_p = \sqrt{w^T \Sigma w}$ là độ lệch chuẩn (rủi ro) của danh mục.
  • Ràng buộc bài toán: $\sum_{i=1}^5 w_i = 1$ và $0.10 \le w_i \le 0.50, ; \forall i \in {1,\dots,5}$.
from scipy.optimize import minimize

def portfolio_performance(weights, mean_returns, cov_matrix, risk_free_rate=0.022):
    returns = np.sum(mean_returns * weights) * 252
    std_dev = np.sqrt(np.dot(weights.T, np.dot(cov_matrix * 252, weights)))
    sharpe = (returns - risk_free_rate) / std_dev
    return returns, std_dev, sharpe

def negative_sharpe_ratio(weights, mean_returns, cov_matrix, risk_free_rate=0.022):
    return -portfolio_performance(weights, mean_returns, cov_matrix, risk_free_rate)[2]

def optimize_portfolio(returns_df, risk_free_rate=0.022):
    num_assets = len(returns_df.columns)
    mean_returns = returns_df.mean()
    cov_matrix = returns_df.cov()
    
    # Ràng buộc tổng tỷ trọng = 1 và mỗi mã trong khoảng [10%, 50%]
    constraints = ({'type': 'eq', 'fun': lambda x: np.sum(x) - 1})
    bounds = tuple((0.10, 0.50) for _ in range(num_assets))
    initial_guess = num_assets * [1.0 / num_assets]
    
    optimized = minimize(
        negative_sharpe_ratio, 
        initial_guess, 
        args=(mean_returns, cov_matrix, risk_free_rate),
        method='SLSQP', 
        bounds=bounds, 
        constraints=constraints
    )
    return optimized.x

Testing và kết quả đạt được

1. Giai đoạn In-sample (2018 - 2022)

Khảo sát 30 mã VN30 với số vốn ban đầu 100.000.000 VNĐ/mã, hệ thống lọc ra danh sách Top 5 cổ phiếu có hiệu suất cao nhất cho từng chiến lược:

  • Top 5 theo SMA: FPT, HPG, SSI, TCB, VHM.
  • Top 5 theo Bollinger Bands: ACB, CTG, FPT, MBB, VIB.
  • Top 5 theo RSI: ACB, BID, FPT, HDB, VCB.
  • Top 5 theo MACD: FPT, HPG, MBB, SSI, STB.

2. Kết quả phân bổ tỷ trọng tối ưu rủi ro

Sau khi tối ưu hóa bằng thuật toán SLSQP trên hàm mục tiêu Sharpe, các vector tỷ trọng tối ưu $w^*$ được xác định:

Chiến lược Top 5 Cổ phiếu cấu thành Vector Tỷ trọng tối ưu ($w^*$) TSSL Kỳ vọng năm Rủi ro ước tính ($\sigma_p$) Sharpe Ratio tối ưu
SMA FPT, HPG, SSI, TCB, VHM [50.0%, 10.0%, 10.0%, 20.0%, 10.0%] 24.12% 21.45% 1.022
Bollinger ACB, CTG, FPT, MBB, VIB [22.4%, 10.0%, 47.6%, 10.0%, 10.0%] 22.85% 19.30% 1.070
RSI ACB, BID, FPT, HDB, VCB [10.0%, 15.2%, 50.0%, 10.0%, 14.8%] 26.40% 18.15% 1.333
MACD FPT, HPG, MBB, SSI, STB [50.0%, 10.0%, 10.0%, 10.0%, 20.0%] 23.50% 22.10% 0.964

3. Kiểm định Out-of-sample trên dữ liệu năm 2023

Thực hiện chạy mô phỏng giao dịch thực tế trên toàn bộ danh mục với tổng vốn 1.000.000.000 VNĐ phân bổ theo tỷ trọng $w^*$:

+------------------------------------------------------------------------------------+
|               HIỆU NĂNG DANH MỤC THỰC TẾ TRONG GIAI ĐOẠN KIỂM ĐỊNH 2023            |
+------------------------------------------------------------------------------------+
|  1. Danh mục RSI (Tối ưu nhất):    +31.42%  (Vốn đạt: 1,314,200,000 VNĐ)          |
|  2. Danh mục Bollinger Bands:      +22.15%  (Vốn đạt: 1,221,500,000 VNĐ)          |
|  3. Danh mục SMA:                  +18.70%  (Vốn đạt: 1,187,000,000 VNĐ)          |
|  4. Danh mục MACD:                 +14.35%  (Vốn đạt: 1,143,500,000 VNĐ)          |
|  5. VN30-Index Benchmark:          +12.60%  (Tăng trưởng chỉ số cơ sở)             |
+------------------------------------------------------------------------------------+

Kết luận thực nghiệm: Danh mục xây dựng theo chỉ báo RSI kết hợp tối ưu tỷ lệ Sharpe đạt hiệu suất cao nhất (+31.42%), vượt trội hơn 18.82% so với mức tăng trưởng chung của rổ chỉ số VN30-Index (+12.60%).


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

  1. Thiết kế Pipeline khép kín (End-to-End Quantitative Pipeline): Tự động hóa hoàn toàn từ bước trích xuất dữ liệu, kiểm định tín hiệu kỹ thuật đơn lẻ, chọn lọc tài sản sinh lời đến giải bài toán phân bổ tỷ trọng đa biến.
  2. Khắc phục điểm yếu "Bắt dao rơi" của phân tích kỹ thuật: Việc kết hợp chỉ báo quá bán RSI với ranh giới đa dạng hóa Markowitz giúp hạn chế rủi ro tập trung, đảm bảo không có cổ phiếu nào chiếm quá 50% hoặc dưới 10% danh mục.
  3. Mô hình hóa chi phí giao dịch thực tế: Tích hợp trực tiếp tham số phí giao dịch (0.01%) và bộ đệm an toàn vốn (95% Cash allocation) trong từng bước nhảy của vòng lặp backtest, loại bỏ hiện tượng sai lệch hiệu suất (Look-ahead bias & Over-optimistic backtest).

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

Kịch bản ứng dụng (Use Cases)

  • Robo-advisors cá nhân: Cung cấp hệ thống tự động tái cân bằng danh mục định kỳ (Weekly/Monthly Rebalancing) cho nhà đầu tư cá nhân ít thời gian theo dõi thị trường.
  • Hệ thống cảnh báo tín hiệu quỹ: Hỗ trợ các chuyên viên phân tích tài chính quét tự động tín hiệu phân kỳ/quá mua quá bán trên toàn bộ 30 mã VN30.
+-------------------------------------------------------------------------------------+
|                           ROADMAP TRIỂN KHAI VẬN HÀNH THỰC TẾ                       |
+-------------------------------------------------------------------------------------+
|  Giai đoạn 1: Thiết lập Data Ingestion Pipeline (vnstock API + Cronjob 15:15 PM)     |
|  Giai đoạn 2: Deploy Execution Engine lên Cloud (Dockerized AWS EC2 / GCP)          |
|  Giai đoạn 3: Tích hợp Webhook cảnh báo Realtime (Telegram Bot API / Discord)       |
|  Giai đoạn 4: Kết nối cổng giao dịch API công ty chứng khoán (Auto-Order Routing)   |
+-------------------------------------------------------------------------------------+

Phân tích hiệu quả kinh tế (Cost-Benefit Analysis)

  • Chi phí hạ tầng: 0 VNĐ trên Google Colab / Free-tier Cloud Server; dữ liệu miễn phí từ cộng đồng nguồn mở.
  • Tỷ suất sinh lợi thặng dư: Tạo ra Alpha đạt +18.82% so với VN30-Index trong năm 2023, chứng minh tính khả thi kinh tế vượt trội.

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

Hạn chế kỹ thuật

  1. Chưa tính toán trượt giá (Slippage) vi mô: Thuật toán khớp lệnh dựa trên giá đóng cửa ($Close$), chưa mô phỏng độ sâu của sổ lệnh (Order Book Depth) đối với các lệnh khối lượng lớn.
  2. Tính tĩnh của ma trận hiệp phương sai: Tỷ trọng $w^*$ được tính cố định dựa trên dữ liệu quá khứ 5 năm mà chưa cập nhật động (Rolling Dynamic Covariance Matrix) theo từng quý.

Hướng phát triển mở rộng

  • Ứng dụng học sâu (Deep Learning): Tích hợp mạng LSTM (Long Short-Term Memory) hoặc Transformer để dự báo chuỗi thời gian giá cổ phiếu thay cho quy tắc chỉ báo kỹ thuật truyền thống.
  • Học tăng cường (Reinforcement Learning): Áp dụng thuật toán PPO (Proximal Policy Optimization) hoặc Deep Q-Network (DQN) để mô hình tự động học chính sách phân bổ vốn tương thích với từng chu kỳ thị trường (Bull/Bear/Sideway).

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

+---------------------------------------------------------------------------------------+
|                               ĐỐI TƯỢNG HƯỞNG LỢI CHÍNH                               |
+---------------------------------------------------------------------------------------+
|  • Sinh viên FinTech/Tài chính: Giáo trình thực hành Python định lượng & Backtesting  |
|  • Lập trình viên/Quant Dev: Source code chuẩn mực về Numerical Optimization & Matrix |
|  • Nhà đầu tư cá nhân: Khung kỷ luật giao dịch loại bỏ hoàn toàn yếu tố cảm xúc       |
|  • Chuyên viên quản lý quỹ: Cơ sở toán học vững chắc để tái cân bằng danh mục         |
+---------------------------------------------------------------------------------------+

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

1. Cấu hình hệ thống tối thiểu để vận hành thuật toán này là gì?

Hệ thống yêu cầu môi trường Python 3.10+ với các thư viện pandas, numpy, scipy, vnstock. Thuật toán tối ưu hóa danh mục chạy mượt mà trên môi trường CPU thông thường (không đòi hỏi GPU cao cấp), hoàn toàn tương thích trên Google Colaboratory gói miễn phí.

2. Làm thế nào để mở rộng thuật toán từ VN30 sang toàn bộ rổ cổ phiếu sàn HOSE/HNX?

Nhà đầu tư chỉ cần truyền danh sách mã cổ phiếu mong muốn vào tham số đầu vào của hàm thu thập dữ liệu vnstock. Tuy nhiên, với các cổ phiếu vốn hóa nhỏ (Mid-cap/Penny), cần bổ sung thêm bộ lọc thanh khoản tối thiểu (ví dụ: GTGD trung bình 20 phiên > 10 tỷ VNĐ) để tránh rủi ro thanh khoản kém.

3. Tỷ lệ Sharpe tối ưu có bị hiện tượng quá khớp (Overfitting) không?

Có thể xảy ra nếu tập dữ liệu In-sample quá ngắn. Đề tài đã khắc phục bằng cách sử dụng tập huấn luyện dài hạn lên tới 5 năm (2018 - 2022, trải qua cả giai đoạn thị trường tăng trưởng mạnh và sụt giảm sâu) và tiến hành kiểm định độc lập trên dữ liệu Out-of-sample năm 2023.

4. Tại sao lại áp đặt ràng buộc tỷ trọng từ 10% đến 50% cho mỗi cổ phiếu?

Ràng buộc $w_i \ge 10%$ đảm bảo danh mục không bỏ sót cổ phiếu tiềm năng đã được chọn trong Top 5; ràng buộc $w_i \le 50%$ nhằm triệt tiêu rủi ro tập trung quá mức vào một cổ phiếu duy nhất theo đúng nguyên lý đa dạng hóa danh mục của Harry Markowitz.

5. Chi phí triển khai và thời gian hoàn vốn (ROI) ước tính như thế nào?

Chi phí phát triển phần mềm gần như bằng 0 nhờ hệ sinh thái mã nguồn mở Python. Với tỷ suất sinh lời vượt trội +31.42%/năm trên danh mục kiểm định 1 tỷ VNĐ, hệ thống mang lại giá trị gia tăng kinh tế ngay trong chu kỳ đầu tư đầu tiên.


Kết luận

Khóa luận tốt nghiệp đã hoàn thành xuất sắc việc xây dựng và thực nghiệm hệ thống giao dịch chứng khoán định lượng dựa trên 4 chỉ báo kỹ thuật (SMA, Bollinger Bands, RSI, MACD) kết hợp lý thuyết tối ưu hóa danh mục hiện đại Markowitz trên ngôn ngữ lập trình Python.

Kết quả kiểm định thực tế năm 2023 chứng minh danh mục tối ưu hóa theo chỉ báo RSI đạt tỷ suất sinh lợi vượt bậc +31.42%, khẳng định tính hiệu quả và vượt trội của phương pháp giao dịch định lượng có kỷ luật so với chỉ số chung thị trường. Nghiên cứu mở ra tiềm năng lớn cho việc ứng dụng khoa học dữ liệu và học máy vào việc tự động hóa quản trị tài chính cá nhân và quản lý quỹ chuyên nghiệp tại Việt Nam.