MA Crossover Strategy: Chiến Lược Golden Cross và Death Cross Cho Bot Trading
· MA Crossover, Moving Average, Golden Cross, Death Cross, QUANTVN, Bot Strategy
MA Crossover Strategy: Chiến Lược Golden Cross và Death Cross Cho Bot Trading
MA Crossover là chiến lược giao dịch đơn giản nhất và được backtest nhiều nhất trong lịch sử tài chính. Dù đơn giản, nó vẫn là nền tảng của nhiều hệ thống trend-following phức tạp.
MA Crossover Là Gì?
Moving Average Crossover dựa trên tín hiệu từ việc hai đường trung bình cắt nhau:
Golden Cross (Tín hiệu Mua): MA ngắn hạn cắt lên trên MA dài hạn Death Cross (Tín hiệu Bán): MA ngắn hạn cắt xuống dưới MA dài hạn
Các Cặp MA Phổ Biến
| Cặp MA | Phù hợp với | Đặc điểm | |---|---|---| | MA5/MA20 | Short-term swing | Nhiều tín hiệu, cả nhiễu | | MA20/MA50 | Medium-term | Cân bằng tín hiệu/noise | | MA50/MA200 | Long-term trend | Ít tín hiệu, ít noise | | EMA9/EMA21 | Day trading | Phản ứng nhanh hơn MA |
Implement MA Crossover Bot
import pandas as pd
import numpy as np
def ma_crossover_strategy(df, short=20, long=50):
df = df.copy()
df['ma_short'] = df['close'].rolling(short).mean()
df['ma_long'] = df['close'].rolling(long).mean()
# Tín hiệu crossover
df['signal'] = 0
# Golden Cross: short cắt lên long
df.loc[(df['ma_short'] > df['ma_long']) &
(df['ma_short'].shift(1) <= df['ma_long'].shift(1)), 'signal'] = 1
# Death Cross: short cắt xuống long
df.loc[(df['ma_short'] < df['ma_long']) &
(df['ma_short'].shift(1) >= df['ma_long'].shift(1)), 'signal'] = -1
return df
# Backtest
df_result = ma_crossover_strategy(price_data, short=20, long=50)
print(f"Số tín hiệu mua: {(df_result['signal'] == 1).sum()}")
print(f"Số tín hiệu bán: {(df_result['signal'] == -1).sum()}")
Nâng Cao MA Crossover
Thêm bộ lọc Volume: Chỉ giao dịch khi volume crossover > MA Volume 20 ngày. Giảm tín hiệu giả.
Thêm bộ lọc Market Regime: Chỉ long khi VNINDEX trên MA200, tránh mua trong downtrend thị trường.
Triple MA Crossover: Dùng 3 MA: khi MA_short > MA_medium > MA_long → Xu hướng tăng mạnh nhất.
Adaptive MA: Thay đổi period của MA theo volatility thị trường (KAMA, DEMA, TEMA).
Kết Quả Backtest Điển Hình
Backtest MA20/MA50 trên VN30 (2015-2024):
- Win Rate: ~40-45%
- Profit Factor: ~1.5-2.0
- Max Drawdown: ~15-25%
- Annual Return: ~12-18%
Lưu ý: Kết quả thực tế phụ thuộc vào phí giao dịch và slippage
MA Crossover Trong QUANTVN
QUANTVN có sẵn template MA Crossover strategy với:
- Tùy chỉnh period, loại MA (SMA/EMA/WMA)
- Backtest tự động trên dữ liệu VN
- Tối ưu hóa thông số
- Deploy live trading
Kết Luận
MA Crossover là "Hello World" của Quant Trading — đơn giản nhưng vẫn sinh lời khi được tối ưu đúng cách. Đây là điểm khởi đầu hoàn hảo để hiểu cách xây dựng và backtest chiến lược tự động.
Backtest MA Crossover ngay tại quantvn.com
Khám phá chiến lược trading tại quantvn.com