Les ressources ont été chargées... Je charge...

Stratégie de négociation multi-temporelle combinant les modèles harmoniques et Williams %R

Auteur:ChaoZhang est là., Date: 2025-01-17 16h19 et 15h
Les étiquettes:Le WPRSLTPRRLe pivot

 Multi-Timeframe Trading Strategy Combining Harmonic Patterns and Williams %R

Résumé

Cette stratégie est un système de négociation avancé qui combine les modèles harmoniques avec l'indicateur Williams Percent Range (WPR). Il identifie les formations harmoniques (comme les modèles Gartley, Bat, Crab et Butterfly) sur le marché et utilise les niveaux de surachat / survente de WPR pour déterminer les points d'entrée et de sortie du commerce. La stratégie utilise plusieurs mécanismes de confirmation, utilisant la synergie des indicateurs techniques pour améliorer la précision et la fiabilité du trading.

Principes de stratégie

La logique de base comprend plusieurs composantes clés: 1. Reconnaissance des modèles harmoniques: utilise les points pivots des prix pour identifier les formations harmoniques potentielles en analysant les relations entre les hauts et les bas. 2. calcul Williams %R: utilise une période personnalisée pour calculer le WPR, en analysant les relations entre les prix élevés, bas et de clôture pour déterminer les conditions du marché. 3. Conditions d'entrée: - Longue entrée: Quand une tendance haussière harmonieuse apparaît et que le WPR est en territoire survendu - Entrée courte: Quand une tendance harmonieuse baissière apparaît et que le WPR est sur le territoire des surachats 4. Gestion des risques: met en œuvre un stop-loss dynamique basé sur des bas/hauts récents et fixe des niveaux de prise de profit en utilisant des ratios risque-rendement.

Les avantages de la stratégie

  1. Analyse multidimensionnelle: Combine l'analyse des modèles avec des indicateurs de dynamique pour des signaux de trading plus fiables.
  2. Contrôle robuste des risques: utilise des paramètres de prise de profit basés sur le stop-loss et la récompense du risque pour contrôler efficacement le risque par transaction.
  3. Haute adaptabilité: peut être adaptée à différents environnements et instruments du marché grâce à l'optimisation des paramètres.
  4. Mécanisme de confirmation du signal: réduit les faux signaux grâce à une double confirmation à l'aide de modèles harmoniques et de WPR.

Risques stratégiques

  1. Risque de reconnaissance de motif: la reconnaissance harmonieuse simplifiée de motif peut entraîner une mauvaise identification de certaines formations.
  2. Sensibilité des paramètres: plusieurs paramètres nécessitent une optimisation minutieuse, car des paramètres incorrects peuvent affecter les performances de la stratégie.
  3. Dépendance de l'environnement du marché: peut être sous-performant sur des marchés très volatils ou variables.
  4. Décalage du signal: les signaux basés sur des indicateurs techniques peuvent présenter un décalage inhérent.

Directions d'optimisation de la stratégie

  1. Reconnaissance améliorée des modèles:
    • Ajouter une validation plus stricte du rapport harmonique
    • Incorporer une analyse de la structure des prix pour une meilleure identification des tendances
  2. Filtrage du signal:
    • Ajouter des filtres de tendance
    • Considérer les indicateurs de volatilité pour l'adaptation à l'environnement du marché
  3. Optimisation de la gestion des risques:
    • Mettre en œuvre des ajustements dynamiques du ratio risque/rendement
    • Ajouter une dimensionnement des positions basé sur la volatilité

Résumé

Cette stratégie construit un système de négociation complet en combinant des modèles harmoniques avec l'indicateur Williams %R. Ses forces résident dans son approche d'analyse multidimensionnelle et ses mécanismes de contrôle des risques robustes, bien que l'attention soit portée à l'optimisation des paramètres et à l'adaptation à l'environnement du marché.


/*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")


Relationnée

Plus de