Bandas VWAP adaptativas basadas en la estrategia de seguimiento dinámico de volatilidad de Garman-Klass

VWAP GKV STD MA VWMA
Fecha de creación: 2024-12-20 14:51:00 Última modificación: 2024-12-20 14:51:00
Copiar: 0 Número de Visitas: 449
1
Seguir
1617
Seguidores

Bandas VWAP adaptativas basadas en la estrategia de seguimiento dinámico de volatilidad de Garman-Klass

Descripción general

Se trata de una estrategia de negociación adaptativa basada en el precio promedio ponderado por volumen de transacción (VWAP) y la volatilidad de Garman-Klass (GKV). La estrategia ajusta dinámicamente el rango de diferencia estándar del VWAP para permitir un seguimiento inteligente de las tendencias del mercado. Cuando el precio se abre más posiciones cuando se rompe la trayectoria, y más posiciones cuando se rompe la trayectoria, la mayor volatilidad aumenta el umbral de ruptura y la menor volatilidad disminuye el umbral de ruptura.

Principio de estrategia

El núcleo de la estrategia es combinar la volatilidad VWAP con la GKV. Primero se calcula el VWAP como el centro del precio, y luego se construye un segmento utilizando la diferencia estándar del precio de cierre. La clave está en usar la fórmula GKV para calcular la volatilidad, que considera los cuatro precios de apertura y cierre, con mayor precisión que la volatilidad tradicional.

Ventajas estratégicas

  1. La combinación de las relaciones cuantitativas y las características de fluctuación hace que la señal sea más confiable.
  2. La amplitud de la banda se ajusta por sí misma para reducir la interferencia de ruido
  3. Utilizando la tasa de fluctuación GKV, capta con mayor precisión la microestructura del mercado
  4. La lógica de cálculo es simple, clara, fácil de implementar y mantener
  5. Adaptación a diferentes entornos de mercado, con una gran versatilidad

Riesgo estratégico

  1. El comercio en mercados convulsionados puede ser frecuente, aumentando los costos
  2. Son más sensibles a la duración y a los ciclos de fluctuación de la VWAP
  3. Puede ser más lento en reaccionar a una rápida reversión de la tendencia.
  4. Necesidad de datos en tiempo real, mayor exigencia de calidad de los datos Sugerencias para el control de riesgos:
  • Establecer un límite de pérdidas razonable
  • Parámetros de optimización para adaptarse a diferentes mercados
  • Añadir indicadores de confirmación de tendencias
  • Control de la cantidad de dinero

Dirección de optimización de la estrategia

  1. Introducción de análisis multi-ciclo para mejorar la fiabilidad de la señal
  2. Aumentar la dimensión de análisis de la transacción para confirmar la efectividad de la ruptura
  3. Optimización de la metodología de cálculo de la volatilidad, como la consideración de la introducción de EWMA
  4. Se agregó un filtro de fuerza de tendencia
  5. Considerar la inclusión de un mecanismo dinámico de pérdidas Estas optimizaciones pueden mejorar la estabilidad de la estrategia y la calidad de los ingresos.

Resumir

La estrategia permite el seguimiento dinámico del mercado mediante la combinación de VWAP con la innovación de la tasa de volatilidad de GKV. Su característica de adaptabilidad le permite mantener un rendimiento estable en diferentes entornos de mercado. Aunque existen algunos riesgos potenciales, la estrategia tiene buenas perspectivas de aplicación con un control razonable del riesgo y una optimización continua.

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

//@version=5
strategy("Adaptive VWAP Bands with Garman Klass Volatility", overlay=true)

// Inputs
length = input.int(25, title="Volatility Length")
vwapLength = input.int(14, title="VWAP Length")
vol_multiplier = input.float(1,title="Volatility Multiplier")

// Function to calculate Garman-Klass Volatility
var float sum_gkv = na
if na(sum_gkv)
    sum_gkv := 0.0

sum_gkv := 0.0
for i = 0 to length - 1
    sum_gkv := sum_gkv + 0.5 * math.pow(math.log(high[i]/low[i]), 2) - (2*math.log(2)-1) * math.pow(math.log(close[i]/open[i]), 2)

gcv = math.sqrt(sum_gkv / length)

// VWAP calculation
vwap = ta.vwma(close, vwapLength)

// Standard deviation for VWAP bands
vwapStdDev = ta.stdev(close, vwapLength)

// Adaptive multiplier based on GCV
multiplier = (gcv / ta.sma(gcv, length)) * vol_multiplier

// Upper and lower bands
upperBand = vwap + (vwapStdDev * multiplier)
lowerBand = vwap - (vwapStdDev * multiplier)

// Plotting VWAP and bands
plot(vwap, title="VWAP", color=color.blue, linewidth=2)
plot(upperBand, title="Upper Band", color=color.green, linewidth=1)
plot(lowerBand, title="Lower Band", color=color.red, linewidth=1)

var barColor = color.black

// Strategy: Enter long above upper band, go to cash below lower band
if (close > upperBand)
    barColor := color.green
    strategy.entry("Long", strategy.long)
else if (close < lowerBand)
    barColor := color.fuchsia
    strategy.close("Long")

barcolor(barColor)