TURTLE - Estrategia de ruptura de la banda de Bollinger ATR

ATR
Fecha de creación: 2024-06-03 10:48:09 Última modificación: 2024-06-03 10:48:09
Copiar: 0 Número de Visitas: 710
1
Seguir
1617
Seguidores

TURTLE - Estrategia de ruptura de la banda de Bollinger ATR

Descripción general

Se trata de una estrategia de seguimiento de tendencias basada en la ley de las tormentas. La estrategia utiliza el ATR para determinar la dirección de la tendencia y el tamaño de la posición de negociación. La estrategia abre una posición para hacer más o hacer menos cuando el precio supera el precio más alto o más bajo del período anterior.

Principio de estrategia

El núcleo de esta estrategia es el uso del indicador ATR para determinar la dirección de la tendencia y el tamaño de las posiciones comerciales. El indicador ATR puede medir la volatilidad del mercado, lo que nos ayuda a determinar el nivel de parada y el tamaño de la posición adecuados. Los pasos principales de la estrategia son los siguientes:

  1. Calcula el valor del indicador ATR.
  2. Determinar el nivel de los precios de ruptura de los más altos y los más bajos. El precio de ruptura de los más altos es el precio más alto del período anterior, y el precio de ruptura de los más bajos es el precio más bajo del período anterior.
  3. Si el precio supera el precio de ruptura de más de una posición, abre una posición más; si el precio supera el precio de ruptura de una posición vacía, abre una posición vacía.
  4. El tamaño de la posición por transacción se calcula en función del valor del indicador ATR y el saldo de la cuenta.
  5. Mantener una posición hasta que el precio rompa el precio más bajo de un período de tiempo pasado (Multiple Holdings) o el precio más alto (Empty Holdings), y la posición se cierra.

De esta manera, la estrategia es capaz de capturar las tendencias fuertes, mientras que el control de los riesgos es estricto. El uso del indicador ATR puede ayudarnos a ajustar dinámicamente el tamaño de la posición para adaptarnos mejor a la volatilidad del mercado.

Ventajas estratégicas

  1. Seguimiento de tendencias: El objetivo de esta estrategia es capturar las tendencias fuertes para obtener beneficios considerables.
  2. Control de riesgo: La estrategia permite controlar el riesgo de manera efectiva mediante el uso de indicadores ATR para determinar el tamaño de la posición y el punto de parada.
  3. Adaptabilidad: los indicadores ATR se pueden ajustar dinámicamente, lo que permite que las estrategias se adapten a diferentes entornos del mercado.
  4. Sencillez: La lógica de la estrategia es clara, fácil de entender y de implementar.

Riesgo estratégico

  1. Reversión de tendencias: la estrategia puede sufrir grandes pérdidas cuando la tendencia del mercado se invierte repentinamente.
  2. Mercado de turbulencias: En mercados de turbulencias, la estrategia puede generar una tendencia a cerrar posiciones frecuentemente, lo que puede generar altos costos de transacción.
  3. Sensibilidad de parámetros: el rendimiento de la estrategia puede ser sensible a la configuración de parámetros, y los parámetros inapropiados pueden causar un mal rendimiento de la estrategia.

Para hacer frente a estos riesgos, se pueden considerar las siguientes soluciones:

  1. Introducción de mecanismos de confirmación de tendencias para evitar la apertura prematura de posiciones en caso de cambio de tendencia.
  2. Reducir el tamaño de las posiciones o suspender las operaciones en un mercado convulso.
  3. Optimización de los parámetros para encontrar la mejor combinación de ellos.

Dirección de optimización de la estrategia

  1. Introducción de más indicadores: Además de los indicadores ATR, se puede considerar la introducción de otros indicadores de confirmación de tendencias, como los promedios móviles, para mejorar la precisión del juicio de tendencias.
  2. Parámetros de ajuste dinámico: De acuerdo con diferentes circunstancias del mercado, los parámetros de estrategia de ajuste dinámico, como el ciclo ATR, el ciclo de precios de ruptura, etc., para adaptarse a los cambios en el mercado.
  3. Adherirse a un mecanismo de stop-loss: después de obtener una cierta ganancia, se puede considerar una posición parcialmente cerrada para bloquear las ganancias y reducir el riesgo.
  4. Gestión de posiciones múltiples: se puede considerar la gestión de posiciones múltiples y vacantes por separado, como la adopción de diferentes criterios de stop loss para aumentar la flexibilidad de la estrategia.

Con estas optimizaciones, se puede mejorar aún más la estabilidad y la rentabilidad de la estrategia.

Resumir

La estrategia de breakout de la banda de tornado de TURTLE-ATR es una estrategia de seguimiento de tendencias basada en las reglas de negociación de la tormenta. Utiliza el indicador ATR para determinar la dirección de la tendencia y el tamaño de la posición de negociación, para abrir posiciones y mantener posiciones hasta que la tendencia se revierta. La ventaja de la estrategia reside en la capacidad de capturar una tendencia fuerte, mientras que el riesgo está estrictamente controlado. Sin embargo, la estrategia también se enfrenta a riesgos como la reversión de la tendencia, la oscilación del mercado y la sensibilidad a los parámetros.

Código Fuente de la Estrategia
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © luisfeijoo22

//@version=5
strategy("Estrategia de las tortugas_ES", overlay=true, pyramiding=3)

// Parámetros 
atrLength = input.int(20, "Longitud del ATR")
atrFactor = input.float(2, "Factor del ATR")
entryBreakout = input.int(20, "Breakout de entrada")
exitBreakout = input.int(10, "Breakout de salida")
longOnly = input.bool(false, "Solo largos")
shortOnly = input.bool(false, "Solo cortos")


// Cálculo del ATR
atr = ta.atr(atrLength)

// Cálculo de los niveles de breakout
longEntry = ta.highest(high, exitBreakout)[1]
longExit = ta.lowest(low, exitBreakout)[1]
shortEntry = ta.lowest(low, exitBreakout)[1]
shortExit = ta.highest(high, exitBreakout)[1]

// Cálculo del tamaño de la posición
nContracts = math.floor((strategy.equity * 0.01) / (atrFactor * atr))

// Filtra las fechas según el rango deseado
// in_range = time >= timestamp(year(start_date), month(start_date), dayofmonth(start_date)) 

// Condiciones de entrada y salida
longCondition = not longOnly and close > longEntry and time >= timestamp("2023-03-15")
if longCondition
    strategy.entry("Long", strategy.long, qty = nContracts)

shortCondition = not shortOnly and close < shortEntry and time >=  timestamp("2023-03-15")
if shortCondition
    strategy.entry("Short", strategy.short, qty = nContracts)
    
strategy.exit("Exit Long", "Long", stop = longExit)
strategy.exit("Exit Short", "Short", stop = shortExit)

// Visualización de los niveles de breakout
plot(longEntry, "Entrada larga", color.green, style = plot.style_line)
plot(longExit, "Salida larga", color.red, style = plot.style_line)
plot(shortEntry, "Entrada corta", color.green, style = plot.style_line)
plot(shortExit, "Salida corta", color.red, style = plot.style_line)