Estrategia de ruptura fractal

El autor:¿ Qué pasa?, Fecha: 2023-12-19 15:32:57
Las etiquetas:

img

Resumen general

Esta es una estrategia de seguimiento de la línea larga de tendencia que juzga la tendencia basada en fractales de precios. Decide abrir posiciones basadas en el avance del último punto fractal. Al mismo tiempo, juzga la dirección de la tendencia calculando el precio promedio de los últimos N puntos fractal y cierra posiciones cuando cambia la tendencia.

Principios

  1. El punto fractal se define como el precio más alto de hoy que es más alto que los precios más altos de los dos días anteriores y los dos días siguientes.

  2. Registra el precio del último punto fractal como resistencia.

  3. Cuando el precio de cierre rompe el último punto fractal, se considera que se ha roto la resistencia y se ha establecido una posición larga.

  4. Calcule el precio promedio de los últimos N puntos fractales para determinar la tendencia. Cuando el precio promedio aumenta, es una tendencia alcista, y cuando cae, es una tendencia bajista.

  5. Si el precio promedio del punto fractal baja durante la posición larga, cierre la posición.

Análisis de ventajas

La mayor ventaja de esta estrategia de juicio de tendencia basada en fractales es que puede filtrar eficazmente el ruido del mercado y determinar las direcciones de tendencia a más largo plazo.

Además, los criterios de apertura y cierre de las posiciones de esta estrategia son muy claros, lo que evita una negociación frecuente y la hace particularmente adecuada para las tenencias a largo plazo.

Análisis de riesgos

El mayor riesgo de esta estrategia radica en la naturaleza probabilística de los puntos fractales en sí mismos. Los fractales no pueden predecir completamente si los precios definitivamente se revertirán, es decir, la probabilidad de error de juicio todavía existe. Cuando ocurren errores de juicio, se enfrentará al riesgo de pérdidas.

Además, el lapso de tiempo para juzgar los puntos fractales es largo y no se puede adaptar al comercio de alta frecuencia.

Direcciones de optimización

Teniendo en cuenta la probabilidad de error de juicio de los puntos fractales, podemos optimizar de las siguientes maneras:

  1. Combinar con otros indicadores como bandas de Bollinger, promedios móviles, etc. para evitar juicios erróneos basados únicamente en puntos fractales.

  2. Ajustar los parámetros de los puntos fractales, como el número de períodos antes y después del juicio, para optimizar los juicios de puntos fractales.

  3. Añadir estrategias de stop loss para detener las pérdidas cuando las pérdidas se expanden hasta cierto punto.

Resumen de las actividades

La estrategia de ruptura fractal es muy adecuada para juzgar las tendencias a largo plazo en general y es muy adecuada para su uso por los inversores a largo plazo. Siempre y cuando ajustemos adecuadamente los parámetros apropiadamente, añadimos otros indicadores de filtrado en la premisa de garantizar la precisión del juicio, podemos optimizar en gran medida esta estrategia y hacerla una parte importante de la decisión cuantitativa.


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

//@version=2
strategy("Fractal Breakout Strategy (by ChartArt)", shorttitle="CA_-_Fractal_Breakout_Strat", overlay=true)

// ChartArt's Fractal Breakout Strategy
//
// Version 1.0
// Idea by ChartArt on April 24, 2016.
//
// This long only strategy determines the last fractal top
// and enters a trade when the price breaks above the last
// fractal top. The strategy also calculates the average
// price of the last 2 (or 3) fractal tops to get the trend.
//
// The strategy exits the long trade when the average of the
// fractal tops is falling (when the trend is lower highs).
// And the user can manually set a delay of this exit.
//
// In addition the fractals tops can be colored in blue
// and a line can be drawn based on the fractal tops.
// This fractal top line is colored by the fractal trend.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 


// input

n_time = input(title='Always exit each trade after this amount of bars later (Most important strategy setting)', defval=3)
price = input(hl2,title='Price type to determine the last fractal top and the fractal breakout, the default is (high+low)/2')


// fractal calculation

fractal_top = high[2] > high[3] and high[2] > high[4] and high[2] > high[1] and high[2] > high[0]
fractal_price = valuewhen(fractal_top, price, 1)
use_longer_average = input(true,title='Use Fractal price average of the last 3 fractals instead of the last 2 fractals?')
fractal_average = use_longer_average?(fractal_price[1] + fractal_price[2] + fractal_price[3] ) / 3 : (fractal_price[1] + fractal_price[2]) / 2
fractal_trend = fractal_average[0] > fractal_average[1]
no_repainting = input(true,title='Use the price of the last bar to prevent repainting?')
fractal_breakout = no_repainting?price[1] > fractal_price[0]:price[0] > fractal_price[0]


// highlight fractal tops

show_highlight = input(true,title='Highlight fractal tops in blue and color all other bars in gray?')
highlight = fractal_top?blue:silver
barcolor(show_highlight?highlight:na,offset=-2)
show_fractal_top_line = input(true,title='Draw a colored line based on the fractal tops?')
fractal_top_line = change(fractal_top) != 0 ? price : na
fractal_top_line_color = change(fractal_price) > 0 and fractal_breakout == true ? green : change(fractal_price) < 0 and fractal_breakout == false ? red : blue
plot(show_fractal_top_line?fractal_top_line:na,offset=-2,color=fractal_top_line_color,linewidth=4)


// strategy

trade_entry = fractal_trend and fractal_breakout
trade_exit = fractal_trend[n_time] and fractal_trend == false 
 
if (trade_entry)
    strategy.entry('Long', strategy.long)
 
if (trade_exit)
    strategy.close('Long')

Más.