Estrategia de ruptura del punto de pivote

El autor:¿ Qué pasa?, Fecha: 2023-09-27 16:35:26
Las etiquetas:

Resumen general

La estrategia de ruptura de punto de pivote es una estrategia de seguimiento de tendencias que compra acciones cuando el precio se rompe por encima de la resistencia reciente y vende cuando el precio se rompe por debajo del soporte reciente para capturar los cambios de tendencia.

Estrategia lógica

La estrategia calcula los puntos medios del precio más alto y el precio más bajo durante un período como las líneas de resistencia y soporte recientes.

Específicamente, calcula el punto medio del precio más alto en los últimos N1 días como la línea de resistencia, y el punto medio del precio más bajo en N2 días como la línea de soporte. En el lado largo, si el precio más alto de hoy rompe por encima de la línea de resistencia reciente, se activa una señal de compra. En el lado corto, si el precio más bajo de hoy rompe por debajo de la línea de soporte reciente, se activa una señal de venta. Los inversores pueden personalizar N1 y N2 para ajustar la sensibilidad de la estrategia.

La estrategia es simple y directa, no requiere predicción de mercado, solo rastrea las rupturas de puntos pivot para capturar tendencias.

Análisis de ventajas

  • Sencillo y fácil de operar, adecuado para todos los inversores

La estrategia es muy simple e intuitiva, no requiere habilidades de pronóstico, solo rastrea las rupturas de los puntos pivot.

  • Captura eficazmente los cambios de tendencia y ajusta las posiciones en consecuencia

La estrategia puede responder de manera oportuna cuando la tendencia cambia, ajustando posiciones para evitar quedar atrapados.

  • Parámetros personalizables para ajustar la flexibilidad de la estrategia

Los inversores pueden personalizar el número de días para mirar a la izquierda y a la derecha, lo que ajusta la sensibilidad de la estrategia.

  • Fácil de combinar con otras estrategias para la versatilidad

La estrategia proporciona principalmente el seguimiento de tendencias y puede combinarse fácilmente con otras estrategias de cronometraje para mejorar los rendimientos generales.

Análisis de riesgos

  • Efecto de retraso potencial

La estrategia necesita cierta acumulación de datos para identificar los cambios de tendencia, que pueden causar ciertos retrasos en las señales.

  • Riesgo de falsas rupturas

Los mercados pueden tener brechas falsas a corto plazo de los puntos de giro. Los inversores necesitan ciertas habilidades para manejar los golpes y evitar quedar atrapados.

  • Recogidas más grandes

La estrategia sigue completamente las tendencias, por lo que tiene riesgos de retirada relativamente grandes. Los inversores deben considerar su propia tolerancia al riesgo. También pueden reducir los tamaños de las posiciones para reducir los retiros.

  • Necesidad de controlar la frecuencia del comercio

Los parámetros excesivamente sensibles pueden conducir a una frecuencia de negociación excesiva. Necesidad de ajustar los parámetros adecuadamente para controlar el número de operaciones. El período mínimo de retención también puede ayudar a reducir la frecuencia.

Direcciones de optimización

  • Optimiza el ajuste de parámetros

Puede realizar pruebas de retroceso y optimizar los N días para el máximo y el mínimo para encontrar la mejor mezcla de parámetros a largo plazo. También puede ajustar dinámicamente los parámetros en función de las condiciones del mercado, utilizando configuraciones más sensibles cuando la tendencia es fuerte.

  • Añadir fuerza de fuga

Puede establecer un requisito de magnitud mínima para la ruptura para evitar roturas falsas menores.

  • Añadir otros indicadores como filtros

Puede agregar otros indicadores técnicos como RSI, KD, etc. Si la ruptura se alinea con las divergencias del indicador, las señales son más efectivas.

  • Mejorar el dimensionamiento de la posición

Puede dimensionar posiciones dinámicamente en función de las condiciones del mercado para controlar el riesgo. Las coberturas pueden detenerse para evitar grandes pérdidas. También puede ajustar el tamaño en función de la fuerza de las tendencias en curso.

Conclusión

La estrategia de ruptura de puntos pivot captura las tendencias simplemente a través de roturas de puntos pivot, adecuada para una amplia gama de inversores. Sus ventajas son la simplicidad y la captura efectiva de los cambios de tendencia, pero también tiene algunos problemas de retraso, riesgos de whipsaw y grandes reducciones.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EduardoMattje

//@version=5
strategy("Pivot Point Breakout", "PPB", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true)

// Constants

var L_PIVOT_HIGH = "Pivot high"
var L_PIVOT_LOW = "Pivot low"

var LEFT = "Left"
var RIGHT = "Right"

var BOTH = "Both"
var LONG = "Long"
var SHORT = "Short"

var DATES = "Date selection"
var DATES_TOOLTIP = "Change it to limit the trades for the given time interval.\n\nLeave it to disable this behaviour."

// Inputs

var orderDirection = input.string(LONG, "Order direction", options=[BOTH, LONG, SHORT])

var leftHigh = input.int(3, LEFT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)
var rightHigh = input.int(3, RIGHT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)

var leftLow = input.int(3, LEFT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)
var rightLow = input.int(3, RIGHT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)

var startDate = input(0, "Starting date", group=DATES)
var endDate = input(0, "Final date", group=DATES)

//

var float lastHigh = na
var float lastLow = na

lowPivot = ta.pivotlow(leftLow, rightLow)
highPivot = ta.pivothigh(leftHigh, rightHigh)

f_updateLevels(pivot_) => 
    var float pastLevel = na
    
    if not na(pivot_)
        pastLevel := pivot_
    
    pastLevel
    
lastLow := f_updateLevels(lowPivot)
lastHigh := f_updateLevels(highPivot)

// Validates the time interval

validTrade =  true

// Orders

if high > lastHigh
    strategy.entry("Long", strategy.long, when=orderDirection != SHORT and validTrade)
    strategy.close("Short", when=orderDirection == SHORT)
if low < lastLow
    strategy.entry("Short", strategy.short, when=orderDirection != LONG and validTrade)
    strategy.close("Long", when=orderDirection == LONG)
    
// Plots

plot(lastLow, "Last pivot low", color.red, offset=1)
plot(lastHigh, "Last pivot high", color.teal, offset=1)

plotshape(lowPivot, "Pivot low", location=location.belowbar, color=color.red, offset=-rightLow)
plotshape(highPivot, "Pivot high", color=color.teal, offset=-rightHigh)


Más.