Stratégie de trading multi-périodes combinant des modèles harmoniques et des indicateurs Williams

WPR SL TP RR Pivot
Date de création: 2025-01-17 16:19:15 Dernière modification: 2025-01-17 16:19:15
Copier: 0 Nombre de clics: 463
1
Suivre
1617
Abonnés

Stratégie de trading multi-périodes combinant des modèles harmoniques et des indicateurs Williams

Aperçu

La stratégie est un système de trading avancé qui combine le modèle harmonique et le Williams Percentage Point Rating (WPR). Il fonctionne en identifiant les modèles harmoniques sur le marché (tels que les modèles Gartley, Bat, Crab et Butterfly) et en les combinant avec les niveaux de surachat et de survente de l’oscillateur Williams pour déterminer les entrées et les sorties de transactions. La stratégie adopte un mécanisme de confirmation multiple pour améliorer la précision et la fiabilité des transactions grâce à la synergie des indicateurs techniques.

Principe de stratégie

La logique fondamentale de la stratégie comprend les éléments clés suivants :

  1. Reconnaissance des modèles harmoniques : utilisez les points de retournement des prix pour identifier les modèles harmoniques potentiels, qui déterminent la structure du marché en analysant la relation entre les hauts et les bas.
  2. Calcul de l’indicateur Williams : utilisez des cycles personnalisés pour calculer l’indicateur Williams et évaluez l’état du marché en analysant la relation entre le prix le plus élevé, le prix le plus bas et le prix de clôture.
  3. Conditions d’entrée :
    • Entrée longue : lorsqu’un modèle harmonique haussier apparaît et que l’oscillateur Williams est dans la zone de survente
    • Entrée courte : Lorsqu’un modèle harmonique baissier apparaît et que l’oscillateur Williams est dans la zone de surachat
  4. Gestion des risques : utilisez un stop-loss dynamique basé sur les plus bas/plus hauts récents et définissez des positions de take-profit en fonction du ratio risque/récompense.

Avantages stratégiques

  1. Analyse multidimensionnelle : combine l’analyse des modèles et les indicateurs de momentum pour fournir des signaux de trading plus fiables.
  2. Contrôle parfait des risques : des paramètres dynamiques de stop loss et de take profit basés sur le rapport risque-rendement sont adoptés pour contrôler efficacement le risque de chaque transaction.
  3. Forte adaptabilité : il peut s’adapter à différents environnements de marché et produits commerciaux grâce à l’optimisation des paramètres.
  4. Mécanisme de confirmation du signal : La double confirmation des modèles harmoniques et des indicateurs de Williams réduit l’impact des faux signaux.

Risque stratégique

  1. Risque de reconnaissance de formes : la reconnaissance simplifiée de formes harmoniques peut conduire à une mauvaise interprétation de certaines formes.
  2. Sensibilité des paramètres : les réglages de plusieurs paramètres nécessitent une optimisation minutieuse et des paramètres inappropriés peuvent affecter les performances de la stratégie.
  3. Dépendance à l’environnement du marché : peut produire de mauvaises performances sur des marchés volatils ou latéraux.
  4. Décalage du signal : les signaux basés sur des indicateurs techniques peuvent avoir un certain décalage.

Orientation de l’optimisation de la stratégie

  1. Améliorations de la reconnaissance des formes :
    • Ajout d’une validation plus stricte du rapport harmonique
    • Présentation de l’analyse de la structure des prix pour améliorer la précision de la reconnaissance des modèles
  2. Filtrage du signal :
    • Ajouter un filtre de tendance
    • Envisagez d’ajouter des indicateurs de volatilité pour vous adapter aux différents environnements de marché
  3. Optimisation de la gestion des risques :
    • Réaliser un ajustement dynamique du ratio risque-rendement
    • Augmenter la gestion des positions en fonction des fluctuations du marché

Résumer

Cette stratégie construit un système de trading relativement complet en combinant des modèles harmoniques et des indicateurs Williams. Ses avantages résident dans ses méthodes d’analyse multidimensionnelles et ses mécanismes parfaits de contrôle des risques, mais il doit encore prêter attention à des questions telles que l’optimisation des paramètres et l’adaptabilité à l’environnement du marché. Grâce aux orientations d’optimisation suggérées, la stabilité et la fiabilité de la stratégie devraient être encore améliorées.

Code source de la stratégie
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Harmonic Pattern with WPR Backtest", overlay=true)

// === Inputs ===
patternLength = input.int(5, title="Pattern Length")
wprLength = input.int(14, title="WPR Length")
wprOverbought = input.float(-20, title="WPR Overbought Level")
wprOversold = input.float(-80, title="WPR Oversold Level")
riskRewardMultiplier = input.float(0.618, title="Take-Profit Risk/Reward Multiplier")
stopLossBuffer = input.float(0.005, title="Stop-Loss Buffer (%)")

// === Manual Calculation of William Percent Range (WPR) ===
highestHigh = ta.highest(high, wprLength)
lowestLow = ta.lowest(low, wprLength)
wpr = ((highestHigh - close) / (highestHigh - lowestLow)) * -100

// === Harmonic Pattern Detection (Simplified Approximation) ===
// Calculate price pivots
pivotHigh = ta.pivothigh(high, patternLength, patternLength)
pivotLow = ta.pivotlow(low, patternLength, patternLength)

// Detect Bullish and Bearish Harmonic Patterns
bullishPattern = pivotLow and close > ta.lowest(close, patternLength)  // Simplified detection for bullish patterns
bearishPattern = pivotHigh and close < ta.highest(close, patternLength)  // Simplified detection for bearish patterns

// === Entry Conditions ===
longCondition = bullishPattern and wpr < wprOversold
shortCondition = bearishPattern and wpr > wprOverbought

// === Stop-Loss and Take-Profit Levels ===
longEntryPrice = close
longSL = ta.valuewhen(longCondition, low, 0) * (1 - stopLossBuffer)  // Stop-loss for long trades
longTP = longEntryPrice * (1 + riskRewardMultiplier)  // Take-profit for long trades

shortEntryPrice = close
shortSL = ta.valuewhen(shortCondition, high, 0) * (1 + stopLossBuffer)  // Stop-loss for short trades
shortTP = shortEntryPrice * (1 - riskRewardMultiplier)  // Take-profit for short trades

// === Backtesting Logic ===
// Long Trade
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", stop=longSL, limit=longTP)

// Short Trade
if shortCondition
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", stop=shortSL, limit=shortTP)

// === Visualization ===
bgcolor(longCondition ? color.new(color.green, 90) : na, title="Long Entry Signal")
bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Short Entry Signal")