
Ini adalah strategi pelacakan tren yang menggabungkan persilangan garis rata dan indikator yang relatif kuat ((RSI)). Strategi ini menentukan arah tren pasar melalui persilangan rata-rata bergerak jangka pendek dan jangka panjang, sementara menggunakan RSI sebagai filter momentum untuk mengkonfirmasi kekuatan tren, sehingga meningkatkan keandalan sinyal perdagangan. Strategi ini juga mencakup persentase stop loss dan stop loss untuk manajemen risiko.
Strategi ini menggunakan rata-rata bergerak sederhana (SMA) 9 periode dan 21 periode sebagai indikator tren utama. Sistem menghasilkan beberapa sinyal ketika rata-rata jangka pendek melintasi rata-rata jangka panjang ke atas dan RSI lebih besar dari 50. Sistem menghasilkan sinyal stop loss ketika rata-rata jangka pendek melintasi rata-rata jangka panjang ke bawah dan RSI lebih kecil dari 50.
Ini adalah strategi pelacakan tren yang terstruktur dan logis dengan jelas. Ini memberikan arah tren dasar melalui persimpangan linear, RSI memberikan konfirmasi momentum, dan kemudian bekerja dengan mekanisme manajemen risiko, membentuk sistem perdagangan yang lengkap. Meskipun ada beberapa keterbatasan yang melekat, strategi ini diharapkan untuk mempertahankan kinerja yang stabil dalam berbagai lingkungan pasar melalui optimasi dan penyesuaian yang berkelanjutan.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Moving Average Crossover + RSI Strategy", overlay=true, shorttitle="MA RSI Strategy")
// --- Input Parameters ---
shortMA = input.int(9, title="Short MA Period", minval=1)
longMA = input.int(21, title="Long MA Period", minval=1)
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50)
stopLossPercent = input.float(1, title="Stop Loss Percentage", minval=0.1, maxval=10.0) / 100
takeProfitPercent = input.float(2, title="Take Profit Percentage", minval=0.1, maxval=10.0) / 100
// --- Calculate Moving Averages ---
shortMA_value = ta.sma(close, shortMA)
longMA_value = ta.sma(close, longMA)
// --- Calculate RSI ---
rsi_value = ta.rsi(close, rsiLength)
// --- Buy and Sell Conditions ---
longCondition = ta.crossover(shortMA_value, longMA_value) and rsi_value > 50
shortCondition = ta.crossunder(shortMA_value, longMA_value) and rsi_value < 50
// --- Plot Moving Averages ---
plot(shortMA_value, color=color.blue, linewidth=2, title="Short MA")
plot(longMA_value, color=color.red, linewidth=2, title="Long MA")
// --- Plot RSI (Optional) ---
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi_value, color=color.purple, title="RSI")
// --- Strategy Execution ---
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// --- Risk Management (Stop Loss and Take Profit) ---
longStopLoss = close * (1 - stopLossPercent)
longTakeProfit = close * (1 + takeProfitPercent)
shortStopLoss = close * (1 + stopLossPercent)
shortTakeProfit = close * (1 - takeProfitPercent)
// Set the stop loss and take profit for long and short positions
strategy.exit("Long Exit", from_entry="Long", stop=longStopLoss, limit=longTakeProfit)
strategy.exit("Short Exit", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)