Estrategia de ruptura de SuperTrend

El autor:¿ Qué pasa?, fecha: 2024-02-28 18:12:47
Las etiquetas:

img

Resumen general

Esta estrategia genera señales comerciales cuando el precio rompe el canal de tendencia alcista / descendente formado por el indicador SuperTrend.

Estrategia lógica

La estrategia primero calcula el indicador ATR como una medida de la volatilidad de los precios, luego lo combina con el promedio de los precios más altos, más bajos y de cierre para calcular las bandas superior e inferior. Cuando el precio se rompe por encima de la banda inferior durante una tendencia alcista, se genera una señal de compra. Cuando el precio se rompe por debajo de la banda superior durante una tendencia bajista, se activa una señal de venta. Esto forma un canal de tendencia alcista / bajista adaptativo que rastrea las tendencias de precios.

Después de entrar en el mercado, la estrategia establece ticks de ganancia objetivo y ticks de stop loss. Cierra la posición para obtener ganancias cuando el precio alcanza el objetivo de ganancia, y se detiene cuando el descenso alcanza el nivel de stop loss.

Análisis de ventajas

La mayor ventaja de esta estrategia es su excelente capacidad de seguimiento de tendencias. El canal adaptativo puede capturar rápidamente los cambios de tendencia. El uso de ATR también proporciona cierta seguridad de negociación junto con el impulso. Además, el objetivo de ganancia y el mecanismo de stop loss da un control claro de riesgo / recompensa.

Análisis de riesgos

Un riesgo importante es que pueda generar excesos en los mercados de rango, ya que el precio atraviesa constantemente las bandas.

Para reducir dichos riesgos, los parámetros como el período ATR o el multiplicador de canal podrían optimizarse para adaptarse mejor a la tendencia real.

Oportunidades de mejora

La estrategia puede mejorarse en varios aspectos:

  1. Optimizar los parámetros del ATR para reflejar mejor la dinámica de volatilidad real.

  2. Prueba diferentes multiplicadores para optimizar el ancho del canal.

  3. Añadir otros indicadores como filtros en las entradas, por ejemplo, MACD para un mejor tiempo.

  4. Optimizar el objetivo de ganancia y los niveles de stop loss para maximizar los rendimientos ajustados al riesgo.

  5. Considere otros objetivos como la proporción Sharpe o el factor de ganancia para evaluar la calidad general.

Resumen de las actividades

La estrategia aprovecha el modelo de ruptura de canal adaptativo para lograr una gran capacidad de seguimiento de tendencias. También tiene mecanismos claros de control de riesgos. Con mayor ajuste de parámetros y mejora de la lógica, tiene el potencial de funcionar aún mejor en varias condiciones de mercado y clases de activos.


/*backtest
start: 2024-02-26 00:00:00
end: 2024-02-26 20:20:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")

target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")

// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)

// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed

// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)

// Strategy entry and exit
if long_condition
    strategy.entry("Long", strategy.long)
if short_condition
    strategy.entry("Short", strategy.short)

// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points

// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)


Más.