
Chiến lược này là hệ thống giao dịch theo xu hướng động lượng dựa trên nhiều chỉ báo kỹ thuật. Nó xác định tín hiệu mua và bán trên thị trường bằng cách kết hợp chỉ số sức mạnh tương đối (RSI), đường trung bình động hội tụ phân kỳ (MACD) và các chỉ báo ngẫu nhiên. Chiến lược này áp dụng phương pháp ngưỡng xác suất và sử dụng chuẩn hóa điểm Z để lọc tín hiệu giao dịch và cải thiện độ tin cậy của giao dịch. Chiến lược này đặc biệt phù hợp với giao dịch theo xu hướng ở cấp độ hàng ngày.
Chiến lược này chủ yếu dựa trên ba chỉ số kỹ thuật cốt lõi:
Đây là một chiến lược sáng tạo kết hợp các chỉ số kỹ thuật cổ điển với các phương pháp thống kê hiện đại. Thông qua việc phối hợp nhiều chỉ số và lọc ngưỡng xác suất, hiệu quả giao dịch được cải thiện trong khi vẫn duy trì tính mạnh mẽ của chiến lược. Chiến lược này có khả năng thích ứng và mở rộng mạnh mẽ, phù hợp với giao dịch theo xu hướng trung và dài hạn. Mặc dù có một số rủi ro về độ trễ, hiệu suất giao dịch ổn định vẫn có thể đạt được thông qua việc tối ưu hóa thông số hợp lý và quản lý rủi ro.
/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI-MACD-Stochastic Strategy", shorttitle = "RMS_V1", overlay=true)
// Inputs
use_macd = input.bool(true, title="Use MACD")
use_rsi = input.bool(true, title="Use RSI")
use_stochastic = input.bool(true, title="Use Stochastic")
threshold_buy = input.float(0.5, title="Buy Threshold (Probability)")
threshold_sell = input.float(-0.5, title="Sell Threshold (Probability)")
// Indicators
// RSI
rsi_period = input.int(14, title="RSI Period")
rsi = ta.rsi(close, rsi_period)
// Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, rsi_period)
stoch_d = ta.sma(stoch_k, 3)
// MACD
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
// Calculate Z-score
lookback = input.int(20, title="Z-score Lookback Period")
mean_close = ta.sma(close, lookback)
stddev_close = ta.stdev(close, lookback)
zscore = (close - mean_close) / stddev_close
// Buy and Sell Conditions
long_condition = (use_rsi and rsi < 30) or (use_stochastic and stoch_k < 20) or (use_macd and macd_line > signal_line)
short_condition = (use_rsi and rsi > 70) or (use_stochastic and stoch_k > 80) or (use_macd and macd_line < signal_line)
buy_signal = long_condition and zscore > threshold_buy
sell_signal = short_condition and zscore < threshold_sell
// Trading Actions
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)