Esta es una estrategia de negociación cuantitativa basada en el método de análisis Markttechnik (MT) ampliamente utilizado por las instituciones financieras alemanas. La estrategia combina múltiples dimensiones, incluido el seguimiento de tendencias SMA, la identificación de soporte y resistencia, el análisis de patrones de velas de inversión y el tamaño de posición de la pirámide, logrando una negociación estable a través de un estricto control de riesgos.
La estrategia emplea los siguientes componentes clave para construir el sistema de negociación: Determinación de tendencia: utiliza el promedio móvil simple (SMA) de 10 períodos como el principal indicador de tendencia, con precios por encima del SMA que indican tendencia alcista y viceversa. 2. Soporte y resistencia: Determina las zonas de soporte y resistencia a corto plazo utilizando precios altos y bajos de 3 períodos. Patrones de reversión: analiza los patrones de candeleros de martillo y estrella fugaz como indicadores importantes de reversión. 4. Señales comerciales: desencadena señales comerciales basadas en la confirmación de la dirección de la tendencia combinada con niveles de soporte/resistencia y patrones de reversión. 5. Gestión de posiciones: emplea una estrategia de dimensionamiento de posiciones piramidal que permite hasta 2 veces la acumulación de posiciones. 6. Control de riesgos: establece un límite máximo de extracción del 5% y utiliza una relación riesgo-recompensación de 2.0 para los niveles de stop loss y take profit.
Esta estrategia construye un sistema comercial completo a través del análisis de señales multidimensionales y el estricto control de riesgos. Las ventajas centrales se encuentran en la fiabilidad de la señal y la capacidad de control de riesgos, aunque todavía se necesita optimización de parámetros para diferentes entornos de mercado. A través de las direcciones de optimización sugeridas, la estabilidad y rentabilidad de la estrategia se pueden mejorar aún más. La estrategia es adecuada para mercados con tendencias claras y es una consideración valiosa para los operadores que buscan retornos estables.
/*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)