
Strategi ini adalah sistem perdagangan silang yang didasarkan pada indeks moving average (EMA) dan indeks relative strength (RSI). Strategi ini menentukan kapan masuk dan keluar melalui persilangan harga dengan EMA dan tingkat overbought dan oversold dari indikator RSI. Sistem ini dirancang dengan mekanisme stop loss dan profit yang lengkap dan mampu mengendalikan risiko secara efektif.
Strategi ini didasarkan pada logika inti sebagai berikut:
Strategi ini, dengan menggabungkan EMA dan RSI, dua indikator teknis klasik, membangun sistem perdagangan dengan fitur pelacakan tren dan pembalikan. Mekanisme kontrol risiko yang baik dan desain parameter yang dapat disesuaikan membuatnya memiliki kepraktisan yang baik. Namun, optimasi parameter strategi dan adaptasi pasar masih memiliki ruang untuk ditingkatkan, dan disarankan bagi pedagang untuk melakukan optimasi yang ditargetkan dalam kombinasi dengan fitur pasar saat diterapkan di pasar.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-10-05 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("EMA & RSI Custom Strategy", overlay=true)
// Input Parameters
emaLength = input.int(68, title="EMA Length")
rsiLength = input.int(13, title="RSI Period")
buyOffset = input.float(2, title="Buy Offset (above EMA)")
sellOffset = input.float(2, title="Sell Offset (below EMA)")
stopLossPoints = input.float(20, title="Stop Loss (points)")
buyRSIProfitLevel = input.int(70, title="Buy RSI Profit Level")
sellRSIProfitLevel = input.int(28, title="Sell RSI Profit Level")
// EMA and RSI Calculations
ema = ta.ema(close, emaLength)
rsi = ta.rsi(close, rsiLength)
// Buy Condition
buyPrice = ema + buyOffset
buyCondition = ta.crossover(close, buyPrice)
if buyCondition
strategy.entry("Buy", strategy.long)
// Stop Loss and Profit for Buy
if strategy.position_size > 0
if close <= strategy.position_avg_price - stopLossPoints
strategy.close("Buy", comment="Stop Loss")
if rsi >= buyRSIProfitLevel
strategy.close("Buy", comment="Profit Target")
// Sell Condition
sellPrice = ema - sellOffset
sellCondition = ta.crossunder(close, sellPrice)
if sellCondition
strategy.entry("Sell", strategy.short)
// Stop Loss and Profit for Sell
if strategy.position_size < 0
if close >= strategy.position_avg_price + stopLossPoints
strategy.close("Sell", comment="Stop Loss")
if rsi <= sellRSIProfitLevel
strategy.close("Sell", comment="Profit Target")
// Plot EMA
plot(ema, color=color.blue, title="EMA 68")