Stratégie RSI double : un système avancé de capture de tendance combinant divergences et croisements

RSI
Date de création: 2024-07-31 11:55:12 Dernière modification: 2024-07-31 11:55:12
Copier: 0 Nombre de clics: 676
1
Suivre
1617
Abonnés

Stratégie RSI double : un système avancé de capture de tendance combinant divergences et croisements

Aperçu

La stratégie du double RSI est une stratégie de trading quantitatif avancée qui combine les deux méthodes de trading classiques RSI décalé et RSI croisé. La stratégie vise à capturer des points de vente et de vente plus fiables sur le marché en surveillant simultanément les signaux de décalé et de croisement de l’indicateur RSI. L’idée centrale de la stratégie est que le signal de trading ne sera déclenché que lorsque le décalé et le croisement RSI se produisent simultanément.

Principe de stratégie

  1. RSI détourne:

    • Le rétroviseur est formé lorsque le prix est bas mais que le RSI n’est pas bas.
    • Le décalage de la baisse se forme lorsque le prix est élevé mais que le RSI n’est pas élevé.
  2. Le RSI est croisé:

    • Signal d’achat: le RSI est en hausse depuis la zone de survente (moins de 30).
    • Signal de vente: le RSI se déplace vers le bas depuis la zone de survente (au-dessus de 70).
  3. Génération du signal:

    • Conditions d’achat: le RSI doit être à la fois en décalage et en hausse pour franchir la ligne de vente.
    • Condition de vente: le RSI doit être à la fois en retrait et en hausse et le RSI doit être à la baisse pour franchir la ligne de dépassement.
  4. Paramètres définis:

    • RSI cycle: 14 (modifiable)
    • Ligne de survente: 70 (modifiable)
    • Le prix de vente est de 30€ (modifiable)
    • Période de recherche de retour: 90 lignes K (modifiable)

Avantages stratégiques

  1. Haute fiabilité: la combinaison des signaux de déviation et de croisement du RSI améliore considérablement la fiabilité des signaux de négociation et réduit le risque de faux signaux.

  2. Capture des tendances: Capture des points de basculement des tendances du marché, adapté aux transactions à moyen et long terme.

  3. Flexibilité: les paramètres clés de la stratégie peuvent être ajustés pour s’adapter à différents environnements de marché et types de transactions.

  4. Contrôle des risques: le risque de transaction est contrôlé efficacement grâce à un mécanisme de double confirmation strict.

  5. Support visuel: la stratégie fournit des marqueurs graphiques clairs qui permettent aux traders de comprendre intuitivement les conditions du marché.

Risque stratégique

  1. Rarité: il est possible de rater les premières étapes du processus rapide en raison de la double confirmation.

  2. Une dépendance excessive au RSI: dans certaines conditions, un seul indicateur peut ne pas être en mesure de refléter pleinement les conditions du marché.

  3. Sensitivité des paramètres: différents paramètres peuvent entraîner des résultats de transactions très différents, nécessitant une optimisation minutieuse.

  4. Risque de faux signaux: Bien que le mécanisme de double confirmation réduise le risque de faux signaux, il peut néanmoins se produire dans des marchés très volatils.

  5. Manque de mécanisme de stop-loss: la stratégie elle-même n’a pas de mécanisme de stop-loss intégré, ce qui nécessite une configuration supplémentaire par le trader.

Orientation de l’optimisation de la stratégie

  1. Combinaison multi-indicateurs: l’introduction d’autres indicateurs techniques (tels que MACD, bande de Brin) pour une vérification croisée, améliorant encore la fiabilité du signal.

  2. Paramètres d’adaptation: Adaptation du RSI à la dynamique de la volatilité du marché en fonction des cycles et des valeurs de la marge afin de s’adapter à différentes conditions de marché.

  3. Adhésion à un mécanisme de stop-loss: conception d’une stratégie de stop-loss basée sur l’ATR ou un pourcentage fixe pour contrôler le risque d’une seule transaction.

  4. Filtrage temporel: ajout d’une limite de fenêtre de temps de négociation pour éviter de négocier à des moments défavorables.

  5. Filtrage de la volatilité: dans un environnement de faible volatilité, les signaux de négociation sont inhibés, ce qui réduit le risque de fausse rupture.

  6. Combinaison des prix et des quantités: l’introduction de l’analyse de la quantité d’échanges, améliorant la fiabilité du signal.

  7. Optimisation de l’apprentissage automatique: optimisation des paramètres à l’aide d’algorithmes d’apprentissage automatique pour améliorer l’adaptabilité des stratégies.

Résumer

La stratégie de double RSI crée un système de négociation puissant et flexible en combinant habilement les signaux de déviation et de croisement du RSI. Non seulement elle permet de capturer efficacement les points de basculement importants des tendances du marché, mais elle améliore considérablement la fiabilité des signaux de négociation grâce à un mécanisme de double confirmation. Bien que la stratégie présente certains risques tels que le retard et la sensibilité aux paramètres, ces problèmes peuvent être efficacement atténués par une optimisation et une gestion des risques raisonnables.

Code source de la stratégie
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Combined RSI Strategies", overlay=true)

// Input parameters for the first strategy (RSI Divergences)
len = input(14, minval=1, title="RSI Length")
ob = input(defval=70, title="Overbought", type=input.integer, minval=0, maxval=100)
os = input(defval=30, title="Oversold", type=input.integer, minval=0, maxval=100)
xbars = input(defval=90, title="Div lookback period (bars)?", type=input.integer, minval=1)

// Input parameters for the second strategy (RSI Crossover)
rsiBuyThreshold = input(30, title="RSI Buy Threshold")
rsiSellThreshold = input(70, title="RSI Sell Threshold")

// RSI calculation
rsi = rsi(close, len)

// Calculate highest and lowest bars for divergences
hb = abs(highestbars(rsi, xbars))
lb = abs(lowestbars(rsi, xbars))

// Initialize variables for divergences
var float max = na
var float max_rsi = na
var float min = na
var float min_rsi = na
var bool pivoth = na
var bool pivotl = na
var bool divbear = na
var bool divbull = na

// Update max and min values for divergences
max := hb == 0 ? close : na(max[1]) ? close : max[1]
max_rsi := hb == 0 ? rsi : na(max_rsi[1]) ? rsi : max_rsi[1]
min := lb == 0 ? close : na(min[1]) ? close : min[1]
min_rsi := lb == 0 ? rsi : na(min_rsi[1]) ? rsi : min_rsi[1]

// Compare current bar's high/low with max/min values for divergences
if close > max
    max := close
if rsi > max_rsi
    max_rsi := rsi
if close < min
    min := close
if rsi < min_rsi
    min_rsi := rsi

// Detect pivot points for divergences
pivoth := (max_rsi == max_rsi[2]) and (max_rsi[2] != max_rsi[3]) ? true : na
pivotl := (min_rsi == min_rsi[2]) and (min_rsi[2] != min_rsi[3]) ? true : na

// Detect divergences
if (max[1] > max[2]) and (rsi[1] < max_rsi) and (rsi <= rsi[1])
    divbear := true
if (min[1] < min[2]) and (rsi[1] > min_rsi) and (rsi >= rsi[1])
    divbull := true

// Conditions for RSI crossovers
isRSICrossAboveThreshold = crossover(rsi, rsiBuyThreshold)
isRSICrossBelowThreshold = crossunder(rsi, rsiSellThreshold)

// Combined buy and sell conditions
buyCondition = divbull and isRSICrossAboveThreshold
sellCondition = divbear and isRSICrossBelowThreshold

// Generate buy/sell signals
if buyCondition
    strategy.entry("Bat Signal Buy", strategy.long)
if sellCondition
    strategy.entry("Bat Signal Sell", strategy.short)

// Plot RSI
plot(rsi, "RSI", color=color.blue)
hline(ob, title="Overbought", color=color.red)
hline(os, title="Oversold", color=color.green)
hline(rsiBuyThreshold, title="RSI Buy Threshold", color=color.green)
hline(rsiSellThreshold, title="RSI Sell Threshold", color=color.red)

// Plot signals
plotshape(series=buyCondition, title="Bat Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Bat Signal")
plotshape(series=sellCondition, title="Bat Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="Bat Sell")