
Strategi ini adalah sistem perdagangan untuk melacak tren berdasarkan rata-rata bergerak indeks multi-periode (EMA) dan indikator yang relatif kuat (RSI). Strategi ini membuat keputusan perdagangan dengan menilai tren EMA tiga periode 20, 50, 100 dengan kombinasi sinyal overbought harga dan RSI. Strategi ini terutama berlaku untuk pasar tren dan meningkatkan akurasi perdagangan dengan verifikasi beberapa indikator teknis.
Logika inti dari strategi ini mencakup bagian-bagian utama berikut:
Ini adalah sistem strategi kompleks yang menggabungkan pelacakan tren dan pembalikan momentum. Dengan penggunaan kombinasi dari beberapa indikator teknis, karakteristik risiko-penghasilan yang lebih baik dicapai sambil menjaga strategi tetap sederhana dan mudah dimengerti. Keunggulan inti dari strategi adalah mekanisme konfirmasi tren yang ketat dan sistem kontrol risiko yang baik, tetapi dalam aplikasi praktis perlu memperhatikan optimasi parameter dan adaptasi dengan lingkungan pasar. Dengan arah optimasi yang disarankan, strategi masih memiliki ruang untuk peningkatan lebih lanjut.
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover + RSI Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Calculate EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
// Calculate RSI
rsiPeriod = 14
rsiValue = ta.rsi(close, rsiPeriod)
// Determine if each EMA is trending up (current value greater than the previous value)
ema20_trending_up = ema20 > ema20[1]
ema50_trending_up = ema50 > ema50[1]
ema100_trending_up = ema100 > ema100[1]
all_emas_trending_up = ema20_trending_up and ema50_trending_up and ema100_trending_up
// Buy condition:
// 1. Price crosses above the EMA20 from below (using ta.crossover)
// 2. All three EMAs are trending upward
buySignal = ta.crossover(close, ema20) and all_emas_trending_up
// Sell conditions:
// Sell if RSI is above 70 OR price crosses below the EMA20 from above (using ta.crossunder)
sellSignal = (rsiValue > 70) or ta.crossunder(close, ema20)
// Enter a long position if the buy condition is met
if (buySignal)
strategy.entry("Long", strategy.long)
// Exit the long position if either sell condition is met
if (sellSignal)
strategy.close("Long")
// Plot the EMAs on the chart for visualization
plot(ema20, color=color.blue, title="EMA 20")
plot(ema50, color=color.orange, title="EMA 50")
plot(ema100, color=color.green, title="EMA 100")
// (Optional) Plot the RSI and a horizontal line at 70 for reference
plot(rsiValue, title="RSI", color=color.purple)
hline(70, title="Overbought (70)", color=color.red)