La tendencia del oscilador de vórtice siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-12-07 16:48:45
Las etiquetas:

img

Resumen general

La estrategia de seguimiento de tendencias del Oscilador Vortex es una estrategia de seguimiento de tendencias basada en el Indicador Vortex. Utiliza promedios móviles de múltiples marcos de tiempo para construir el Indicador Vortex para identificar tendencias potenciales de precios, y se combina con un promedio móvil de período más corto como un juicio auxiliar para lograr operaciones de seguimiento de tendencias de bajo riesgo.

Principio de la estrategia

El indicador de vórtice consiste en promedios móviles a corto, mediano y largo plazo de múltiples plazos. Específicamente, la estrategia utiliza promedios móviles de 6 días, 27 días, 72 días y 234 días. El promedio móvil a corto plazo refleja la última tendencia de los precios, mientras que el promedio móvil a largo plazo refleja la tendencia a largo plazo. La lógica central del indicador es que cuando el promedio móvil a corto plazo cruza por encima del promedio móvil a largo plazo, indica que el impulso al alza se está fortaleciendo y es hora de comprar. Cuando el promedio móvil a corto plazo cruza por debajo del promedio móvil a largo plazo, indica que el impulso al alza se está debilitando y debemos vender.

La ventaja significativa del indicador del vórtice es que juzga con precisión las tendencias y filtra efectivamente el ruido del mercado. Sin embargo, su reacción no es lo suficientemente sensible como para capturar los puntos de inflexión de manera oportuna. Por lo tanto, la estrategia incorpora un promedio móvil de 6 días más sensible para construir un indicador de juicio auxiliar. Compra cuando tanto el indicador del vórtice como el indicador auxiliar cruzan por encima de la línea cero, y vende cuando ambos indicadores cruzan por debajo de la línea cero. Esto forma una lógica de confirmación múltiple donde el indicador del vórtice determina la dirección y la fuerza de la tendencia, mientras que el indicador auxiliar determina puntos de entrada y salida específicos, lo que filtra señales falsas mientras mejora la sensibilidad de las operaciones.

Análisis de ventajas

La mayor ventaja de esta estrategia es la precisión del juicio y la sensibilidad de las operaciones. La combinación del indicador del vórtice y los indicadores auxiliares logra una unidad orgánica del juicio de tendencia y la determinación de puntos de entrada / salida específicos, evitando la interferencia entre sí. El mecanismo de confirmación múltiple puede filtrar eficazmente el ruido del mercado y evitar operaciones incorrectas. Al mismo tiempo, la adición del indicador auxiliar también garantiza la sensibilidad de las operaciones de la estrategia.

En comparación con las estrategias de un solo indicador, la ventaja de esta estrategia es que combina múltiples indicadores para lograr capacidades más fuertes en la identificación y respuesta a los cambios del mercado.

Análisis de riesgos

Los principales riesgos de esta estrategia provienen de la configuración inadecuada de parámetros de los indicadores y el impacto de eventos extremos. Los parámetros de los promedios móviles necesitan equilibrar la sensibilidad y la resistencia a la interferencia de ruido. La configuración inadecuada de parámetros llevará a un comportamiento anormal de la estrategia. Además, los eventos importantes también podrían causar una volatilidad extrema de los precios que desactiva los indicadores, lo que resulta en operaciones incorrectas.

Para mitigar estos riesgos, los parámetros deben ser optimizados y probados para estabilizar el rendimiento del indicador. También, preste mucha atención a los impactos del mercado de eventos importantes, detenga las estrategias cuando sea necesario para evitar errores durante períodos de volatilidad anormal.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar los parámetros de la media móvil para mejorar la resistencia al ruido y la sensibilidad de funcionamiento del indicador.

  2. Añadir mecanismos de stop loss. Establecer puntos de stop loss cuando los precios rompen los niveles de soporte clave en direcciones desfavorables para evitar nuevas pérdidas.

  3. Incorporar otros juicios de indicadores para aumentar la estabilidad de la estrategia, por ejemplo, tomando señales solo cuando los volúmenes de negociación se amplifican.

  4. Utilice diferentes conjuntos de parámetros basados en diferentes etapas del mercado, por ejemplo, parámetros más agresivos durante los mercados alcistas y ajustes más estables en los mercados bajistas.

Conclusión

La estrategia de seguimiento de tendencias del oscilador de vórtice combina con éxito el juicio y la ejecución de tendencias a través del indicador de vórtice que determina la dirección/fuerza de la tendencia de precios y un promedio móvil a corto plazo sensible que señala el momento específico de entrada/salida. Al optimizar parámetros, agregar pérdidas de parada e introducir mecanismos de estado, la estrategia tiene el potencial de mejorar aún más sus capacidades de resistencia al riesgo y lograr métricas de backtesting y rendimiento en vivo superiores.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//swap strategy line for study line to enable backtesting
strategy(title="Vortex Ocillator" )
//study(title = "Vortex Oscillator", precision = 6)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2048, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//vortex histogram
short_input = input(6, minval = 1)
long_input = input(27, minval = 1)
longer_input = input(72, minval = 1)
longest_input = input(234, minval = 1)

short = sma(close, short_input)
long = sma(close, long_input)
longer = sma(close, longer_input)
longest = sma(close, longest_input)

hist = short - long
longhist = short - longer
longesthist = short - longest

hist_fractal = input(3, minval = 0)
longhist_fractal = input(2, minval = 0)
longesthist_fractal = input(4, minval = 0)

vortexhist = avg((hist / hist_fractal), (longhist / longhist_fractal), (longesthist / longesthist_fractal))

crossover_calc = vortexhist > 0 and vortexhist[1] < 0
crossunder_calc = vortexhist < 0 and vortexhist[1] > 0

crossover2 = crossover(vortexhist, 0)
crossunder2 = crossunder(vortexhist, 0)

hist_color = hist > 0? fuchsia : purple
longhist_color = longhist > 0? olive : orange
longesthist_color = longesthist > 0? teal : blue
vortexhist_color = vortexhist >= 0? green : red

plot(longesthist, "Longest Ocillator", style = histogram, color = longesthist_color, transp = 5)
plot(longhist, "Longer Ocillator", style = histogram, color = longhist_color, transp = 30)
plot(hist, "Short Ocillator", style = histogram, color = hist_color, transp = 30)
plot(vortexhist, "Vortex Ocillator", style = columns, color = vortexhist_color, transp = 40)
plotshape(crossover_calc,title = "Crossover",location = location.bottom, style = shape.triangleup, size = size.small, color = green)
plotshape(crossunder_calc,title = "Crossunder",location = location.bottom, style = shape.triangledown, size = size.small, color = red)

//micro
micro_ema_length = input(6,"Micro EMA Length")
micro = ema(vortexhist, micro_ema_length)
plot(micro, title = "micro", linewidth = 1, color = white)
microup = crossover(vortexhist, micro)
microdown = crossunder(vortexhist, micro)

//new micro signals
xmicroup = microup and vortexhist >=0 or crossover_calc
xmicrodown = microdown and vortexhist >=0 or crossunder_calc
plotshape(xmicroup, title = "Micro up", style = shape.circle, color = olive, location = location.bottom, size = size.tiny)
plotshape(xmicrodown, title = "Micro down", style = shape.circle, color = fuchsia, location = location.bottom, size = size.tiny)

//optional strategy options for backtesting, comment out the alertcondition rows and swap the top study row for the strategy row to compile as strategy
if testPeriod()
    strategy.entry("buy", true, 1, when = xmicroup, limit = low)
if testPeriod()
    strategy.close("buy", when = xmicrodown)

   

//if (xmicroup)
    //strategy.entry("My Long Entry Id", strategy.long)
//if (xmicroup)
    //strategy.exit("My Short Exit Id", "My Short Entry Id")
//if (xmicrodown)
    //strategy.exit("My Long Exit Id", "My Long Entry Id")

  




Más.