Estrategia de ruptura fractal doble

El autor:¿ Qué pasa?, Fecha: 2024-01-30 15:53:27
Las etiquetas:

img

Resumen general

La estrategia de ruptura fractal doble es una estrategia de negociación cuantitativa basada en el reconocimiento de patrones técnicos.

Estrategia lógica

La idea central detrás de esta estrategia radica en la teoría fractal. La aparición de puntos de inflexión a corto plazo en forma de M o W sugiere una posible reversión de la tendencia prevaleciente. Específicamente, los fractales inferiores o superiores se forman cuando 5 barras consecutivas crean combinaciones particulares de altos/bajos de altos/bajos relativos.

La estrategia genera señales largas y cortas cuando los precios se rompen por debajo de los fractales inferiores y por encima de los fractales superiores, respectivamente, ya que tales roturas indican una mayor probabilidad de reversión de la tendencia.

Ventajas

La principal ventaja de esta estrategia es su capacidad para detectar posibles puntos de inversión de tendencia, lo que puede ser muy útil para los sistemas de negociación que siguen tendencias.

Los riesgos

El principal riesgo es que la detección fractal no garantiza las reversiones de precios con total certeza. A veces los precios pueden estar haciendo solo correcciones a corto plazo sin cambios reales de tendencia. Las señales incorrectas pueden conducir a pérdidas innecesarias en tales casos. Para mitigar este riesgo, se pueden usar otros indicadores como los volúmenes de negociación para verificar la validez de las señales de reversión.

Mejoramiento

Las posibles formas de mejorar esta estrategia incluyen:

  1. Añadiendo filtros como el volumen para evitar falsas inversiones.

  2. Ajuste de parámetros para detectar fractales dobles de mayor grado y capturar grandes giros de tendencia.

  3. Incorporar el movimiento de stop loss para reducir las pérdidas por malas operaciones.

Conclusión

La estrategia de ruptura fractal doble identifica posibles inversiones de precios mediante la detección de patrones técnicos específicos. Como un enfoque basado en indicadores técnicos, puede rastrear de manera efectiva las tendencias a corto y mediano plazo en el mercado y proporcionar resultados respetables de riesgo-recompensa.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ceyhun

strategy("Fractal Breakout Strategy", overlay=true)

FUp = high[4] < high[2] and high[3] < high[2] and high[1] < high[2] and high < high[2] or 
   high[5] < high[2] and high[4] < high[2] and high[3] <= high[2] and 
   high[1] < high[2] and high < high[2] or 
   high[6] < high[2] and high[5] < high[2] and high[4] <= high[2] and 
   high[3] <= high[2] and high[1] < high[2] and high < high[2] or 
   high[7] < high[2] and high[6] < high[2] and high[5] <= high[2] and 
   high[4] <= high[2] and high[3] <= high[2] and high[1] < high[2] and 
   high < high[2] or 
   high[8] < high[2] and high[7] < high[2] and high[6] <= high[2] and 
   high[5] <= high[2] and high[4] <= high[2] and high[3] <= high[2] and 
   high[1] < high[2] and high < high[2]
FractalUp = valuewhen(FUp, high[2], 1)
plot(FractalUp, color=#0000FF,title="FractalUp")

FDown = low[4] > low[2] and low[3] > low[2] and low[1] > low[2] and low > low[2] or 
   low[5] > low[2] and low[4] > low[2] and low[3] >= low[2] and low[1] > low[2] and 
   low > low[2] or 
   low[6] > low[2] and low[5] > low[2] and low[4] >= low[2] and low[3] >= low[2] and 
   low[1] > low[2] and low > low[2] or 
   low[7] > low[2] and low[6] > low[2] and low[5] >= low[2] and low[4] >= low[2] and 
   low[3] >= low[2] and low[1] > low[2] and low > low[2] or 
   low[8] > low[2] and low[7] > low[2] and low[6] >= low[2] and low[5] >= low[2] and 
   low[4] >= low[2] and low[3] >= low[2] and low[1] > low[2] and low > low[2]
FractalDown = valuewhen(FDown, low[2], 1)
plot(FractalDown, color=#FF0000,title="FractalDown")

if crossover(close, FractalUp)
    strategy.entry("Long", strategy.long, comment="Long")

if crossunder(close, FractalDown)
    strategy.entry("Short", strategy.short, comment="Short")


Más.