
Đây là một chiến lược giao dịch xu hướng dựa trên xác nhận các chỉ số kỹ thuật đa dạng, kết hợp với moving averages, chỉ số động lực và phân tích giao dịch để lọc tín hiệu giao dịch. Chiến lược sử dụng cơ chế lọc ba lớp bao gồm định hướng xu hướng ((EMA crossover), xác nhận cường độ động lực ((RSI và MACD) và xác minh giao dịch ((Quantity breakout và OBV xu hướng), và được trang bị hệ thống kiểm soát rủi ro dựa trên ATR.
Chiến lược này hoạt động dựa trên cơ chế xác nhận ba lần:
Quản lý rủi ro sử dụng 1.5 lần ATR làm tiêu chuẩn dừng lỗ, và mặc định là 1: 2 rủi ro lợi nhuận so với mục tiêu lợi nhuận.
Đây là một chiến lược giao dịch xác nhận nhiều lớp được thiết kế tốt, cung cấp tín hiệu giao dịch tương đối đáng tin cậy bằng cách kết hợp nhiều chỉ số kỹ thuật. Hệ thống quản lý rủi ro của chiến lược khá hoàn hảo, nhưng vẫn cần các nhà giao dịch tối ưu hóa các tham số theo môi trường thị trường cụ thể. Chiến lược này phù hợp nhất để sử dụng trong thị trường có tính biến động, đầy đủ tính thanh khoản và yêu cầu các nhà giao dịch có một số cơ sở phân tích kỹ thuật.
/*backtest
start: 2025-02-12 00:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("5min Triple Confirmation Crypto Strategy", overlay=true, margin_long=100, margin_short=100)
// ===== Inputs =====
fast_length = input.int(9, "Fast EMA Length")
slow_length = input.int(21, "Slow EMA Length")
rsi_length = input.int(14, "RSI Length")
volume_ma_length = input.int(20, "Volume MA Length")
atr_length = input.int(14, "ATR Length")
risk_reward = input.float(2.0, "Risk:Reward Ratio")
// ===== 1. Trend Confirmation (EMA Crossover) =====
fast_ema = ta.ema(close, fast_length)
slow_ema = ta.ema(close, slow_length)
bullish_trend = ta.crossover(fast_ema, slow_ema)
bearish_trend = ta.crossunder(fast_ema, slow_ema)
// ===== 2. Momentum Confirmation (RSI + MACD) =====
rsi = ta.rsi(close, rsi_length)
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
bullish_momentum = rsi > 50 and ta.crossover(macd_line, signal_line)
bearish_momentum = rsi < 50 and ta.crossunder(macd_line, signal_line)
// ===== 3. Volume Confirmation (Volume Spike + OBV) =====
volume_ma = ta.sma(volume, volume_ma_length)
volume_spike = volume > 1.8 * volume_ma
obv = ta.obv
obv_trend = ta.ema(obv, 5) > ta.ema(obv, 13)
// ===== Entry Conditions =====
long_condition =
bullish_trend and
bullish_momentum and
volume_spike and
obv_trend
short_condition =
bearish_trend and
bearish_momentum and
volume_spike and
not obv_trend
// ===== Risk Management =====
atr = ta.atr(atr_length)
long_stop = low - 1.5 * atr
long_target = close + (1.5 * atr * risk_reward)
short_stop = high + 1.5 * atr
short_target = close - (1.5 * atr * risk_reward)
// ===== Strategy Execution =====
strategy.entry("Long", strategy.long, when=long_condition)
strategy.exit("Long Exit", "Long", stop=long_stop, limit=long_target)
strategy.entry("Short", strategy.short, when=short_condition)
strategy.exit("Short Exit", "Short", stop=short_stop, limit=short_target)
// ===== Visual Alerts =====
plotshape(long_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(short_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
plot(fast_ema, "Fast EMA", color=color.blue)
plot(slow_ema, "Slow EMA", color=color.orange)