Estrategia fractal de ruptura


Fecha de creación: 2023-12-19 15:32:57 Última modificación: 2023-12-19 15:32:57
Copiar: 2 Número de Visitas: 885
1
Seguir
1621
Seguidores

Estrategia fractal de ruptura

Descripción general

La estrategia es una estrategia de seguimiento de tendencias en línea larga para determinar la tendencia de los precios. Se toma la decisión de establecer una posición mediante el cálculo de los puntos de inflexión de los precios históricos y la determinación de la ruptura del último punto de inflexión. Al mismo tiempo, se determina la dirección de la tendencia mediante el cálculo del precio promedio de los últimos N puntos de inflexión.

Principio de estrategia

  1. Se calcula el punto de inflexión del precio. El punto de inflexión se define como el precio más alto del día por encima del precio más alto de los dos días anteriores y los dos siguientes.
  2. El precio de la última ruptura se registra como resistencia.
  3. Cuando el precio de cierre rompe el último punto de fractura, se considera que la resistencia ha sido superada y se establece una posición de ventaja.
  4. Calcule el precio promedio de los últimos N puntos de separación para determinar la tendencia, cuando el precio promedio sube como tendencia alcista y baja como tendencia bajista.
  5. Si el precio promedio del punto de inflexión cambia a la baja cuando se hace una posición múltiple, entonces la posición está plana.

Análisis de las ventajas

La mayor ventaja de esta estrategia de análisis de tendencias basado en puntos de corte es que puede filtrar el ruido del mercado y determinar la dirección de la tendencia de las líneas más largas. En comparación con indicadores como las medias móviles simples, es más resistente a las fluctuaciones anormales repentinas.

Además, la estrategia tiene criterios muy claros para la construcción de posiciones y la negociación de posiciones, sin problemas de transacciones frecuentes. Esto también lo hace especialmente adecuado para la tenencia de líneas largas.

Análisis de riesgos

El mayor riesgo de esta estrategia reside en la probabilidad de que los puntos de fractura juzguen por sí mismos. Los puntos de fractura no pueden predecir que el precio se revertirá por ciento, es decir, que la probabilidad de error de juicio sigue existiendo.

Además, los intervalos de tiempo para juzgar los puntos de división son más largos y no son adecuados para el comercio de alta frecuencia. Esta estrategia tampoco es muy adecuada si se persigue el comercio de líneas cortas.

Dirección de optimización

Teniendo en cuenta la probabilidad de error en el cálculo de la fracción, se puede optimizar de la siguiente manera:

  1. En combinación con la confirmación de otros indicadores, como el canal de la línea de Brin, la media móvil, etc., se evita el error de juicio de un solo punto de fracción.

  2. Ajuste los parámetros de los puntos de fractura, como el número de ciclos antes y después del juicio, para optimizar el juicio de los puntos de fractura.

  3. Incrementar las estrategias de stop loss para detener los pérdidas cuando se amplíen hasta cierto punto.

Resumir

Esta estrategia de ruptura es muy adecuada para juzgar las tendencias de línea larga en general, y también es muy adecuada para ser utilizada por los inversores de línea larga. Solo necesitamos ajustar los parámetros adecuadamente y agregar otros indicadores de filtrado para asegurar la precisión de la determinación.

Código Fuente de la Estrategia
/*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')