
Dual Moving Average Crossover dengan RSI Strength Filter Trading Strategy
Strategi ini adalah sistem perdagangan yang menggabungkan crossover dua rata-rata dan penyaringan indikator RSI. Strategi ini menggunakan 5-periode indeks bergerak rata-rata ((EMA5) dan 10-periode sederhana bergerak rata-rata ((SMA10) sebagai alat penilaian tren utama, sementara memperkenalkan 14 periode indeks relatif kuat lemah ((RSI14) sebagai filter sinyal perdagangan, meningkatkan akurasi perdagangan dengan persyaratan masuk dan keluar yang ketat.
Logika inti dari strategi ini didasarkan pada kombinasi dari dua indikator teknis utama:
Mekanisme pengesahan sinyal
Pengendalian Risiko Berhasil
Strategi Logika yang Jelas
Risiko pasar yang bergejolak
Risiko keterlambatan
Parameter Sensitivitas
Masukkan filter intensitas tren
Parameter optimasi beradaptasi
Manajemen Risiko yang Lebih Baik
Strategi ini, dengan menggabungkan crossover dua rata-rata dan filter RSI, membangun sistem perdagangan yang relatif sempurna. Keunggulan utama strategi ini adalah mekanisme pengakuan sinyal dan langkah-langkah pengendalian risiko, tetapi ada juga beberapa keterbatasan yang melekat. Dengan arah optimasi yang disarankan, strategi ini diharapkan untuk melakukan kinerja yang lebih baik dalam perdagangan aktual.
/*backtest
start: 2024-06-20 00:00:00
end: 2024-12-01 00:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("EMA and SMA Crossover with RSI14 Filtering", overlay=true)
// Define parameters for EMA, SMA, and RSI
ema5_length = 5
sma10_length = 10
rsi14_length = 14
rsi60_level = 60
rsi50_level = 50
// Calculate EMAs, SMAs, and RSI
ema5 = ta.ema(close, ema5_length)
sma10 = ta.sma(close, sma10_length)
rsi14 = ta.rsi(close, rsi14_length)
// Define Crossover Conditions
positive_crossover = ta.crossover(ema5, sma10)
negative_crossover = ta.crossunder(ema5, sma10)
// Define RSI filter conditions
rsi_above_60 = rsi14 > rsi60_level
rsi_below_50 = rsi14 < rsi50_level
// Condition: price below 60 on RSI 14 and later crosses above for Buy
price_below_rsi60 = close < rsi14
price_above_rsi60 = close > rsi14
// Condition: price above 50 on RSI 14 and later crosses below for Sell
price_above_rsi50 = close > rsi14
price_below_rsi50 = close < rsi14
// Trading logic
var bool active_buy_trade = false
var bool active_sell_trade = false
// Buy Condition: EMA 5 crosses above SMA 10 and RSI 14 crosses above 60
if (positive_crossover and not active_buy_trade)
if (price_below_rsi60)
// Wait for price to cross above RSI 60
if (price_above_rsi60)
strategy.entry("Buy", strategy.long)
active_buy_trade := true
else
strategy.entry("Buy", strategy.long)
active_buy_trade := true
// Sell Condition: EMA 5 crosses below SMA 10 and RSI 14 crosses below 50
if (negative_crossover and not active_sell_trade)
if (price_above_rsi50)
// Wait for price to cross below RSI 50
if (price_below_rsi50)
strategy.entry("Sell", strategy.short)
active_sell_trade := true
else
strategy.entry("Sell", strategy.short)
active_sell_trade := true
// Exit Buy Condition: Reverse Signal (EMA crosses below SMA or RSI crosses below 50)
if (active_buy_trade and (negative_crossover or rsi14 < rsi50_level))
strategy.close("Buy")
active_buy_trade := false
// Exit Sell Condition: Reverse Signal (EMA crosses above SMA or RSI crosses above 60)
if (active_sell_trade and (positive_crossover or rsi14 > rsi60_level))
strategy.close("Sell")
active_sell_trade := false
// Plotting EMAs, SMAs, and RSI 14 on the chart
plot(ema5, color=color.blue, linewidth=2, title="EMA 5")
plot(sma10, color=color.red, linewidth=2, title="SMA 10")
hline(rsi60_level, "RSI 60", color=color.gray, linestyle=hline.style_dotted)
hline(rsi50_level, "RSI 50", color=color.gray, linestyle=hline.style_dotted)
plot(rsi14, color=color.green, linewidth=1, title="RSI 14")