En la carga de los recursos... Cargando...

Estrategia avanzada de seguimiento de tendencia con parada de seguimiento adaptativa

El autor:¿ Qué pasa?, Fecha: 2024-12-20 14:12:05
Las etiquetas:El ATRSLTítulo de los productos

img

Resumen general

Esta es una estrategia de seguimiento de tendencia basada en el indicador Supertrend, combinada con un mecanismo de stop loss de seguimiento adaptativo. La estrategia utiliza principalmente el indicador Supertrend para identificar la dirección de la tendencia del mercado y emplea paradas de seguimiento ajustadas dinámicamente para gestionar el riesgo y optimizar el tiempo de salida. Soporta múltiples métodos de stop loss, incluidos paradas basadas en porcentajes, basadas en ATR y puntos fijos, lo que permite un ajuste flexible de acuerdo con diferentes condiciones del mercado.

Principios de estrategia

La lógica central de la estrategia se basa en los siguientes elementos clave:

  1. Utiliza el indicador Supertrend como base principal para la determinación de tendencias, que combina el ATR (Average True Range) para medir la volatilidad del mercado
  2. Las señales de entrada se activan por cambios de dirección de Supertrend, apoyando el comercio largo, corto o bilateral
  3. El mecanismo de suspensión de pérdidas emplea suspensiones de seguimiento adaptativas que se ajustan automáticamente en función de la volatilidad del mercado.
  4. El sistema de gestión de operaciones incluye el tamaño de las posiciones (default 15% del capital de la cuenta) y mecanismos de filtrado temporal

Ventajas estratégicas

  1. Capacidad fuerte de captura de tendencias: identifica eficazmente las principales tendencias a través del indicador Supertrend, reduciendo las señales falsas
  2. Control de riesgos completo: emplea diversos mecanismos de stop loss adecuados para diferentes entornos de mercado
  3. Alta flexibilidad: admite la configuración de múltiples direcciones de negociación y métodos de stop loss
  4. Gran adaptabilidad: las paradas de seguimiento se ajustan automáticamente según la volatilidad del mercado, lo que mejora la adaptabilidad de la estrategia
  5. Sistema completo de backtesting: función de filtración temporal incorporada para el análisis del rendimiento histórico

Riesgos estratégicos

  1. Riesgo de reversión de tendencia: pueden producirse señales falsas en mercados altamente volátiles
  2. El riesgo de deslizamiento: la liquidez del mercado puede afectar a la ejecución de la parada de seguimiento
  3. Sensibilidad del parámetro: el factor de supertendencia y la configuración del período ATR tienen un impacto significativo en el rendimiento de la estrategia
  4. Dependencia del entorno del mercado: la negociación frecuente en mercados diversos puede aumentar los costes

Direcciones para la optimización de la estrategia

  1. Optimización del filtrado de señales: se pueden añadir indicadores técnicos adicionales para filtrar señales falsas
  2. Optimización de la gestión de posiciones: el tamaño de las posiciones puede ajustarse dinámicamente en función de la volatilidad del mercado
  3. Mejora del mecanismo de stop loss: se puede diseñar una lógica de stop loss más compleja que incorpore el precio medio de costos
  4. Optimización del tiempo de entrada: se puede agregar un análisis de la estructura de precios para mejorar la precisión de la entrada
  5. Mejora del sistema de backtesting: se pueden añadir más indicadores estadísticos para evaluar el rendimiento de la estrategia

Resumen de las actividades

Esta es una tendencia bien diseñada siguiendo una estrategia con riesgo controlable. Al combinar el indicador Supertrend con mecanismos de stop loss flexibles, la estrategia puede mantener una alta rentabilidad mientras controla eficazmente el riesgo. La estrategia es altamente configurable y adecuada para su uso en diferentes entornos de mercado, pero requiere una optimización exhaustiva de parámetros y verificación de backtesting. Se pueden hacer mejoras futuras agregando más herramientas de análisis técnico y medidas de control de riesgos para mejorar aún más la estabilidad y la rentabilidad de la estrategia.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Supertrend Strategy with Adjustable Trailing Stop [Bips]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

// Inputs
atrPeriod = input(10, "ATR Länge", "Average True Range „wahre durchschnittliche Schwankungsbreite“ und stammt aus der technischen Analyse. Die ATR misst die Volatilität eines Instruments oder eines Marktes. Mit ihr kann die Wahrscheinlichkeit für einen Trendwechsel bestimmt werden.", group="Supertrend Settings")
factor = input.float(3.0, "Faktor", step=0.1, group="Supertrend Settings")
tradeDirection = input.string("Long", "Trade Direction", options=["Both", "Long", "Short"], group="Supertrend Settings")
sl_type    = input.string("%", "SL Type", options=["%", "ATR", "Absolute"])
// Parameter für ST nur für einstieg -> Beim Ausstieg fragen ob der bool WWert true ist -> Für weniger und längere Trädes 

sl_perc    = input.float(4.0, "% SL", group="Stop Loss Einstellung")
atr_length = input.int(10, "ATR Length", group="Stop Loss Einstellung")
atr_mult   = input.float(2.0, "ATR Mult", group="Stop Loss Einstellung")
sl_absol   = input.float(10.0, "Absolute SL", group="Stop Loss Einstellung")

//-------------------------//
// BACKTESTING RANGE
fromDay   = input.int(defval=1, title="From Day", minval=1, maxval=31, group="Backtesting Einstellung")
fromMonth = input.int(defval=1, title="From Month", minval=1, maxval=12, group="Backtesting Einstellung")
fromYear  = input.int(defval=2016, title="From Year", minval=1970, group="Backtesting Einstellung")
toDay     = input.int(defval=1, title="To Day", minval=1, maxval=31, group="Backtesting Einstellung")
toMonth   = input.int(defval=1, title="To Month", minval=1, maxval=12, group="Backtesting Einstellung")
toYear    = input.int(defval=2100, title="To Year", minval=1970, group="Backtesting Einstellung")

startDate  = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond  = time >= startDate and time <= finishDate

//-------------------------//
// Supertrend calculation
[_, direction] = ta.supertrend(factor, atrPeriod)

// SL values
sl_val = sl_type == "ATR"      ? atr_mult * ta.atr(atr_length) : 
         sl_type == "Absolute" ? sl_absol : 
         close * sl_perc / 100
         
// Init Variables
var pos         = 0
var float trailing_sl = 0.0

// Signals
long_signal  = nz(pos[1]) !=  1 and high > nz(trailing_sl[1])
short_signal = nz(pos[1]) != -1 and low  < nz(trailing_sl[1]) 

// Calculate SL
trailing_sl := short_signal     ? high + sl_val : 
               long_signal      ? low  - sl_val : 
               nz(pos[1]) ==  1 ? math.max(low  - sl_val, nz(trailing_sl[1])) :  
               nz(pos[1]) == -1 ? math.min(high + sl_val, nz(trailing_sl[1])) : 
               nz(trailing_sl[1])
               
// Position var               
pos := long_signal  ? 1 : short_signal ? -1 : nz(pos[1]) 

// Entry logic
if ta.change(direction) < 0 and time_cond
    if tradeDirection == "Both" or tradeDirection == "Long"
        strategy.entry("Long", strategy.long, stop=trailing_sl)
    else
        strategy.close_all("Stop Short")

if ta.change(direction) > 0 and time_cond
    if tradeDirection == "Both" or tradeDirection == "Short"
        strategy.entry("Short", strategy.short, stop=trailing_sl)
    else
        strategy.close_all("Stop Long")

// Exit logic: Trailing Stop and Supertrend
//if strategy.position_size > 0 and not na(trailing_sl)
    //strategy.exit("SL-Exit Long", from_entry="Long", stop=trailing_sl)

//if strategy.position_size < 0 and not na(trailing_sl)
    //strategy.exit("SL-Exit Short", from_entry="Short", stop=trailing_sl)

// Trailing Stop visualization
plot(trailing_sl, linewidth = 2, color = pos == 1 ? color.green : color.red)
//plot(not na(trailing_sl) ? trailing_sl : na, color=pos == 1 ? color.green : color.red, linewidth=2, title="Trailing Stop")


Relacionados

Más.