Estrategia de seguimiento de la volatilidad para detener pérdidas

El autor:¿ Qué pasa?, Fecha: 2023-09-20 11:31:12
Las etiquetas:

Resumen general

Esta estrategia calcula el promedio móvil del rango verdadero para reflejar la volatilidad del mercado. Determina la dirección de la tendencia basada en la relación entre la volatilidad y su promedio móvil.

Estrategia lógica

La función ATR se utiliza para calcular el rango real durante un período especificado. El promedio móvil simple de ATR se calcula entonces como la línea de promedio móvil de volatilidad. Cuando ATR cruza por encima de su promedio móvil, la volatilidad del mercado se considera que aumenta y se adopta una estrategia corta. Cuando ATR cruza por debajo de su promedio móvil, la volatilidad del mercado se considera que disminuye y se adopta una estrategia larga.

Cuando se encuentra en una posición, se establece un porcentaje fijo de stop loss para ajustar el stop loss dinámicamente en función de los cambios de precio, con el fin de proteger las ganancias y evitar que se detenga prematuramente.

Análisis de ventajas

Esta estrategia juzga las tendencias del mercado a través del indicador de volatilidad, evitando interferencias de ruido. Se corta cuando la volatilidad aumenta y se hace larga cuando la volatilidad cae, realizando operaciones cubiertas.

Análisis de riesgos

La estrategia se basa únicamente en un indicador de volatilidad, con un cierto retraso. El stop loss posterior solo considera los movimientos adversos de los precios, incapaz de evitar los retrocesos de ganancias. Si los precios fluctúan violentamente, el stop loss puede ser golpeado, incurriendo en grandes pérdidas.

La regulación de parámetros en ATR y períodos de promedio móvil podría ayudar, al igual que la incorporación de otros indicadores para juicios integrales.

Direcciones de optimización

  1. Prueba diferentes combinaciones de parámetros de ATR y medias móviles para encontrar parámetros óptimos.

  2. Incorporar otros indicadores para el juicio para formar un conjunto de estrategias, mejorando la precisión.

  3. Adoptar estrategias dinámicas de stop loss, ajustando el porcentaje de stop loss en función de la volatilidad del mercado.

  4. Optimizar los modelos de dimensionamiento de posición para diferentes productos.

  5. Aplicar el aprendizaje automático para ayudar a identificar los puntos de inflexión de la volatilidad.

  6. Combinar con promedios móviles de mayor plazo para determinar una mayor dirección de la tendencia.

Resumen de las actividades

La estrategia juzga las tendencias del mercado de manera simple y directa a través de la volatilidad, pero un solo indicador tiene limitaciones.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/08/2018
// The Volatility function measures the market volatility by plotting a 
// smoothed average of the True Range. It returns an average of the TrueRange 
// over a specific number of bars, giving higher weight to the TrueRange of 
// the most recent bar.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Volatility Backtest", shorttitle="Volatility")
Length = input(10, minval=1)
LengthMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
xATR = atr(Length)
nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length
xMARes = sma(nRes, LengthMA)
pos = iff(nRes < xMARes, 1,
       iff(nRes > xMARes, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="Volatility")
plot(xMARes, color=red, title="MA")

Más.