Strategi ini adalah sistem exit dinamis berdasarkan Relative Strength Index (RSI), menangkap tren pasar melalui kondisi masuk dan keluar yang dinamis. Strategi ini menghasilkan sinyal perdagangan ketika RSI menembus tingkat overbought dan oversold, menggabungkan mekanisme exit dinamis yang unik dengan mengatur kondisi keluar pada tingkat RSI yang berbeda untuk mengoptimalkan kinerja perdagangan.
Logika inti mencakup beberapa komponen utama:
Ini adalah strategi perdagangan momentum yang dirancang dengan baik yang menangkap peluang pasar melalui indikator RSI dan mekanisme keluar yang dinamis. Fitur utama strategi ini adalah sifat sistematisnya yang tinggi, kontrol risiko yang kuat, dan kemampuan beradaptasi yang kuat. Meskipun risiko yang melekat ada, ada ruang yang signifikan untuk perbaikan melalui optimasi parameter dan ekstensi fungsional. Bagi investor yang mencari sistem perdagangan yang kuat, ini merupakan kerangka strategi yang layak untuk dipertimbangkan.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Strategy with Close Levels", shorttitle="RSI Strat", overlay=true) // RSI Input settings rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Level") rsiOversold = input.int(30, title="RSI Oversold Level") rsiCloseLongLevel = input.int(60, title="RSI Level to Close Long Position") rsiCloseShortLevel = input.int(40, title="RSI Level to Close Short Position") // Calculate RSI rsi = ta.rsi(close, rsiLength) // Generate buy and sell signals based on RSI levels buySignal = ta.crossover(rsi, rsiOversold) sellSignal = ta.crossunder(rsi, rsiOverbought) // Check if there are open positions var bool inPosition = na if (strategy.opentrades > 0) inPosition := true else inPosition := false // Open long position on buy signal if not already in a position if (buySignal and not inPosition) strategy.entry("Buy", strategy.long) inPosition := true // Close long position on sell signal or when RSI reaches the close long level if (inPosition and strategy.position_size > 0 and (sellSignal or rsi >= rsiCloseLongLevel)) strategy.close("Buy") inPosition := false // Open short position on sell signal if not already in a position if (sellSignal and not inPosition) strategy.entry("Sell", strategy.short) inPosition := true // Close short position on buy signal or when RSI reaches the close short level if (inPosition and strategy.position_size < 0 and (buySignal or rsi <= rsiCloseShortLevel)) strategy.close("Sell") inPosition := false // Plot buy and sell signals //plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") //plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Plot RSI for visualization hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) hline(rsiCloseLongLevel, "RSI Close Long Level", color=color.blue) hline(rsiCloseShortLevel, "RSI Close Short Level", color=color.purple) plot(rsi, title="RSI", color=color.orange)