
Strategi ini adalah strategi pelacakan tren yang menggabungkan sistem crossover dua rata-rata dengan indeks yang relatif kuat (RSI). Strategi ini menangkap tren pasar melalui persilangan rata-rata bergerak 9 siklus dengan 21 siklus (EMA), sementara menggunakan indikator RSI untuk melakukan filter overbought dan oversold, dan menggabungkan konfirmasi jumlah transaksi untuk meningkatkan keandalan sinyal perdagangan. Strategi ini juga mengintegrasikan mekanisme stop loss dinamis berdasarkan amplitudo pergerakan nyata (ATR), yang memungkinkan kontrol risiko secara menyeluruh.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Bila EMA cepat naik melewati EMA lambat, dan RSI lebih besar dari 40, dan volume transaksi melebihi batas, sistem menghasilkan sinyal multitasking. Sebaliknya, bila EMA cepat turun melewati EMA lambat, dan RSI kurang dari 60, dan volume transaksi dikonfirmasi, sistem menghasilkan sinyal blanko.
Strategi ini menggunakan kombinasi ilmiah dari indikator teknis klasik untuk membangun sistem pelacakan tren yang ketat secara logis. Berbagai mekanisme penyaringan dan pengendalian risiko strategi ini membuatnya memiliki nilai aplikasi nyata yang kuat. Dengan arah optimasi yang disarankan, strategi ini memiliki ruang untuk peningkatan lebih lanjut.
/*backtest
start: 2024-11-07 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Call & Put Options Strategy (Optimized)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// 📌 Configuration Parameters
emaShort = input(9, title="Short EMA")
emaLong = input(21, title="Long EMA")
rsiLength = input(14, title="RSI Period")
rsiOverbought = input(60, title="RSI Overbought") // Adjusted for more signals
rsiOversold = input(40, title="RSI Oversold") // More flexible to confirm buys
atrLength = input(14, title="ATR Period")
atrMult = input(1.5, title="ATR Multiplier for Stop Loss")
minVol = input(100000, title="Minimum Volume to Confirm Entry") // Volume filter
// 🔹 Indicator Calculations
emaFast = ta.ema(close, emaShort)
emaSlow = ta.ema(close, emaLong)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)
vol = volume
// 📌 Entry Signal Conditions
condCALL = ta.crossover(emaFast, emaSlow) and rsi > rsiOversold and vol > minVol
condPUT = ta.crossunder(emaFast, emaSlow) and rsi < rsiOverbought and vol > minVol
// 🚀 Plot signals on the chart
plotshape(condCALL, location=location.belowbar, color=color.green, style=shape.labelup, title="CALL", size=size.small)
plotshape(condPUT, location=location.abovebar, color=color.red, style=shape.labeldown, title="PUT", size=size.small)
// 🎯 Alert conditions
alertcondition(condCALL, title="CALL Signal", message="📈 CALL signal confirmed")
alertcondition(condPUT, title="PUT Signal", message="📉 PUT signal confirmed")
// 📌 Risk Management - Stop Loss and Take Profit
longStop = close - (atr * atrMult)
shortStop = close + (atr * atrMult)
strategy.entry("CALL", strategy.long, when=condCALL)
strategy.exit("CALL Exit", from_entry="CALL", stop=longStop)
strategy.entry("PUT", strategy.short, when=condPUT)
strategy.exit("PUT Exit", from_entry="PUT", stop=shortStop)