Cette stratégie utilise l'indice de force relative (RSI) et la moyenne mobile simple (SMA) pour identifier les opportunités de réversion moyenne potentielles sur le marché. Lorsque le RSI est en dessous du seuil d'achat et que le prix est en dessous du SMA, un signal d'achat est généré. Lorsque le RSI est au-dessus du seuil de vente et que le prix est au-dessus du SMA, un signal de vente est généré.
Le principe de base de cette stratégie est le concept de réversion moyenne, qui suggère que les prix ont tendance à revenir à leur niveau moyen après avoir atteint des niveaux extrêmes.
Plus précisément, la stratégie suit les étapes suivantes:
Cette stratégie d'inversion moyenne de l'indice de force relative tire parti du RSI et de la SMA pour saisir les opportunités de réversion lorsque les prix s'écartent de leur moyenne. Elle présente des avantages tels que la simplicité, la facilité de compréhension et l'adaptabilité. Cependant, elle peut sous-performer sur les marchés en tendance et repose sur la sélection de paramètres. En optimisant les méthodes de stop loss et de prise de profit, les paramètres, en incorporant des indicateurs supplémentaires et en mettant en œuvre des mesures de gestion des risques, la robustesse et le potentiel de rentabilité de cette stratégie peuvent être encore améliorés.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Mean Reversion with Tight Stop Loss', overlay=true) // Define parameters rsiLength = 14 rsiThresholdBuy = 30 rsiThresholdSell = 70 smaPeriod = 20 stopLossPercentage = 0.5 // 0.5% stop loss profitTargetPercentage = 1 // 1% profit target // Calculate indicators rsi = ta.rsi(close, rsiLength) sma = ta.sma(close, smaPeriod) // Entry conditions buySignal = rsi < rsiThresholdBuy and close < sma sellSignal = rsi > rsiThresholdSell and close > sma // Exit conditions if strategy.position_size > 0 stopLoss = strategy.position_avg_price * (1 - stopLossPercentage / 100) takeProfit = strategy.position_avg_price * (1 + profitTargetPercentage / 100) if close <= stopLoss or close >= takeProfit strategy.close('Exit', comment='Stop Loss / Take Profit') // Execute trades if buySignal strategy.entry('Buy', strategy.long) if sellSignal strategy.entry('Sell', strategy.short)