
Cette stratégie est une stratégie multitête de suivi de tendance qui utilise le RSI pour déterminer la tendance, en combinaison avec l’indicateur MACD pour la mise sur le marché. Cette stratégie combine à la fois l’EMA comme filtre de tendance et un mécanisme d’arrêt d’urgence pour contrôler le risque.
La stratégie repose principalement sur le RSI pour déterminer la direction de la tendance. Lorsque le RSI traverse la ligne longue RSI définie sur l’indicateur (par défaut 21), on pense que le marché pourrait se retourner vers une tendance haussière. Si le MACD est déjà en baisse, il est alors préférable de déterminer qu’il est actuellement au point de basculement.
En outre, la stratégie introduit la moyenne EMA (la moyenne de 200 cycles par défaut) comme filtre de tendance. Il n’est envisagé de faire plus que lorsque le prix est supérieur à la moyenne EMA. Cela permet de filtrer efficacement une tendance inconnue ou un faux renversement dans une tendance à la baisse.
En ce qui concerne le stop loss, la stratégie met en place à la fois un stop loss régulier et un stop loss d’urgence. Il est placé lorsque le RSI franchit le stop loss régulier (par défaut 86) et sans condition lorsque le RSI franchit le stop loss d’urgence (par défaut 73) si le prix baisse fortement.
Cette stratégie est généralement une stratégie multi-têtes de suivi de tendance plus traditionnelle. Elle utilise le RSI pour identifier les points de retournement, le filtre MACD pour les erreurs de jugement, l’EMA pour juger de la tendance majeure et le risque de contrôle des pertes. La stratégie est simple, intuitive et facile à comprendre.
/*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)