Indicador de volatilidad dinámica (VIDYA) combinado con estrategia de reversión de seguimiento de tendencia ATR

ATR CMO SMA MA
Fecha de creación: 2024-12-13 10:21:14 Última modificación: 2024-12-13 10:21:14
Copiar: 0 Número de Visitas: 474
1
Seguir
1617
Seguidores

Indicador de volatilidad dinámica (VIDYA) combinado con estrategia de reversión de seguimiento de tendencia ATR

Descripción general

La estrategia es un sistema de comercio de seguimiento de tendencias basado en el indicador de volatilidad dinámica (VIDYA), combinado con las fluctuaciones del ATR para mejorar la capacidad de identificación de tendencias y gestión de riesgos. La estrategia puede capturar señales de reversión del mercado a tiempo, al tiempo que mantiene la capacidad de seguimiento de tendencias, al ajustar dinámicamente la velocidad de respuesta a las fluctuaciones del mercado.

Principio de estrategia

El núcleo de la estrategia consiste en utilizar las características dinámicas de los indicadores de VIDA para identificar tendencias. VIDA ajusta dinámicamente el peso de las medias móviles mediante el cálculo de los cambios de la dinámica, con lo que tiene una sensibilidad diferente en diferentes entornos de mercado. En concreto:

  1. Utiliza el oscilador de movimiento de Cande (CMO) para calcular el movimiento de los precios
  2. Factor de adaptación alfa basado en la potencia
  3. Construcción de bandas de oscilación dinámica en combinación con ATR
  4. La ruptura de la vía ascendente genera señales de pluralidad, la ruptura de la vía descendente genera señales de vacío
  5. Utiliza la lógica de inversión de posición, es decir, la nueva señal elimina la posición anterior y abre una nueva posición al mismo tiempo

Ventajas estratégicas

  1. Adaptabilidad dinámica: el indicador VIDYA puede ajustar automáticamente los parámetros en función de las fluctuaciones del mercado, evitando el problema del retraso de las medias móviles tradicionales
  2. Control de riesgo perfeccionado: Stop loss ajustado a través de la fluctuación dinámica de ATR, capaz de adaptarse a diferentes entornos de mercado
  3. Claridad de la señal: La lógica de la inversión de tendencias hace que las señales de negociación sean claras y fáciles de ejecutar
  4. Buena visualización: muestra el estado del mercado de forma intuitiva, con tendencias de subida y bajada diferenciadas por colores
  5. Parámetros ajustables: los parámetros clave se pueden optimizar según las diferentes características del mercado

Riesgo estratégico

  1. Riesgo de mercado en movimiento: los mercados en movimiento horizontal son propensos a generar falsas señales, lo que lleva a operaciones frecuentes
  2. Efectos del punto de deslizamiento: debido a la adopción de una estrategia de inversión, cada señal involucra operaciones bidireccionales y es susceptible a los efectos del punto de deslizamiento
  3. Riesgo de gestión de fondos: la gestión de posiciones de proporción fija puede generar grandes pérdidas en situaciones de gran volatilidad
  4. Sensibilidad de parámetros: los parámetros de VIDYA y ATR tienen un mayor impacto en el rendimiento de la estrategia
  5. Dependencia del entorno del mercado: mejor desempeño en mercados con una tendencia evidente, pero puede ser peor en otros entornos del mercado

Dirección de optimización de la estrategia

  1. Añadir filtros de tendencia: se pueden añadir juicios de tendencia de largo plazo para filtrar señales de mercado de volatilidad
  2. Optimización de la gestión de posiciones: considerar la introducción de la gestión de posiciones dinámica, que ajuste la proporción de las posiciones en función de las fluctuaciones del mercado
  3. Modificación de la lógica de entrada: se puede agregar la confirmación de otros indicadores técnicos para mejorar la fiabilidad de la señal
  4. Mecanismo de detención de pérdidas: Considere la adición de detención móvil o detención dinámica basada en la volatilidad
  5. Aumento del filtro de tiempo: los parámetros de la estrategia se pueden ajustar según las características del mercado en diferentes períodos de tiempo

Resumir

La estrategia permite el seguimiento dinámico de las tendencias del mercado y el control de los riesgos mediante la combinación de VIDA y ATR. Su principal ventaja es la capacidad de adaptarse a las fluctuaciones del mercado y capturar oportunamente las oportunidades de reversión, al tiempo que se mantiene la capacidad de seguir la tendencia. Si bien es posible que se enfrente a riesgos en ciertos entornos de mercado, la estrategia sigue teniendo un buen valor práctico mediante la optimización de parámetros y medidas de gestión de riesgos razonables.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("VIDYA Auto-Trading(Reversal Logic)", overlay=true)

// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
int   vidya_length   = input.int(10, "VIDYA Length")       
int   vidya_momentum = input.int(20, "VIDYA Momentum")    
float band_distance  = input.float(2, "Distance factor for upper/lower bands", step = 0.1)  
float source         = input.source(close, "Source")    
color up_trend_color   = input(#17dfad, "+")  
color down_trend_color = input(#dd326b, "-")  
bool  shadow           = input.bool(true, "Shadow") 

// Define VIDYA (Variable Index Dynamic Average) function
vidya_calc(src, vidya_length, vidya_momentum) =>
    float momentum         = ta.change(src)
    float sum_pos_momentum = math.sum((momentum >= 0) ? momentum : 0.0, vidya_momentum)
    float sum_neg_momentum = math.sum((momentum >= 0) ? 0.0 : -momentum, vidya_momentum)
    float abs_cmo          = math.abs(100 * (sum_pos_momentum - sum_neg_momentum) / (sum_pos_momentum + sum_neg_momentum))
    float alpha            = 2 / (vidya_length + 1)
    var float vidya_value  = 0.0
    vidya_value           := alpha * abs_cmo / 100 * src + (1 - alpha * abs_cmo / 100) * nz(vidya_value[1])

    ta.sma(vidya_value, 15)

// Calculate VIDYA
float vidya_value = vidya_calc(source, vidya_length, vidya_momentum)

// Calculate upper and lower bands
float atr_value = ta.atr(200)
float upper_band = vidya_value + atr_value * band_distance
float lower_band = vidya_value - atr_value * band_distance

// Detect trend direction
bool is_trend_up = na
if ta.crossover(source, upper_band)
    is_trend_up := true
if ta.crossunder(source, lower_band)
    is_trend_up := false

// Smooth the trend line
float smoothed_value = na
if is_trend_up
    smoothed_value := lower_band
if not is_trend_up
    smoothed_value := upper_band

// Detect trend change
bool trend_cross_up = ta.crossover(source, upper_band)
bool trend_cross_down = ta.crossunder(source, lower_band)

// ENTRY & EXIT ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
// Long logic: Enter long when down arrow appears and exit when up arrow appears
if trend_cross_up
    strategy.close("Sell")  // Close short position if any
    strategy.entry("Buy", strategy.long)

if trend_cross_down
    strategy.close("Buy")  // Close long position if any
    strategy.entry("Sell", strategy.short)