
Strategi ini disebut “strategi RSI50_EMA long position”, dan ide utamanya adalah memanfaatkan sinyal silang dari dua indikator teknis yang relatif kuat ((RSI) dan indeks moving average ((EMA) untuk membuat keputusan perdagangan. Berposisi lebih tinggi ketika harga naik dari bawah dan menembus EMA dan RSI lebih besar dari 50, dan berposisi lebih tinggi ketika harga naik dari atas dan menembus EMA atau RSI turun di bawah 50.
Strategi RSI50_EMA adalah strategi pelacakan tren yang sederhana dan mudah digunakan berdasarkan RSI dan EMA, yang cocok untuk digunakan dalam situasi yang bergelombang. Logika strategi ini jelas, keunggulan jelas, tetapi juga ada beberapa kekurangan dan risiko. Dengan memperkenalkan lebih banyak indikator tambahan, parameter optimasi, dan pengendalian risiko yang lebih baik, stabilitas dan keuntungan strategi ini dapat ditingkatkan lebih lanjut.
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("RSI50_EMA Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input(11, type=input.integer, minval=1, title="Length")
mul = input(2, type=input.float, minval=0, title="Multiplier")
rsicap = input(50, type=input.integer, minval=1, title="rsicap")
rsi_1 = rsi(close,20)
price = sma(close, 2)
average = ema(close, len)
diff = atr(len) * mul
bull_level = average + diff
bear_level = average - diff
bull_cross = crossover(price, bull_level)
RENTRY = crossover(rsi_1,rsicap)
bear_cross = crossover(bear_level, price)
EXIT = crossunder(rsi_1,50)
strategy.entry("Buy", strategy.long, when=bull_cross)
strategy.close("Buy", when=bear_cross) //strategy.entry("Sell", strategy.short, when=bear_cross)
if (RENTRY)
strategy.entry("RSI", strategy.long, when=bull_cross)
if (EXIT)
strategy.close("RSICLose", when=bull_cross) //strategy.entry("Sell", strategy.short, when=bear_cross)
plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)