Stratégie de trading quantitative avancée combinant divergence RSI et moyenne mobile

RSI MA BB SMA EMA SMMA WMA VWMA
Date de création: 2024-06-28 15:02:37 Dernière modification: 2024-06-28 15:02:37
Copier: 0 Nombre de clics: 910
1
Suivre
1617
Abonnés

Stratégie de trading quantitative avancée combinant divergence RSI et moyenne mobile

Aperçu

Il s’agit d’une stratégie de trading quantitative avancée basée sur une combinaison de déviations de l’indicateur relativement faible (RSI) et de plusieurs lignes de parité. La stratégie s’applique principalement à la négociation sur des lignes courtes et capture les points de revers potentiels en identifiant les déviations entre le RSI et le prix.

Le cœur de la stratégie est d’utiliser le décalage RSI pour identifier les conditions potentielles de survente et de survente. Il détecte le décalage en comparant le RSI avec les hauts et les bas du prix, et en combinaison avec le niveau du RSI pour déterminer le moment d’entrée. De plus, la stratégie incorpore plusieurs types de courbes de moyenne, telles que les moyennes mobiles simples (SMA), les moyennes mobiles indicielles (EMA), les moyennes mobiles lisses (SMMA), etc., pour fournir un signal de confirmation de tendance supplémentaire.

Principe de stratégie

  1. Calcul du RSI: calcul du RSI à l’aide d’une période RSI personnalisable (la valeur par défaut est 60).

  2. Ligne moyenne RSI: Application de la moyenne mobile au RSI, supportant plusieurs types de ligne moyenne, notamment les SMA, EMA, SMMA, WMA et VWMA.

  3. Le détournement des tests:

    • 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 produit lorsque le prix est élevé mais que le RSI n’est pas élevé.
  4. Conditions d’entrée :

    • Une entrée multiple: les joueurs sont déviés et le RSI est inférieur à 40.
    • Entrée en position creuse: les baisses sont décalées et le RSI est supérieur à 60.
  5. Gestion des opérations:

    • Stop loss: réglé sur un nombre de points fixe (default 11 points) [2].
    • Arrêt: réglé sur un nombre de points fixe ((33 points par défaut))
  6. Vidéo:

    • Tracer une ligne RSI et une ligne moyenne RSI.
    • La ligne horizontale de l’indicateur RSI montre 30, 50 et 70.
    • Les bandes de Brin sont affichées en option.
    • Les marqueurs sont décalés sur le graphique.

Avantages stratégiques

  1. L’analyse intégrée multi-indicateurs: la combinaison du RSI, des moyennes mobiles et des bandes de Brin fournit une perspective globale du marché.

  2. Configuration de paramètres flexible: permet aux utilisateurs d’ajuster la longueur du RSI, le type de ligne moyenne et d’autres paramètres en fonction des différentes conditions du marché.

  3. Identifier le décalage: identifier le décalage entre le RSI et le prix pour saisir les opportunités de reprise potentielles.

  4. Gestion des risques: des mécanismes d’arrêt et d’arrêt intégrés permettent de contrôler les risques.

  5. Effets visuels: affichage intuitif des signaux et des écarts sur le graphique.

  6. Adaptabilité: peut s’appliquer à différents types de transactions et à différentes périodes.

  7. Les transactions automatisées: peuvent être facilement intégrées dans un système de trading automatisé.

Risque stratégique

  1. Risque de faux signaux: il est possible de générer trop de faux signaux de déviation dans les marchés horizontaux.

  2. Le RSI et la moyenne sont des indicateurs en retard, ce qui peut entraîner un léger retard dans le temps d’entrée.

  3. L’excès de trading: dans un marché très volatile, il est possible de déclencher trop de signaux de trading.

  4. Sensibilité aux paramètres: les performances des stratégies dépendent fortement des paramètres de configuration et peuvent nécessiter des optimisations différentes pour différents marchés.

  5. Le comportement du marché tendanciel: dans les marchés tendanciels forts, les déviations de la stratégie peuvent être fréquentes et entraîner des transactions à la baisse.

  6. Risque de stop-loss fixe: l’utilisation d’un nombre de points fixe comme stop-loss peut ne pas convenir à toutes les conditions du marché.

Orientation de l’optimisation de la stratégie

  1. Introduction d’un filtre de tendance: ajouter des moyennes mobiles à long terme ou des indicateurs ADX pour éviter de négocier à l’envers dans une tendance forte.

  2. Stop dynamique: utilise l’ATR ou le pourcentage de volatilité pour définir un stop dynamique adapté aux différentes fluctuations du marché.

  3. Analyse multi-cadres: les signaux des cadres plus élevés sont combinés pour confirmer la direction de la transaction.

  4. Ajout d’une analyse de la quantité de transactions: les indicateurs de la quantité de transactions sont pris en compte pour améliorer la fiabilité du signal.

  5. Optimiser le timing de l’entrée: envisagez d’utiliser des modèles de comportement des prix ou des graphiques de filtrage pour une entrée précise.

  6. Optimisation de l’apprentissage automatique: utilisation d’algorithmes d’apprentissage automatique pour optimiser la sélection des paramètres et la génération de signaux.

  7. Augmentation des conditions de filtrage: ajout d’indicateurs techniques ou fondamentaux supplémentaires pour filtrer les signaux de trading.

Résumer

Cette stratégie de trading quantitative avancée, basée sur une combinaison d’écart RSI et de multiples lignes d’équilibre, offre aux traders un cadre d’analyse puissant et flexible. En combinant l’écart RSI, les types de lignes d’équilibre multiples et les bandes de bourgeons, la stratégie est capable de capturer les retournements potentiels du marché tout en fournissant des signaux de confirmation de tendance.

Les principaux avantages de la stratégie résident dans sa globalité et sa flexibilité pour s’adapter à différentes conditions de marché. Cependant, les utilisateurs doivent être attentifs aux risques potentiels, tels que la possibilité de faux signaux et de sur-transactions. Grâce à une optimisation continue et à l’introduction d’outils d’analyse supplémentaires, la stratégie a le potentiel de devenir un système de trading fiable.

La clé est d’ajuster les paramètres en fonction des variétés de transactions et des conditions du marché et de vérifier les signaux en combinaison avec d’autres méthodes d’analyse. En outre, une gestion rigoureuse des risques et une optimisation continue de la stratégie sont des facteurs clés pour assurer le succès à long terme.

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

//@version=5
strategy("Advanced Gold Scalping Strategy with RSI Divergence", overlay=false)

// Input parameters
rsiLengthInput = input.int(60, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(ohlc4, "Source", group="RSI Settings")
maTypeInput = input.string("SMMA (RMA)", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(3, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input(true, title="Show Divergence", group="RSI Settings")
stopLoss = input.float(11, title="Stop Loss (pips)", group="Trade Settings")
takeProfit = input.float(33, title="Take Profit (pips)", group="Trade Settings")

// RSI and MA calculation
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

// Divergence detection
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5

plFound = na(ta.pivotlow(rsi, lookbackLeft, lookbackRight)) ? false : true
phFound = na(ta.pivothigh(rsi, lookbackLeft, lookbackRight)) ? false : true

_inRange(cond) =>
    bars = ta.barssince(cond == true)
    rangeLower <= bars and bars <= rangeUpper

// Bullish divergence
rsiHL = rsi[lookbackRight] > ta.valuewhen(plFound, rsi[lookbackRight], 1) and _inRange(plFound[1])
priceLL = low[lookbackRight] < ta.valuewhen(plFound, low[lookbackRight], 1)
bullishDivergence = priceLL and rsiHL and plFound

// Bearish divergence
rsiLH = rsi[lookbackRight] < ta.valuewhen(phFound, rsi[lookbackRight], 1) and _inRange(phFound[1])
priceHH = high[lookbackRight] > ta.valuewhen(phFound, high[lookbackRight], 1)
bearishDivergence = priceHH and rsiLH and phFound

// Entry conditions
longCondition = bullishDivergence and rsi < 40
shortCondition = bearishDivergence and rsi > 60

// Convert pips to price for Gold (assuming 1 pip = 0.1 for XAUUSD)
stopLossPrice = stopLoss * 0.1
takeProfitPrice = takeProfit * 0.1

// Execute trades
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("TP/SL", "Long", stop=strategy.position_avg_price - stopLossPrice, limit=strategy.position_avg_price + takeProfitPrice)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("TP/SL", "Short", stop=strategy.position_avg_price + stopLossPrice, limit=strategy.position_avg_price - takeProfitPrice)

// Plotting
plot(rsi, "RSI", color=#7E57C2)
// plot(rsiMA, "RSI-based MA", color=color.yellow)
hline(60, "RSI Upper Band", color=#787B86)
// hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
hline(40, "RSI Lower Band", color=#787B86)
fill(hline(60), hline(40), color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")

// Divergence visualization
plotshape(showDivergence and bullishDivergence ? rsi[lookbackRight] : na, offset=-lookbackRight, title="Bullish Divergence", text="Bull", style=shape.labelup, location=location.absolute, color=color.green, textcolor=color.white)
plotshape(showDivergence and bearishDivergence ? rsi[lookbackRight] : na, offset=-lookbackRight, title="Bearish Divergence", text="Bear", style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white)