Cette stratégie est une tendance suivant la stratégie haussière qui utilise l'indicateur RSI pour déterminer la tendance et l'indicateur MACD pour entrer sur le marché.
La stratégie repose principalement sur l'indicateur RSI pour déterminer la direction de la tendance. Lorsque l'indicateur RSI franchit au-dessus de la ligne longue définie (défaut 21), il est considéré que le marché peut inverser vers une tendance haussière. À ce moment-là, si le MACD est déjà en baisse, on peut juger qu'il est à un point d'inversion, ce qui est une bonne occasion d'aller long.
En outre, la stratégie introduit également la ligne EMA (défaut de 200 périodes) comme filtre de tendance.
Sur le côté stop-loss, la stratégie définit également une ligne de stop-loss régulière et une ligne de stop-loss d'urgence. Lorsque le RSI traverse en dessous de la ligne de stop-loss régulière (défaut 86), position fermée; si le prix chute fortement et que le RSI traverse en dessous de la ligne de stop-loss d'urgence (défaut 73), position fermée sans condition pour contrôler la perte maximale.
En résumé, cette stratégie est une tendance relativement traditionnelle suivant la stratégie haussière. Elle identifie les points d'inversion avec RSI, filtre les erreurs de jugement avec MACD, détermine la tendance majeure avec EMA et contrôle les risques avec stop loss.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dravitch //@version=4 strategy("RSI - BULL RUN (Improved)", overlay=true) // Input UseEmergency = input(true, "Use Emergency Exit?") RSIlong = input(21, "RSI Long Cross") RSIcloseLong = input(86, "RSI Close Long Position") EmergencycloseLong = input(73, "RSI Emergency Close Long Position") UseEMAFilter = input(true, "Use EMA Trend Filter") EMAlength = input(200, "EMA Length for Trend Filter") // Utiliser 200 pour SMMA // RSI rsiValue = rsi(close, 14) // MACD [macdLine, signalLine, _] = macd(close, 12, 26, 9) // EMA Trend Filter emaTrend = sma(close, EMAlength) // Utiliser sma pour la SMMA (Simple Moving Average) // Conditions pour les trades longs trendUp = close > emaTrend trendDown = close < emaTrend longCondition = crossover(rsiValue, RSIlong) and trendDown or crossunder(macdLine, signalLine) and crossover(rsiValue, RSIlong) longCloseCondition = crossunder(rsiValue, RSIcloseLong) and trendUp emergencyLongCondition = crossunder(rsiValue, EmergencycloseLong) // Plots plot(rsiValue, color=color.white, linewidth=2, title="RSI") // Strategy if (longCondition) strategy.entry("Long", strategy.long, alert_message='RSI Long Cross: LONG') if (longCloseCondition) strategy.close("Long", alert_message='RSI Close Long Position') if (emergencyLongCondition and UseEmergency) strategy.close("Long", alert_message='RSI Emergency Close Long') // Plot EMA Trend Filter in a separate pane plot(emaTrend, color=color.rgb(163, 0, 122), title="EMA Trend Filter", linewidth=2, style=plot.style_line, transp=0) hline(0, "Zero Line", color=color.gray)