Estrategia de supertendencia de pivote a través de múltiples marcos de tiempo

El autor:¿ Qué pasa?, Fecha: 2024-01-31 17:29:37
Las etiquetas:

img

Resumen general

Esta estrategia combina el indicador de Pivot Points y las Bandas de Rango Verdadero Promedio para implementar un sistema de seguimiento de tendencias a través de múltiples marcos de tiempo.

Estrategia lógica

Esta estrategia se basa principalmente en dos indicadores:

  1. Puntos de pivote: Calcula el promedio de los precios más altos, más bajos y de cierre durante un cierto período para determinar los puntos de pivote superiores e inferiores.

  2. Bandas de rango verdadero promedio: Calcula el rango verdadero promedio durante un cierto período, y mueve la banda media hacia arriba y hacia abajo para formar un canal.

La lógica de negociación específica es:

Cuando el precio atraviesa el canal del rango verdadero promedio, tome posiciones largas o cortas a lo largo de la dirección de la ruptura. Cuando el precio regrese al canal, cierre posiciones. También, cuando el precio atraviese el punto de pivote superior, tome posición larga; cuando el precio atraviese el punto de pivote inferior, tome posición corta.

La estrategia también introduce el concepto de línea media de pivote.Cuando el beneficio obtenido rompe la línea media, es posible cerrar la mitad de la posición para obtener algún beneficio y controlar el riesgo.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. Diseño de marcos de tiempo múltiples: los ciclos largos e intermedios determinan las tendencias principales, mientras que los ciclos cortos determinan entradas específicas.

  2. La línea media de pivote proporciona una opción para cerrar la mitad de la posición, bloqueando un poco de ganancia al tiempo que garantiza operaciones ganadoras.

  3. Las bandas de rango verdadero promedio proporcionan niveles de stop loss claros.

  4. La estrategia tiene pocos parámetros, fácil de optimizar para las mejores combinaciones de parámetros.

  5. Evita al máximo el riesgo de fallas.

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. Los riesgos de stop loss son mayores durante la alta volatilidad del mercado.

  2. La línea media puede desencadenar con frecuencia el stop loss durante las consolidaciones de mercado.

  3. Las selecciones incorrectas de parámetros pueden dar lugar a operaciones demasiado pocas o demasiado frecuentes.

  4. Las rupturas recientes del punto de pivote pueden ser falsas.

Direcciones de optimización

La estrategia se puede optimizar a partir de los siguientes aspectos:

  1. Combine más filtros como volumen y bandas de Bollinger para evitar señales falsas.

  2. Optimizar los períodos de Pivot Points y ATR para encontrar las mejores combinaciones de parámetros.

  3. Establezca una zona tampón alrededor de la línea media para evitar disparos frecuentes.

  4. Añadir filtros de tendencia adecuados para garantizar el funcionamiento a lo largo de las tendencias principales.

Conclusión

En general, esta es una estrategia de seguimiento de tendencias muy práctica. Soluciona las dificultades comunes de stop loss de los sistemas de tendencias y logra una negociación de tendencias controlada por el riesgo. Es una estrategia altamente recomendable. Con las optimizaciones y mejoras adecuadas, su rendimiento puede mejorarse aún más.


/*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"}]
*/

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

//@version=4
strategy("Pivot Point SuperTrend [Backtest]", overlay = true)
prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 10, title = "ATR Period", minval=1)
usecenter = input(defval = false, title="Use Center Line to Close Entry for 50%")
showpivot = input(defval = false, title="Show Pivot Points")
showcl = input(defval = false, title="Show PP Center Line")


float ph = na
float pl = na
ph := pivothigh(prd, prd)
pl := pivotlow(prd, prd)

plotshape(ph and showpivot, text="H",  style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L",  style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)

float center = na
center := center[1]
float lastpp = ph ? ph : pl ? pl : na
if lastpp
    if na(center)
        center := lastpp
    else
        center := (center * 2 + lastpp) / 3

Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))

float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")

plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na, transp = 0)

bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1

if bsignal
    strategy.entry("Buy", true, 2, comment = "Buy")
if ssignal
    strategy.entry("Sell", false, 2, comment = "Sell")

if strategy.position_size == 2 and center > hl2 and usecenter
    strategy.close("Buy", qty_percent = 50, comment = "close buy entry for 50%")
if strategy.position_size == -2 and center < hl2 and usecenter
    strategy.close("Sell", qty_percent = 50, comment = "close sell entry for 50%")
    
if change(Trend)
    strategy.close_all()

Más.