
Strategi ini adalah sistem perdagangan berbasis RSI2 yang digabungkan dengan Moving Average. Ini terutama menangkap peluang perdagangan potensial dengan memantau sinyal reversal RSI di area oversold, sambil menggabungkan Moving Average sebagai filter tren untuk meningkatkan akurasi perdagangan.
Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:
Ini adalah strategi perdagangan yang terstruktur dan logis yang jelas, untuk menangkap peluang pasar melalui RSI oversold sinyal reversal digabungkan dengan filter tren linier. Keuntungan dari strategi ini adalah bahwa parameternya fleksibel, pengendalian angin masuk akal, tetapi masih perlu memperhatikan risiko terobosan palsu dan masalah sensitivitas parameter. Dengan arah optimasi yang disarankan, strategi ini masih memiliki ruang untuk perbaikan yang lebih besar, yang dapat meningkatkan kemampuan adaptasinya dalam berbagai lingkungan pasar.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("RSI 2 Strategy with Fixed Lines and Moving Average Filter", overlay=true)
// Input parameters
rsiPeriod = input.int(2, title="RSI Period", minval=1)
rsiBuyLevel = input.float(25, title="RSI Buy Level", minval=0, maxval=100)
maxBarsToHold = input.int(5, title="Max Candles to Hold", minval=1)
maPeriod = input.int(50, title="Moving Average Period", minval=1) // Moving Average Period
useMAFilter = input.bool(true, title="Use Moving Average Filter") // Enable/Disable MA Filter
// RSI and Moving Average calculation
rsi = ta.rsi(close, rsiPeriod)
ma = ta.sma(close, maPeriod)
// Moving Average filter conditions
maFilterCondition = useMAFilter ? close > ma : true // Condition: price above MA
// Buy conditions
rsiIncreasing = rsi > rsi[1] // Current RSI greater than previous RSI
buyCondition = rsi[1] < rsiBuyLevel and rsiIncreasing and strategy.position_size == 0 and maFilterCondition
// Variables for management
var int barsHeld = na // Counter for candles after purchase
var float buyPrice = na // Purchase price
// Buy action
if buyCondition and na(barsHeld)
strategy.entry("Buy", strategy.long)
barsHeld := 0
buyPrice := close
// Increment the candle counter after purchase
if not na(barsHeld)
barsHeld += 1
// Sell condition after the configured number of candles
sellCondition = barsHeld >= maxBarsToHold
if sellCondition
strategy.close("Buy")
// Reset variables after selling
barsHeld := na
buyPrice := na