
Ini adalah strategi mengikuti tren berdasarkan persilangan rata-rata pergerakan eksponensial (EMA) dan konfirmasi indeks kekuatan relatif (RSI). Strategi ini menggabungkan sinyal persilangan EMA jangka pendek dan jangka panjang dengan konfirmasi momentum RSI, sekaligus mengintegrasikan mekanisme stop-loss persentase, yang bertujuan untuk menangkap titik balik penting dalam tren pasar dan mengendalikan risiko. Inti dari strategi ini adalah untuk meningkatkan akurasi dan keandalan transaksi sambil memastikan keamanan transaksi melalui sinergi indikator teknis.
Strategi ini menggunakan mekanisme penyaringan indikator teknis ganda: pertama, titik balik tren potensial diidentifikasi melalui persilangan EMA jangka pendek (9 periode) dan EMA jangka panjang (21 periode). Ketika EMA jangka pendek melintasi EMA jangka panjang ke atas dan nilai RSI lebih tinggi dari level yang ditetapkan, sistem menghasilkan sinyal panjang; ketika EMA jangka pendek melintasi EMA jangka panjang ke bawah dan nilai RSI lebih rendah dari level yang ditetapkan, sistem akan menghasilkan sinyal pendek. Pada saat yang sama, strategi ini memperkenalkan mekanisme stop-loss berbasis persentase, menetapkan harga stop-loss yang dinamis untuk setiap transaksi guna mengendalikan risiko penurunan secara efektif.
Strategi ini membangun sistem perdagangan pelacakan tren yang lengkap dengan menggabungkan sistem rata-rata pergerakan dan indikator momentum. Keuntungan utama dari strategi ini terletak pada mekanisme konfirmasi sinyal yang andal dan sistem pengendalian risiko yang sempurna. Walau ada beberapa keterbatasan yang melekat, kinerja strategi secara keseluruhan diharapkan dapat lebih ditingkatkan melalui arah pengoptimalan yang diusulkan. Ini adalah kerangka strategi kuat yang cocok untuk pedagang tren jangka menengah hingga panjang.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple Trend Following Strategy", overlay=true)
// Inputs
shortEMA = input.int(9, title="Short EMA Length", minval=1)
longEMA = input.int(21, title="Long EMA Length", minval=1)
confirmationRSI = input.int(50, title="RSI Confirmation Level", minval=1, maxval=100)
stopLossPercent = input.float(2, title="Stop Loss Percentage", minval=0.1) // Stop Loss percentage
// Calculations
emaShort = ta.ema(close, shortEMA)
emaLong = ta.ema(close, longEMA)
rsiValue = ta.rsi(close, 14)
// Buy and Sell Conditions
buySignal = ta.crossover(emaShort, emaLong) and rsiValue > confirmationRSI
sellSignal = ta.crossunder(emaShort, emaLong) and rsiValue < confirmationRSI
// Plotting Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plotting EMAs
plot(emaShort, title="Short EMA", color=color.yellow)
plot(emaLong, title="Long EMA", color=color.purple)
// Strategy logic
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Calculate stop loss price based on stopLossPercent
longStopLossPrice = strategy.position_avg_price * (1 - stopLossPercent / 100)
shortStopLossPrice = strategy.position_avg_price * (1 + stopLossPercent / 100)
// Draw stop loss line for long positions
if (strategy.position_size > 0) // For long positions
line.new(x1=bar_index, y1=longStopLossPrice, x2=bar_index + 1, y2=longStopLossPrice, color=color.red, width=2, style=line.style_dashed)
// Draw stop loss line for short positions
if (strategy.position_size < 0) // For short positions
line.new(x1=bar_index, y1=shortStopLossPrice, x2=bar_index + 1, y2=shortStopLossPrice, color=color.green, width=2, style=line.style_dashed)