
Strategi ini adalah sistem perdagangan intraday yang menggabungkan beberapa indikator teknis, terutama berdasarkan sinyal silang indeks bergerak cepat dan lambat ((EMA) sebagai dasar masuk utama, sementara digabungkan dengan indeks relatif kuat ((RSI) untuk melakukan penyaringan momentum, dan menggunakan indikator real amplitude ((ATR) untuk mengatur posisi stop loss secara dinamis, untuk membangun sistem perdagangan yang lengkap. Strategi ini memungkinkan untuk menangkap pergerakan pasar jangka pendek melalui kontrol risiko yang ketat dan pengaturan stop loss yang dinamis.
Logika inti dari strategi ini meliputi:
Aturan transaksi yang spesifik adalah sebagai berikut:
Saran pengendalian risiko:
Strategi ini membangun sistem perdagangan yang lebih lengkap dengan menggabungkan pelacakan tren EMA, penyaringan momentum RSI, dan kontrol risiko dinamis ATR. Strategi ini terutama ditandai dengan memanfaatkan efek sinergis dari beberapa indikator teknis, dengan fokus pada manajemen risiko. Meskipun ada ruang untuk optimasi, konsep desain keseluruhan sesuai dengan pemikiran sistematisasi perdagangan kuantitatif.
/*backtest
start: 2024-02-10 00:00:00
end: 2025-02-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Day Trading EMA/RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Ulazni parametri
fastEmaPeriod = input.int(9, "Fast EMA Period", minval=1)
slowEmaPeriod = input.int(21, "Slow EMA Period", minval=1)
rsiPeriod = input.int(14, "RSI Period", minval=1)
rsiOversold = input.int(30, "RSI Oversold Level")
rsiOverbought = input.int(70, "RSI Overbought Level")
atrPeriod = input.int(14, "ATR Period", minval=1)
atrMultiplier = input.float(1.5, "ATR Multiplier za Stop Loss", step=0.1)
takeProfitFactor= input.float(2.0, "Take Profit Factor", step=0.1)
// Izračun indikatora
fastEMA = ta.ema(close, fastEmaPeriod)
slowEMA = ta.ema(close, slowEmaPeriod)
rsiValue = ta.rsi(close, rsiPeriod)
atrValue = ta.atr(atrPeriod)
// Definicija trenda: ako je fastEMA iznad slowEMA, smatramo da je trend uzlazan, inače silazni.
trendUp = fastEMA > slowEMA
trendDown = fastEMA < slowEMA
// Uvjeti za ulaz:
// Ulaz u long poziciju: crossover fastEMA i slowEMA, uz filtriranje da RSI nije prekupovan (manje od rsiOverbought)
longCondition = ta.crossover(fastEMA, slowEMA) and (rsiValue < rsiOverbought)
// Ulaz u short poziciju: crossunder fastEMA i slowEMA, uz filtriranje da RSI nije preprodavan (više od rsiOversold)
shortCondition = ta.crossunder(fastEMA, slowEMA) and (rsiValue > rsiOversold)
// Definicija dinamičnih stop-loss razina (ATR-based)
stopLossLong = close - (atrMultiplier * atrValue)
stopLossShort = close + (atrMultiplier * atrValue)
// Izvršenje naloga
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=stopLossLong, limit=close + (takeProfitFactor * atrValue))
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=stopLossShort, limit=close - (takeProfitFactor * atrValue))
// Plotanje indikatora za preglednost
plot(fastEMA, title="Fast EMA", color=color.green)
plot(slowEMA, title="Slow EMA", color=color.red)