Giới thiệu dự án

Thị trường tài chính toàn cầu, đặc biệt là thị trường ngoại hối (Forex) với quy mô thanh khoản vượt hơn 7.500 tỷ USD mỗi ngày, là môi trường giao dịch phi tuyến tính, biến động liên tục và chịu tác động bởi vô số yếu tố vĩ mô phức tạp. Trong bối cảnh các phương pháp giao dịch truyền thống bộc lộ nhiều hạn chế về độ trễ và yếu tố tâm lý con người, việc ứng dụng trí tuệ nhân tạo (AI) và các mô hình học máy (Machine Learning - ML), học sâu (Deep Learning - DL) trong phân tích chuỗi thời gian (Time-Series) đang trở thành xu hướng tất yếu của ngành tài chính định lượng (Quantitative Finance).

Đồ án tốt nghiệp "Thiết kế chiến lược giao dịch tỷ giá hối đoái áp dụng mô hình xử lý chuỗi thời gian" do sinh viên Nguyễn Huy Mạnh thực hiện dưới sự hướng dẫn của TS. Nguyễn Thị Huyền Châu tại Khoa Công nghệ Thông tin - Trường Đại học Thăng Long (10/2024), tập trung giải quyết bài toán cốt lõi: Làm thế nào để xây dựng một chiến lược giao dịch tự động hóa tối ưu trên cặp tiền tệ EUR/USD, vừa tối đa hóa tỷ suất sinh lời điều chỉnh theo rủi ro (Sharpe Ratio), vừa kiểm soát chặt chẽ mức sụt giảm tài sản tối đa (Maximum Drawdown - MDD)?

[Dữ liệu M1 (2010-2024)] ➔ [Resample M15 (Tokyo Session)] ➔ [9 Đặc trưng Trend & Vị thế]

Mục tiêu nghiên cứu cụ thể

  1. Nghiên cứu và chuẩn hóa dữ liệu tài chính: Thu thập và tiền xử lý dữ liệu tick/phút từ sàn giao dịch quốc tế giai đoạn 2010–2024 cho cặp tiền EUR/USD.
  2. Thiết kế không gian đặc trưng đa khung thời gian: Xây dựng 6 biến xu hướng (Trend Features) và 3 biến vị thế động lượng kết hợp đạo hàm vận tốc (Velocity Indicators).
  3. Phát triển thuật toán gán nhãn dữ liệu tối ưu: Thiết kế phương pháp gán nhãn phát hiện đỉnh/đáy cục bộ dịch chuyển (Shifted Moving Average Labeling) nhằm hạn chế độ trễ vào lệnh.
  4. Đánh giá và so sánh thực nghiệm đa mô hình: Triển khai huấn luyện từ các mô hình học máy cổ điển (Decision Tree, Gaussian Naive Bayes, Random Forest, XGBoost) đến các kiến trúc học sâu chuỗi thời gian tiên tiến (Vanilla RNN, LSTM, Transformer Encoder).
  5. Đóng gói hệ thống giao dịch tự động hóa (Algorithmic Trading Bot): Tích hợp mô hình dự báo với nền tảng MetaTrader 5 (MT5) qua Python API và cơ chế thông báo thời gian thực qua Telegram Bot.

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

  • Đối tượng nghiên cứu: Cặp tiền tệ có tính thanh khoản cao nhất thế giới EUR/USD, giúp tối ưu hóa chi phí chênh lệch giá mua/bán (Spread) và trượt giá (Slippage).
  • Khung thời gian thực thi: Tập trung vào phiên giao dịch Tokyo (Asian Session) với khung nến nén 15 phút (M15), nhằm khai thác tính ổn định trước khi mở rộng sang các phiên biến động mạnh như London và New York.
  • Tập dữ liệu kiểm thử: Dữ liệu lịch sử 14 năm (2010–2024) được phân tách thành 4 tập độc lập nhằm loại bỏ triệt để rủi ro rò rỉ dữ liệu (Data Leakage).

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

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

Phương pháp giao dịch Ưu điểm cốt lõi Nhược điểm & Rủi ro Mức độ phù hợp tự động hóa
Phân tích kỹ thuật thuần túy (Rule-based TA) Dễ hiểu, tính toán nhanh, quy tắc rõ ràng. Độ trễ cao (Lagging), tạo nhiều tín hiệu giả (Whipsaws), thiếu tính thích ứng. Thấp - Trung bình
Giao dịch đảo chiều (Mean Reversion) Hiệu quả cao trong thị trường đi ngang (Sideway). Rủi ro cháy tài khoản khi thị trường có xu hướng mạnh (Strong Trend). Trung bình
Học máy cổ điển (Random Forest, XGBoost) Khả năng nắm bắt tương quan phi tuyến, chống Overfitting tốt. Không bảo toàn cấu trúc tuần tự và phụ thuộc thời gian dài hạn. Khá
Học sâu chuỗi thời gian (LSTM, Transformer) Nắm bắt phụ thuộc xa (Long-term Dependencies), biểu diễn ngữ nghĩa không gian ẩn mạnh mẽ. Chi phí tính toán cao, cần tinh chỉnh ngưỡng (Threshold) nghiêm ngặt. Rất cao (Tối ưu)

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must-have (Bắt buộc có): Module kết nối real-time MT5 API, Pipeline trích xuất 9 đặc trưng kỹ thuật, Mô hình suy luận Deep Learning đạt Sharpe > 1.5 trên tập Out-of-sample, Hệ thống cảnh báo Telegram.
  • Should-have (Nên có): Thuật toán tự động quét không gian ngưỡng (Grid Threshold Search) để cân bằng giữa Hit Rate và tần suất lệnh.
  • Could-have (Có thể có): Cơ chế quản lý vốn động (Dynamic Position Sizing) theo biến động ATR.
  • Won't-have (Chưa thực hiện ở giai đoạn này): Tích hợp xử lý tin tức vĩ mô (NLP News Trading) và khớp lệnh đa cặp tiền tệ đồng thời.

Thiết kế hệ thống

Kiến trúc giải pháp được phân tầng thành 4 khối chức năng chính: Khối thu thập & tiền xử lý, Khối trích xuất đặc trưng & gán nhãn, Khối mô hình dự báo AI, và Khối thực thi lệnh tự động.

graph TD
    A[Sàn Giao Dịch ACCapital / MT5 Server] -->|Dữ liệu M1 Realtime & Lịch sử| B[Data Preprocessing & Resampling M15]
    B --> C[Feature Engineering Engine]
    C -->|6 Trend Features + 3 Strategy Signals| D[Mô hình Dự Báo AI: Transformer / LSTM]
    D -->|Xác suất tín hiệu| E[Decision & Threshold Filtering Engine]
    E -->|Tín hiệu Long / Short / Neutral| F[Order Execution Client: MetaTrader 5 API]
    E -->|Thông báo lệnh & PnL| G[Telegram Alert Bot]
    F -->|Ghi log giao dịch| H[(Lịch sử Giao Dịch CSV Database)]

Technology Stack và phiên bản chuẩn

  • Ngôn ngữ lập trình: Python 3.10.12
  • Deep Learning Framework: PyTorch 2.1.2, TorchVision 0.16.2
  • Machine Learning & Data Processing: Scikit-learn 1.3.2, Pandas 2.1.4, NumPy 1.26.2
  • Nền tảng giao dịch: MetaTrader 5 Platform Build 4150, MetaTrader5 Python API 5.0.45
  • Hệ thống cảnh báo: Python-telegram-bot 20.7

Methodology

Quy trình phát triển mô hình tuân thủ quy chuẩn nghiên cứu định lượng tài chính nghiêm ngặt:

  1. Tập huấn luyện (Train Set - 2010 đến 2017): 7 năm dữ liệu giúp mô hình học bao quát các chu kỳ kinh tế và trạng thái thị trường.
  2. Tập kiểm định (Validation Set - 2017 đến 2020): Dùng để tinh chỉnh siêu tham số (Hyperparameters), hàm mất mát và tránh hiện tượng quá khớp (Overfitting).
  3. Tập kiểm tra 1 (Test 1 Set - 2020 đến 2023): Dữ liệu chưa từng thấy, dùng để tối ưu hóa không gian ngưỡng kích hoạt vị thế mua/bán nhằm tối đa hóa Sharpe Ratio và tối thiểu hóa MDD.
  4. Tập kiểm tra 2 (Test 2 Set - 2023 đến 2024): Đánh giá tính ổn định thực tế (Out-of-sample Testing) của toàn bộ chiến lược trong môi trường gần nhất trước khi triển khai Live.

Implementation và kết quả

Development process & Core Algorithms

Không gian đầu vào của mô hình được biểu diễn dưới dạng vector 9 chiều $X_t \in \mathbb{R}^9$:

  • 6 Đặc trưng xu hướng giá đa khung thời gian: $\text{trend}{1h}, \text{trend}{4h}, \text{trend}{8h}, \text{trend}{1d}, \text{trend}{1w}, \text{trend}{1m}$ được tính bằng tỷ lệ biến thiên giá: $$\text{trend}{\Delta t} = \frac{P_t - P{t-\Delta t}}{P_{t-\Delta t}}$$
  • 3 Đặc trưng vị thế động lượng tích hợp vận tốc:
    1. Vị thế Stochastic RSI: Xác định trạng thái $S_{\text{StochRSI}} \in {-1, 1}$ dựa trên vị trí so với đường MA và đạo hàm vận tốc 30 phút ($v_{30} = \frac{\Delta \text{StochRSI}}{\Delta t}$).
    2. Vị thế Awesome Oscillator (AO): Kết hợp đồng thuận giữa biểu đồ AO ngắn hạn ($\text{SMA}5 - \text{SMA}{34}$) và dài hạn.
    3. Vị thế MACD Momentum: Đánh giá giao cắt $\text{EMA}{12} - \text{EMA}{26}$ kết hợp kiểm tra gia tốc động lượng trên hai khung thời gian 30 phút và 45 phút.
import numpy as np
import pandas as pd

def extract_features_and_shifted_labels(df: pd.DataFrame, ma_window: int = 20, shift_samples: int = 3) -> pd.DataFrame:
    """
    Trích xuất không gian đặc trưng 9 chiều và gán nhãn tín hiệu dịch chuyển (Shifted MA Labeling).
    """
    data = df.copy()
    
    # 1. Trích xuất 6 đặc trưng đường xu hướng
    periods = {'1h': 4, '4h': 16, '8h': 32, 'day': 96, 'week': 480, 'month': 2016}
    for name, period in periods.items():
        data[f'trend_{name}'] = data['close'].pct_change(periods=period)
        
    # 2. Tính toán đạo hàm và vị thế kỹ thuật (MACD, Stochastic RSI, AO)
    ema12 = data['close'].ewm(span=12, adjust=False).mean()
    ema26 = data['close'].ewm(span=26, adjust=False).mean()
    macd_line = ema12 - ema26
    signal_line = macd_line.ewm(span=9, adjust=False).mean()
    macd_vel_30 = macd_line.diff(periods=2)
    macd_vel_45 = macd_line.diff(periods=3)
    data['pos_macd'] = np.where((macd_line > signal_line) & (macd_vel_30 > 0) & (macd_vel_45 > 0), 1,
                        np.where((macd_line < signal_line) & (macd_vel_30 < 0) & (macd_vel_45 < 0), -1, 0))

    # 3. Thuật toán gán nhãn dịch chuyển phát hiện vùng lân cận đỉnh/đáy
    ma_price = data['close'].rolling(window=ma_window).mean()
    ma_velocity = ma_price.diff()
    
    raw_signal = np.where((data['close'] > ma_price) & (ma_velocity > 0), 1,
                 np.where((data['close'] < ma_price) & (ma_velocity < 0), -1, 0))
    
    # Dịch chuyển mẫu (Shift forward) để vào lệnh sớm hơn điểm trễ của MA
    data['target_label'] = pd.Series(raw_signal, index=data.index).shift(-shift_samples).fillna(0)
    
    return data.dropna()

Cấu trúc kiến trúc mô hình học sâu

  • RNN: 3 lớp Vanilla RNN, Hidden Size = 50, Dropout = N/A.
  • LSTM: 2 lớp LSTM, Hidden Size = 100, Dropout = 0.3, Batch First = True.
  • Transformer Encoder: 3 lớp Transformer Encoder, Model Dimension $d_{model} = 120$, Multi-Head Attention = 4 Heads, Feed-Forward Dimension = 240, Hàm kích hoạt ReLU và chuẩn hóa LayerNorm.
import torch
import torch.nn as nn

class FinancialTimeSeriesTransformer(nn.Module):
    def __init__(self, input_dim: int = 9, d_model: int = 120, nhead: int = 4, num_layers: int = 3):
        super(FinancialTimeSeriesTransformer, self).__init__()
        self.input_embedding = nn.Linear(input_dim, d_model)
        self.pos_encoder = nn.Parameter(torch.randn(1, 100, d_model) * 0.01)
        encoder_layer = nn.TransformerEncoderLayer(
            d_model=d_model, nhead=nhead, dim_feedforward=240, 
            dropout=0.2, activation='relu', batch_first=True
        )
        self.transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=num_layers)
        self.classifier = nn.Sequential(
            nn.Linear(d_model, 64),
            nn.ReLU(),
            nn.Dropout(0.2),
            nn.Linear(64, 1),
            nn.Tanh() # Xuất giá trị liên tục trong khoảng [-1, 1] phục vụ quét ngưỡng
        )

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        # x shape: [batch_size, seq_len, input_dim]
        seq_len = x.size(1)
        out = self.input_embedding(x) + self.pos_encoder[:, :seq_len, :]
        out = self.transformer_encoder(out)
        out = self.classifier(out[:, -1, :]) # Lấy biểu diễn thời điểm t cuối cùng
        return out

Testing và validation

Thuật toán tìm kiếm ngưỡng tối ưu trên Tập Test 1

Thay vì sử dụng ngưỡng cố định 0.0, nghiên cứu triển khai thuật toán quét lưới (Grid Search) hai chiều:

  • Ngưỡng Mua ($\theta_{\text{buy}}$): Quét từ $0.00$ đến $+1.00$ với bước nhảy $\Delta = 0.05$.
  • Ngưỡng Bán ($\theta_{\text{sell}}$): Quét từ $-1.00$ đến $0.00$ với bước nhảy $\Delta = 0.05$.
  • Hàm mục tiêu: Tối đa hóa hàm đánh giá đa mục tiêu: $$\mathcal{O}(\theta_{\text{buy}}, \theta_{\text{sell}}) = \arg\max \left( \text{Sharpe Ratio} - \lambda \cdot \text{Maximum Drawdown} \right)$$
Thuật toán Quét Ngưỡng (Grid Search):

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

Chiến lược gán nhãn lý thuyết (Oracle Labeling Backtest) đạt các chỉ số: Sharpe Ratio = 21.5, Tỷ suất sinh lời hàng năm = 71.0%, Tỷ lệ trúng (Hit Rate) = 81.0%, khẳng định tính đúng đắn và trần hiệu suất tiềm năng của không gian đặc trưng.

Bảng tổng hợp so sánh hiệu suất giao dịch thực tế trên tập dữ liệu độc lập Test 2 (2023–2024) giữa tất cả các mô hình:

Mô hình phân loại Tỷ suất lợi nhuận năm (Annual Return) Sharpe Ratio Tỷ lệ trúng (Hit Rate) Sụt giảm tối đa (MDD) Số lệnh TB/ngày (Daily Trades) Đánh giá tổng quan
Best Decision Tree 0.89% 0.76 50.79% ~0.00% 0.44 Ổn định cao, lợi nhuận khiêm tốn
Gaussian Naive Bayes 1.45% 0.48 36.00% 1.87% 0.82 Độ chính xác thấp, nhiều tín hiệu nhiễu
Best Random Forest 0.11% 0.92 70.00% 0.06% 0.02 Cực kỳ an toàn, quá ít giao dịch
Best XGBoost 0.02% 0.06 38.10% 0.38% 0.05 Hiệu suất sinh lời kém trên chuỗi thời gian
Vanilla RNN 8.72% 2.16 31.51% 0.80% 1.25 Bắt sóng lớn bù lệnh thua, phụ thuộc Outliers
Long Short-Term Memory (LSTM) 5.85% 2.64 52.27% 0.68% 0.94 Cân bằng vượt trội giữa rủi ro & tỷ lệ thắng
Transformer Model 11.93% 3.09 55.40% 1.40% 1.68 Mô hình xuất sắc nhất toàn diện

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

  1. Phương pháp gán nhãn dịch chuyển khắc phục độ trễ (Shifted MA Momentum Labeling): Bằng cách kết hợp đường trung bình động với đạo hàm bậc một của vận tốc và dịch chuyển mẫu về phía trước, thuật toán bắt được các vùng vào lệnh sớm sát đáy/đỉnh cục bộ, giải quyết triệt để vấn đề "vào lệnh trễ" cố hữu của các chỉ báo phân tích kỹ thuật cổ điển.
  2. Không gian đặc trưng kết hợp 9 chiều (Hybrid Feature Engineering): Đồ án không chỉ nạp dữ liệu giá đóng cửa thô (Raw OHLCV) mà kết hợp có chọn lọc 6 chu kỳ xu hướng với 3 trạng thái động lượng tích hợp vận tốc thời gian thực, cung cấp góc nhìn đa chiều cho mạng nơ-ron.
  3. Ứng dụng thành công cơ chế Self-Attention trong giao dịch ngoại hối: Kiến trúc Transformer đã chứng minh sự vượt trội khi đạt Sharpe Ratio 3.09 (tăng 17.0% so với LSTM đạt 2.64, và vượt trội hoàn toàn so với Random Forest đạt 0.92) cùng tỷ suất sinh lời 11.93%/năm trong phiên giao dịch Tokyo.
  4. Quy trình tối ưu hóa ngưỡng 2 giai đoạn (Two-stage Threshold Optimization): Tách bạch hoàn toàn pha huấn luyện trọng số mô hình và pha tối ưu ngưỡng thực thi trên tập Test 1 độc lập, ngăn ngừa nguy cơ Curve-Fitting và Look-Ahead Bias.

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

Kiến trúc triển khai thực tế (Production Deployment)

Hệ thống giao dịch được đóng gói thành một tiến trình Python độc lập hoạt động theo chu kỳ nến M15 trên máy chủ chuyên dụng (Cloud VPS):

    [Nhóm Quản Trị Viên (Mobile / Desktop)]

Quy trình xử lý Real-time:

  1. Trigger: Cứ mỗi 15 phút tại giây thứ 01 (sau khi đóng nến M15), tiến trình Python gửi yêu cầu mt5.copy_rates_from_pos() để lấy 2.016 nến M15 gần nhất.
  2. Feature Computation: Tính toán tức thì 9 vector đặc trưng chuẩn hóa trong thời gian dưới 15ms.
  3. Inference: Nạp tensor vào mô hình Transformer chạy trên CPU/GPU để tính toán giá trị đầu ra $\hat{y}_t \in [-1, 1]$.
  4. Order Routing: So khớp với ngưỡng tối ưu $(\theta_{\text{buy}}^* = +0.11, \theta_{\text{sell}}^* = -0.12)$. Nếu vượt ngưỡng, hệ thống tự động gửi lệnh mt5.order_send() với các tham số định sẵn (Volume, Stop Loss, Take Profit, Magic Number).
  5. Alerting & Logging: Gửi thông báo chi tiết qua Telegram Bot (Giá vào, khối lượng, tỷ lệ ký quỹ) và ghi nhật ký giao dịch vào cơ sở dữ liệu CSV.

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit & ROI)

  • Chi phí hạ tầng: 1 Cloud VPS (2 vCPU, 4GB RAM) chi phí ~15–20 USD/tháng; nền tảng MT5 miễn phí bản quyền thông qua Broker.
  • Kỳ vọng hiệu suất: Với vốn ủy thác ban đầu $10,000, tỷ suất lợi nhuận kỳ vọng đạt ~11.93%/năm với mức sụt giảm tài sản tối đa được kiểm soát dưới $140 (MDD 1.40%), mang lại lợi thế phòng hộ vốn vượt trội so với gửi tiết kiệm ngân hàng hoặc giao dịch thủ công.

Lộ trình triển khai 4 giai đoạn

Tháng 1-3: Nghiên cứu, Làm sạch dữ liệu, Huấn luyện mô hình offline
Tháng 4-6: Backtest đa chu kỳ, Tối ưu hóa không gian ngưỡng trên Test 1 & 2
Tháng 7-9: Triển khai Paper Trading (Demo Account) kiểm tra Slippage & API
Tháng 10+: Triển khai Live Trading với cơ chế quản lý vốn từng phần

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

Hạn chế kỹ thuật

  • Phạm vi phiên hẹp: Mô hình mới được tối ưu hóa riêng biệt cho phiên giao dịch Tokyo (thanh khoản và biên độ dao động trung bình), chưa khai thác hết tiềm năng biên độ lớn của phiên London và New York.
  • Chi phí giao dịch cố định: Backtest chưa tính toán chi tiết biến động giãn nở Spread trong các thời điểm công bố tin tức lãi suất (FOMC, ECB) hoặc trượt giá khớp lệnh mạng (Network Latency).
  • Đơn tài sản: Chưa hỗ trợ tính toán danh mục đa tài sản (Portfolio Optimization) để phân tán rủi ro chéo.

Hướng phát triển tương lai

  1. Học tăng cường sâu (Deep Reinforcement Learning - DRL): Áp dụng các thuật toán PPO (Proximal Policy Optimization) hoặc SAC (Soft Actor-Critic) để bot tự học cơ chế quản lý khối lượng lệnh động (Dynamic Position Sizing).
  2. Tích hợp mô hình ngôn ngữ lớn (LLM Multi-modal): Bổ sung module phân tích tâm lý thị trường từ tin tức tài chính (Financial News Sentiment Analysis) bằng FinBERT hoặc LLaMA-3.
  3. Mở rộng đa cặp tiền và đa phiên: Huấn luyện mô hình Transformer hợp nhất cho giỏ tiền tệ chính (GBP/USD, USD/JPY, AUD/USD) qua cả 4 phiên giao dịch toàn cầu.

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

  • Sinh viên & Học viên cao học ngành CNTT/Khoa học dữ liệu: Nguồn tài liệu tham khảo chi tiết về quy trình xây dựng đồ án ứng dụng AI vào tài chính, từ khâu xử lý chuỗi thời gian, chống rò rỉ dữ liệu đến gán nhãn tín hiệu.
  • Kỹ sư định lượng (Quant Developers): Cung cấp mã nguồn tham khảo về cách tích hợp PyTorch với nền tảng MetaTrader 5, phương pháp quét ngưỡng tối ưu hai chiều độc lập.
  • Nhà đầu tư cá nhân & Quỹ đầu tư: Sở hữu một chiến lược giao dịch tự động có kỷ luật thép, tỷ lệ Sharpe cao (3.09), loại bỏ hoàn toàn yếu tố cảm xúc tiêu cực trong giao dịch.
  • Nhà nghiên cứu học thuật: Cung cấp số liệu thực nghiệm đối sánh rõ ràng giữa 7 kiến trúc học máy từ cổ điển đến Attention-based trên dữ liệu chuỗi thời gian tài chính thực tế 14 năm.

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ VPS chạy hệ điều hành Windows Server hoặc Linux (hỗ trợ Wine để chạy MT5), cấu hình tối thiểu 2 vCPU, 4GB RAM và 20GB ổ cứng SSD. Về phần mềm, cần cài đặt Python 3.10+, PyTorch CPU/GPU, MetaTrader 5 Terminal và kết nối mạng ổn định với độ trễ (Ping) tới máy chủ sàn giao dịch dưới 50ms.

2. Tại sao mô hình Transformer lại có tỷ suất lợi nhuận và Sharpe Ratio cao hơn RNN/LSTM?

Khác với RNN/LSTM xử lý dữ liệu tuần tự từng bước và dễ bị mất mát thông tin trên chuỗi dài, Transformer sử dụng cơ chế Self-Attention cho phép mô hình quan sát trực tiếp và tính toán trọng số tương quan giữa tất cả các điểm thời gian trong quá khứ cùng một lúc. Điều này giúp mô hình phát hiện chính xác các mô hình nến đảo chiều phức tạp và tương quan phi tuyến trong chuỗi thời gian tài chính.

3. Hệ thống xử lý sự cố mất kết nối mạng hoặc treo phần mềm như thế nào?

Trong quá trình phát triển hệ thống, các khối try...except và cơ chế tự phục hồi (Auto-Reconnect) được cài đặt quanh các hàm gọi MT5 API. Khi có lệnh mở, hệ thống luôn đặt cứng mức Stop Loss (Cắt lỗ) và Take Profit (Chốt lời) trực tiếp trên máy chủ của Broker để bảo vệ tài khoản ngay cả khi phần mềm Python gặp sự cố hoặc mất điện đột ngột.

4. Chiến lược có bị Overfitting (quá khớp) với dữ liệu quá khứ không?

Chiến lược được thiết kế để phòng chống Overfitting tối đa thông qua: (1) Phân chia 4 tập dữ liệu độc lập không gối đầu (Train, Val, Test 1, Test 2); (2) Sử dụng kỹ thuật Dropout và Regularization trong mạng nơ-ron; (3) Tối ưu hóa ngưỡng thực thi trên tập Test 1 và chỉ đánh giá kết quả cuối cùng trên tập Test 2 hoàn toàn mới.

5. Chi phí vận hành và kỳ vọng hoàn vốn (ROI) được ước tính ra sao?

Chi phí vận hành cố định chỉ bao gồm tiền thuê Cloud VPS (~200–300 USD/năm). Với mức tỷ suất sinh lời thực nghiệm 11.93%/năm và mức Drawdown cực thấp 1.40%, tài khoản quy mô từ $5,000–$10,000 có thể thu hồi toàn bộ chi phí vận hành hạ tầng chỉ trong 3–6 tháng đầu tiên hoạt động ổn định.


Kết luận

Đồ án tốt nghiệp "Thiết kế chiến lược giao dịch tỷ giá hối đoái áp dụng mô hình xử lý chuỗi thời gian" của sinh viên Nguyễn Huy Mạnh đã giải quyết thành công bài toán tự động hóa giao dịch ngoại hối thông qua cách tiếp cận khoa học dữ liệu hiện đại. Bằng việc kết hợp sáng tạo giữa kỹ thuật trích xuất đặc trưng động lượng đa khung thời gian, thuật toán gán nhãn dịch chuyển hạn chế độ trễ và kiến trúc Transformer Encoder, nghiên cứu đã chứng minh tính khả thi vượt trội với Sharpe Ratio đạt 3.09, tỷ suất sinh lời 11.93%/nămmức sụt giảm tối đa chỉ 1.40% trên cặp tiền tệ EUR/USD phiên Tokyo.

Hệ thống không chỉ dừng lại ở mô hình lý thuyết trên môi trường thử nghiệm mà đã hoàn thiện trọn vẹn thành một sản phẩm thực tế, có khả năng kết nối thời gian thực với nền tảng MetaTrader 5 và tự động cảnh báo qua Telegram. Đây là tiền đề vững chắc cho việc mở rộng sang các mô hình học tăng cường và giỏ tài sản đa dạng trong tương lai.