이 전략은 독일 금융 기관에서 널리 사용되는 마르크테크닉 (MT) 분석 방법을 기반으로 한 양적 거래 전략입니다. 전략은 SMA 트렌드 추적, 지원 및 저항 식별, 역전 촛불 패턴 분석 및 피라미드 위치 사이징을 포함한 여러 차원을 결합하여 엄격한 위험 통제를 통해 안정적인 거래를 달성합니다. 전략의 핵심은 다차원 신호 합성으로 시장 트렌드 방향을 결정하고 트렌드가 형성되면 피라미드 위치 사이징을 통해 이익을 확장하는 데 있습니다.
이 전략은 거래 시스템을 구축하기 위해 다음과 같은 주요 구성 요소를 사용합니다. 1. 트렌드 결정: 주요 트렌드 지표로 10 기간 간 단순 이동 평균 (SMA) 을 사용하며, SMA 이상의 가격은 상승 추세를 나타냅니다. 2. 지원 및 저항: 3 기간 높은 가격과 낮은 가격을 사용하여 단기 지원 및 저항 구역을 결정합니다. 3. 반전 패턴: 중요한 반전 지표로 망치 및 쏘닝 스타 촛불 패턴을 분석합니다. 4. 거래 신호: 트렌드 방향 확인과 함께 지원/저항 수준 및 반전 패턴을 기반으로 거래 신호를 유발합니다. 5. 위치 관리: 최대 2x 위치 축적을 허용하는 피라미드 위치 크기 전략을 사용합니다. 6. 리스크 제어: 5%의 최대 마감 한도를 설정하고 스톱 로스 및 영업 수준에 대해 2.0 리스크 리워드 비율을 사용합니다.
이 전략은 다차원적 신호 분석과 엄격한 위험 통제를 통해 완전한 거래 시스템을 구축합니다. 핵심 장점은 신호 신뢰성과 위험 제어성, 비록 매개 변수 최적화가 여전히 다른 시장 환경에 필요합니다. 제안된 최적화 방향을 통해 전략 안정성과 수익성이 더욱 향상 될 수 있습니다. 전략은 명확한 추세를 가진 시장에 적합하며 안정적인 수익을 추구하는 거래자에게는 가치가 있습니다.
/*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)