Cette stratégie est un système de sortie dynamique basé sur l'indice de force relative (RSI), capturant les tendances du marché à travers des conditions d'entrée et de sortie dynamiques.
La logique de base comprend plusieurs composantes clés:
Il s'agit d'une stratégie de trading dynamique bien conçue qui capture les opportunités du marché grâce à des indicateurs RSI et des mécanismes de sortie dynamiques. Les principales caractéristiques de la stratégie sont sa nature systématique élevée, son contrôle des risques robuste et sa forte adaptabilité. Bien que des risques inhérents existent, il existe une marge d'amélioration significative grâce à l'optimisation des paramètres et aux extensions fonctionnelles.
/*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)