Il s'agit d'une stratégie de trading quantitative basée sur la méthode d'analyse Markttechnik (MT) largement utilisée par les institutions financières allemandes. La stratégie combine plusieurs dimensions, notamment le suivi de la tendance SMA, l'identification du support et de la résistance, l'analyse des modèles de bougies de renversement et le dimensionnement des positions pyramidales, afin d'obtenir un trading stable grâce à un contrôle strict des risques.
La stratégie utilise les éléments clés suivants pour construire le système de négociation: 1. Détermination de la tendance: utilise la moyenne mobile simple (SMA) à 10 périodes comme indicateur principal de tendance, les prix au-dessus de la SMA indiquant une tendance haussière et vice versa. 2. Soutien et résistance: Détermine les zones de soutien et de résistance à court terme en utilisant des prix hauts et bas de 3 périodes. 3. Modèles d'inversion: analyse les modèles de chandeliers à marteaux et à étoiles filantes comme indicateurs d'inversion importants. Signals de trading: déclenche des signaux de trading basés sur la confirmation de la direction de la tendance combinée à des niveaux de support/résistance et à des modèles d'inversion. 5. Gestion des positions: utilise une stratégie de dimensionnement des positions pyramidale permettant jusqu'à 2 fois l'accumulation des positions. 6. Contrôle des risques: définit une limite de retrait maximale de 5% et utilise un ratio risque-rendement de 2,0 pour les niveaux de stop loss et de take profit.
Cette stratégie construit un système de trading complet grâce à une analyse multidimensionnelle des signaux et un contrôle strict des risques. Les principaux avantages résident dans la fiabilité des signaux et la maîtrisabilité des risques, bien que l'optimisation des paramètres soit toujours nécessaire pour différents environnements de marché.
/*backtest start: 2025-01-02 00:00:00 end: 2025-01-09 00:00:00 period: 30m basePeriod: 30m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Markttechnik Strategie mit Pyramiding und Drawdown-Limit", overlay=true, pyramiding=2) // Eingabewerte lengthSupport = input.int(3, title="Unterstützungs-/Widerstandsfenster", minval=1) lengthSMA = input.int(10, title="SMA Länge für Trends", minval=1) riskRewardRatio = input.float(2.0, title="Risk-Reward-Ratio", minval=0.1, step=0.1) maxDrawdown = input.float(5.0, title="Maximaler Drawdown (%)", minval=0.1, step=0.1) // Unterstützungs- und Widerstandszonen berechnen support = ta.lowest(low, lengthSupport) resistance = ta.highest(high, lengthSupport) // Trendindikator (SMA-basierter Trend) sma = ta.sma(close, lengthSMA) trendUp = close > sma trendDown = close < sma // Umkehrstäbe erkennen isHammer = close > open and (low < open) and ((open - low) > 2 * (close - open)) isShootingStar = open > close and (high > open) and ((high - open) > 2 * (open - close)) // Kauf- und Verkaufssignale buySignal = isHammer and close > support and trendUp sellSignal = isShootingStar and close < resistance and trendDown // Strategiefunktionen: Pyramiding und Drawdown equityPeak = na(strategy.equity[1]) or strategy.equity > strategy.equity[1] ? strategy.equity : strategy.equity[1] // Höchster Kontostand drawdown = equityPeak > 0 ? (strategy.equity - equityPeak) / equityPeak * 100 : 0 // Drawdown in Prozent if buySignal and drawdown > -maxDrawdown strategy.entry("Buy", strategy.long) strategy.exit("Sell", "Buy", stop=low - (high - low) * riskRewardRatio, limit=close + (close - low) * riskRewardRatio) if sellSignal and drawdown > -maxDrawdown strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", stop=high + (high - low) * riskRewardRatio, limit=close - (high - close) * riskRewardRatio) // Unterstützungs- und Widerstandslinien zeichnen plot(support, color=color.new(color.green, 80), linewidth=1, title="Unterstützungszone") plot(resistance, color=color.new(color.red, 80), linewidth=1, title="Widerstandszone") // Trendlinie (SMA) plot(sma, color=color.blue, linewidth=2, title="SMA-Trend") // Umkehrstäbe hervorheben bgcolor(buySignal ? color.new(color.green, 90) : na, title="Kaufsignal Hintergrund") bgcolor(sellSignal ? color.new(color.red, 90) : na, title="Verkaufssignal Hintergrund") // Debugging: Drawdown anzeigen plot(drawdown, title="Drawdown (%)", color=color.purple, linewidth=2, style=plot.style_line)