
이는 독일 금융기관에서 널리 사용되는 마르크테크닉(MT) 분석방법을 기반으로 한 양적 거래 전략입니다. 이 전략은 이동 평균(SMA) 추세 추적, 지지 및 저항 수준 식별, 반전 K-라인 패턴 분석, 피라미드 스타일 포지션 추가 등 여러 차원을 결합하여 엄격한 위험 관리를 통해 견고한 거래를 달성합니다. 전략의 핵심은 다차원적 신호에 대한 종합적 판단을 통해 시장 추세의 방향을 파악하고, 추세가 형성되면 피라미드 형태의 포지션을 통해 수익을 확대하는 것입니다.
이 전략은 다음과 같은 핵심 구성 요소를 사용하여 거래 시스템을 구축합니다.
이 전략은 다차원적 신호 분석과 엄격한 위험 관리를 통해 완전한 거래 시스템을 구축합니다. 이 전략의 핵심적인 장점은 신호의 신뢰성과 위험의 통제 가능성에 있지만, 다양한 시장 환경에는 여전히 매개변수 최적화가 필요합니다. 제안된 최적화 방향을 통해 전략의 안정성과 수익성이 더욱 향상될 것으로 기대됩니다. 이 전략은 추세가 명확한 시장에서 사용하기에 적합하며, 안정적인 수익을 추구하는 트레이더라면 고려해 볼 만한 옵션입니다.
/*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)