
Strategi ini adalah sistem perdagangan mengikuti tren yang didasarkan pada beberapa persilangan rata-rata pergerakan dan indikator RSI. Strategi ini menggabungkan tiga rata-rata pergerakan EMA20, EMA50, dan SMA200, menilai tren pasar melalui hubungan posisi rata-rata pergerakan, dan menggunakan indikator RSI untuk menyaring sinyal perdagangan, dan melakukan perdagangan saat harga menembus titik tertinggi sebelumnya. Strategi ini menetapkan kondisi take-profit dan stop-loss yang tetap dan cocok untuk dijalankan pada level 1 jam dan harian.
Logika inti dari strategi ini didasarkan pada kondisi utama berikut:
Strategi ini adalah sistem pelacakan tren dengan struktur lengkap dan logika yang jelas. Melalui penggunaan berbagai indikator teknis yang terkoordinasi, tren pasar dapat ditangkap secara efektif sekaligus memiliki mekanisme pengelolaan risiko yang lengkap. Ada ruang besar untuk optimalisasi strategi, dan perbaikan berkelanjutan dapat lebih meningkatkan stabilitas dan profitabilitas strategi. Bagi pedagang jangka menengah dan panjang, ini adalah kerangka strategi yang patut dicoba.
/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA/SMA Strategy", overlay=false)
// Input parameters
ema20Length = input(20, title="20 EMA Length")
ema50Length = input(50, title="50 EMA Length")
sma200Length = input(200, title="200 SMA Length")
rsiLength = input(14, title="RSI Length")
rsiThreshold = input(40, title="RSI Threshold")
// Calculate indicators
ema20 = ta.ema(close, ema20Length)
ema50 = ta.ema(close, ema50Length)
sma200 = ta.sma(close, sma200Length)
rsiValue = ta.rsi(close, rsiLength)
// Conditions
emaCondition = ema20 > ema50 and sma200 < ema20 and sma200 < ema50
priceNearEMA = (close <= ema20 * 1.01 and close >= ema20 * 0.99) or (close <= ema50 * 1.01 and close >= ema50 * 0.99)
rsiCondition = rsiValue > rsiThreshold
// Entry condition: Price crosses previous candle high
entryCondition = priceNearEMA and rsiCondition and emaCondition and (close > high[1])
// Strategy entry
if entryCondition
strategy.entry("Long", strategy.long)
// Take profit and stop loss settings
takeProfitLevel = strategy.position_avg_price * 1.25 // Take profit at +25%
stopLossLevel = strategy.position_avg_price * 0.90 // Stop loss at -10%
// Exit conditions
if strategy.position_size > 0
strategy.exit("Take Profit", from_entry="Long", limit=takeProfitLevel)
strategy.exit("Stop Loss", from_entry="Long", stop=stopLossLevel)
// Plotting indicators for visualization
plot(ema20, color=color.blue, title="20 EMA")
plot(ema50, color=color.red, title="50 EMA")
plot(sma200, color=color.green, title="200 SMA")
hline(rsiThreshold, "RSI Threshold", color=color.orange)