En la carga de los recursos... Cargando...

Indice de volatilidad dinámica (VIDYA) con estrategia de reversión de tendencia ATR

El autor:¿ Qué pasa?, Fecha: 2024-12-13 10:21:14
Las etiquetas:El ATROCMLa SMA- ¿Qué es?

 Dynamic Volatility Index (VIDYA) with ATR Trend-Following Reversal Strategy

Resumen general

Esta estrategia es un sistema de trading basado en el índice dinámico promedio (VIDYA), combinado con bandas ATR para mejorar las capacidades de identificación de tendencias y gestión de riesgos.

Principios de estrategia

El principio básico consiste en utilizar las características dinámicas de VIDYA para la identificación de tendencias. VIDYA ajusta los pesos de la media móvil a través de cálculos de momento, proporcionando diferentes sensibilidades en diversas condiciones de mercado: 1. Utiliza el oscilador de momento de Chande (CMO) para el cálculo del impulso del precio Calcula el factor alfa adaptativo basado en el impulso 3. Construye bandas de volatilidad dinámica utilizando ATR 4. Genera señales largas en la banda superior y señales cortas en la banda inferior 5. Utiliza la lógica de inversión de posición - nuevas señales cierran posiciones existentes y abren nuevas

Ventajas estratégicas

  1. Fuerza de adaptación dinámica: VIDYA ajusta automáticamente los parámetros en función de la volatilidad del mercado
  2. Control integral del riesgo: utiliza bandas dinámicas ATR para la adaptación de la pérdida de parada
  3. Signales claros: emplea una lógica de inversión de tendencia con señales comerciales distintas
  4. Excelente visualización: distingue las tendencias ascendentes y descendentes a través de la codificación de colores
  5. Parámetros flexibles: los parámetros clave pueden optimizarse para diferentes características del mercado

Riesgos estratégicos

  1. El riesgo de mercado irregular: propenso a señales falsas en mercados variables.
  2. Impacto del deslizamiento: las operaciones bidireccionales en cada señal aumentan la exposición al deslizamiento.
  3. Riesgo de gestión de fondos: el tamaño de las posiciones fijas puede provocar pérdidas significativas en mercados volátiles
  4. Sensibilidad de parámetros: el rendimiento de la estrategia depende en gran medida de los parámetros VIDYA y ATR
  5. Dependencia del entorno del mercado: se desempeña bien en los mercados de tendencia, pero puede tener dificultades en otros

Direcciones de optimización

  1. Añadir filtros de tendencia: Implementar una evaluación de tendencias a largo plazo para filtrar las señales en mercados variados
  2. Mejorar la gestión de las posiciones: introducir un dimensionamiento dinámico de las posiciones basado en la volatilidad del mercado
  3. Mejorar la lógica de entrada: agregar confirmación de indicadores técnicos para mejorar la fiabilidad de la señal
  4. Mecanismo de detención de pérdidas refinado: considerar las detenciones de seguimiento o las detenciones dinámicas basadas en la volatilidad
  5. Incluir filtros de tiempo: ajustar los parámetros de la estrategia basados en diferentes características del período de tiempo

Resumen de las actividades

Esta estrategia logra un seguimiento dinámico de tendencias y control de riesgos mediante la combinación de VIDYA y ATR. Su principal fortaleza radica en adaptarse a la volatilidad del mercado mientras mantiene las capacidades de seguimiento de tendencias y captura oportunidades de reversión. Aunque puede enfrentar riesgos en ciertas condiciones del mercado, la estrategia mantiene un valor práctico a través de la optimización adecuada de parámetros y medidas de gestión de riesgos. Los inversores deben centrarse en el control de riesgos, la configuración apropiada de parámetros y los ajustes oportunos de la estrategia basados en las condiciones del mercado en el comercio en vivo.


/*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)

Relacionados

Más.