
Ini adalah strategi mengikuti tren yang menggabungkan rata-rata pergerakan dua periode (21 dan 55), indikator momentum RSI, dan volume. Strategi ini menganalisis informasi pasar dalam tiga dimensi: harga, momentum, dan volume. Sambil mengonfirmasi arah tren, strategi ini menyaring sinyal perdagangan melalui indikator RSI dan volume untuk meningkatkan akurasi perdagangan. Strategi ini mengharuskan bahwa ketika harga menembus rata-rata pergerakan jangka pendek dan RSI menembus rata-rata pergerakan, volume perdagangan meningkat untuk mengonfirmasi validitas tren.
Strategi ini menggunakan mekanisme penyaringan tiga kali lipat:
Kondisi pembelian harus dipenuhi pada saat yang bersamaan:
Kondisi penjualan dapat berupa salah satu hal berikut:
Ini adalah strategi mengikuti tren yang menggunakan tiga elemen utama analisis teknis (harga, volume, dan momentum). Melalui berbagai mekanisme penyaringan, strategi ini tidak hanya memastikan keandalan sinyal, tetapi juga memiliki kemampuan pengendalian risiko tertentu. Meskipun ada beberapa keterbatasan yang melekat, melalui pengoptimalan dan perbaikan berkelanjutan, strategi ini diharapkan dapat mencapai hasil yang stabil dalam transaksi aktual. Terutama di pasar dengan tren yang jelas dan likuiditas yang cukup, strategi tersebut mungkin berkinerja lebih baik.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("21/55 MA with RSI Crossover", overlay=true)
// Inputs for moving averages
ma21_length = input.int(21, title="21-day Moving Average Length", minval=1)
ma55_length = input.int(55, title="55-day Moving Average Length", minval=1)
// RSI settings
rsi_length = input.int(13, title="RSI Length", minval=1)
rsi_avg_length = input.int(13, title="RSI Average Length", minval=1)
// Moving averages
ma21 = ta.sma(close, ma21_length)
ma55 = ta.sma(close, ma55_length)
// Volume settings
vol_ma_length = input.int(21, title="Volume MA Length", minval=1)
// Volume moving average
vol_ma = ta.sma(volume, vol_ma_length)
// RSI calculation
rsi = ta.rsi(close, rsi_length)
rsi_avg = ta.sma(rsi, rsi_avg_length)
// Buy condition
// buy_condition = close > ma21 and ta.crossover(rsi, rsi_avg) and volume > vol_ma
buy_condition = close > ma21 and rsi > rsi_avg and volume > vol_ma
// Sell condition
// sell_condition = close < ma55 or ta.crossunder(rsi, rsi_avg)
sell_condition = ta.crossunder(close, ma55) or ta.crossunder(rsi, rsi_avg)
// Execute trades
if (buy_condition)
strategy.entry("Buy", strategy.long, comment="Buy Signal")
if (sell_condition)
strategy.close("Buy", comment="Sell Signal")
// Plot moving averages for reference
plot(ma21, color=color.blue, title="21-day MA")
plot(ma55, color=color.red, title="55-day MA")
// Plot RSI and RSI average for reference
rsi_plot = input.bool(true, title="Show RSI?", inline="rsi")
plot(rsi_plot ? rsi : na, color=color.green, title="RSI")
plot(rsi_plot ? rsi_avg : na, color=color.orange, title="RSI Average")