Strategi ini adalah sistem keluar dinamik berdasarkan Indeks Kekuatan Relatif (RSI), menangkap trend pasaran melalui keadaan masuk dan keluar dinamik. Strategi ini menghasilkan isyarat perdagangan apabila RSI memecahkan tahap overbought dan oversold, menggabungkan mekanisme keluar dinamik yang unik dengan menetapkan keadaan keluar pada tahap RSI yang berbeza untuk mengoptimumkan prestasi perdagangan. Ia menggunakan sistem perdagangan panjang-pendek yang lengkap yang mampu menangkap peluang di kedua-dua arah pasaran.
Logik teras merangkumi beberapa komponen utama:
Ini adalah strategi perdagangan momentum yang direka dengan baik yang menangkap peluang pasaran melalui penunjuk RSI dan mekanisme keluar dinamik. Ciri utama strategi ini adalah sifat sistematiknya yang tinggi, kawalan risiko yang kukuh, dan kemampuan beradaptasi yang kuat. Walaupun risiko yang wujud, terdapat ruang yang signifikan untuk peningkatan melalui pengoptimuman parameter dan pelanjutan fungsional. Bagi pelabur yang mencari sistem perdagangan yang kukuh, ini mewakili rangka kerja 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)