
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. Cette stratégie combine plusieurs dimensions telles que le suivi des tendances de la moyenne mobile (SMA), l’identification des niveaux de support et de résistance, l’analyse des modèles de ligne K d’inversion et l’ajout de positions de style pyramidal pour obtenir un trading robuste grâce à un contrôle strict des risques. Le cœur de la stratégie est de déterminer la direction des tendances du marché grâce à un jugement complet des signaux multidimensionnels et d’augmenter les profits grâce à des positions de type pyramidal lorsque des tendances se forment.
La stratégie utilise les éléments clés suivants pour créer un système de trading :
Cette stratégie construit un système de trading complet grâce à une analyse de signal multidimensionnelle et un contrôle strict des risques. Les principaux avantages de la stratégie résident dans la fiabilité des signaux et la contrôlabilité des risques, mais l’optimisation des paramètres est toujours nécessaire pour différents environnements de marché. Grâce aux orientations d’optimisation recommandées, la stabilité et la rentabilité de la stratégie devraient être encore améliorées. Cette stratégie est adaptée aux marchés aux tendances claires et constitue une option à considérer pour les traders recherchant des rendements stables.
/*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)