Diese Strategie ist ein fortschrittliches Handelssystem, das Harmonische Muster mit dem Williams Percent Range (WPR) -Indikator kombiniert. Es identifiziert harmonische Formationen (wie Gartley, Bat, Crab und Butterfly Muster) auf dem Markt und verwendet WPR
Die Kernlogik umfasst mehrere Schlüsselelemente: 1. Harmonische Mustererkennung: Verwendet Preisschwenkpunkte, um potenzielle harmonische Formationen zu identifizieren, indem die Beziehungen zwischen Höhen und Tiefen analysiert werden. 2. Williams %R Berechnung: Verwendet eine benutzerdefinierte Periode zur Berechnung der WPR, analysiert die Beziehungen zwischen hohen, niedrigen und Schlusskosten, um die Marktbedingungen zu bestimmen. 3. Zulassungsbedingungen: - Long Entry: Wenn ein bullisches harmonisches Muster erscheint und WPR im Überverkaufszentrum ist - Kurzer Einstieg: Wenn ein bärisches harmonisches Muster erscheint und WPR im Überkaufszone ist 4. Risikomanagement: Implementiert dynamische Stop-Loss-Aktivitäten, die auf den jüngsten Tiefs/Hochs basieren, und setzt mit Hilfe von Risiko-Rendite-Verhältnissen die Gewinnquote fest.
Diese Strategie baut ein umfassendes Handelssystem auf, indem sie harmonische Muster mit dem Williams %R-Indikator kombiniert. Ihre Stärken liegen in ihrem mehrdimensionalen Analyseansatz und robusten Risikokontrollmechanismen, wobei jedoch die Optimierung von Parametern und die Anpassung an das Marktumfeld berücksichtigt werden müssen. Durch die vorgeschlagenen Optimierungsrichtungen können die Stabilität und Zuverlässigkeit der Strategie weiter verbessert werden.
/*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")