
Strategi ini adalah sistem perdagangan pengesanan trend berdasarkan pelbagai petunjuk teknikal. Ia menggabungkan garis rata-rata (EMA), indikator kekuatan relatif (RSI), jumlah perdagangan (Volume) dan indikator gelombang sebenar (ATR) untuk menentukan masa masuk, dan menggunakan ATR untuk menetapkan kedudukan berhenti dan berhenti secara dinamik.
Strategi menggunakan persilangan EMA cepat (siklus 9) dan EMA perlahan (siklus 21) untuk menangkap perubahan trend. Atas dasar itu, gabungan RSI (siklus 14) untuk menyaring kawasan jual beli yang berlebihan, memerlukan nilai RSI di luar kawasan overbought (siklus 70) dan oversold (siklus 30). Pada masa yang sama, strategi memerlukan perdagangan yang lebih besar daripada rata-rata perdagangan 20 siklus, dan memerlukan harga penutupan untuk memecahkan garis K sebelumnya sebagai tambahan konfirmasi masuk.
Masukkan parameter penunjuk penyesuaian: Tetapan kitaran EMA dan RSI boleh disesuaikan secara automatik mengikut turun naik pasaran, menjadikan strategi lebih sesuai dengan keadaan pasaran yang berbeza.
Tambahkan penapis persekitaran pasaran: Tambah indikator kekuatan trend seperti ADX, turunkan kedudukan secara automatik atau hentikan dagangan di pasaran horizontal.
Optimumkan program penangguhan: Anda boleh mempertimbangkan untuk meningkatkan keberkesanan penghentian kerosakan dengan menggunakan tetapan kedudukan rintangan sokongan.
Pengurusan jumlah transaksi yang lebih baik: Menyesuaikan saiz pegangan mengikut turun naik pasaran dan dinamika kecairan.
Ini adalah strategi pengesanan trend yang berstruktur dan logik yang ketat. Dengan penggunaan gabungan pelbagai petunjuk teknikal, ia memastikan kebolehpercayaan isyarat perdagangan dan mengawal risiko dengan berkesan. Tetapan stop loss yang dinamik memberikan perbandingan risiko dan keuntungan yang baik.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=6
strategy("15m EMA RSI Strategy with ATR SL/TP and Candle Break Confirmation", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// INPUTS
fastLength = input.int(9, title="Fast EMA Length")
slowLength = input.int(21, title="Slow EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
volLength = input.int(20, title="Volume MA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplierSL = input.float(1.5, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input.float(3.0, title="ATR Multiplier for Take Profit")
trailingStopMultiplier = input.float(1.0, title="ATR Multiplier for Trailing Stop")
// INDICATOR CALCULATIONS
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
rsiValue = ta.rsi(close, rsiLength)
volMA = ta.sma(volume, volLength)
atr = ta.atr(atrLength)
// Candle Breakout Conditions for Confirmation
longCandleBreak = close > high[1]
shortCandleBreak = close < low[1]
// Plot EMAs for visual reference
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")
// ENTRY CONDITIONS
longCondition = ta.crossover(fastEMA, slowEMA) and (rsiValue < rsiOverbought) and (volume > volMA) and longCandleBreak
shortCondition = ta.crossunder(fastEMA, slowEMA) and (rsiValue > rsiOversold) and (volume > volMA) and shortCandleBreak
// Plot Buy/Sell Signals on the Chart
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, size=size.normal)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, size=size.normal)
// TRADE EXECUTION WITH ATR-BASED STOP LOSS, TAKE PROFIT, AND TRAILING STOP
if longCondition
longStop = close - atrMultiplierSL * atr
longTP = close + atrMultiplierTP * atr
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=longStop, limit=longTP, trail_points=atr * trailingStopMultiplier)
if shortCondition
shortStop = close + atrMultiplierSL * atr
shortTP = close - atrMultiplierTP * atr
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=shortStop, limit=shortTP, trail_points=atr * trailingStopMultiplier)
// OPTIONAL: Plot RSI for reference
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsiValue, color=color.purple, title="RSI")