Estrategia de negociación de ruptura de volatilidad

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

img

Resumen general

La estrategia de negociación de volatilidad es una estrategia basada en la acción del precio. Genera señales de compra y venta mediante el análisis de los cambios de precio y volumen.

Estrategia lógica

Esta estrategia analiza los precios cerrados, abiertos, altos y bajos de los candelabros para determinar las tendencias y el impulso de los precios.

Específicamente, comprueba si los precios de cierre de los 3 candeleros más recientes son continuamente más altos o más bajos que los precios de apertura.

Además, esta estrategia rastrea el volumen máximo durante un cierto período. Si el volumen actual del candelero excede el valor máximo durante el período reciente, sugiere un aumento del volumen de operaciones y fuertes fuerzas que ingresan al mercado.

Cuando el precio se rompe en tres velas consecutivas y el volumen de operaciones se expande, la estrategia producirá señales de compra o venta.

Ventajas

Esta es una estrategia simple pero eficaz que utiliza la acción del precio y las señales de volumen.

  1. Lógica clara, fácil de entender y aplicar
  2. Muy sensibles a los cambios volátiles del mercado, captando los cambios a tiempo
  3. Requiere solo datos básicos de candeleros y volumen, sin algoritmos complejos
  4. Parámetros flexibles y adaptables a diferentes productos y plazos
  5. Bajo coste, adecuado para pequeños inversores

Análisis de riesgos

También existen algunos riesgos potenciales:

  1. No hay previsión de precios, existe cierta ceguera
  2. Es propenso a señales falsas por contacto accidental.
  3. Puede generar señales incorrectas en mercados de rango
  4. No hay mecanismo de stop loss, hay riesgos de aumento de las pérdidas

Para mitigar estos riesgos, se puede considerar la adición de stop loss móviles, la optimización de combinaciones de parámetros o la combinación con otros indicadores o estrategias.

Direcciones de optimización

Como estrategia básica, todavía hay mucho espacio para la optimización:

  1. Añadir mecanismos de stop loss para controlar las pérdidas
  2. Optimizar los parámetros para adaptarse a más productos y períodos
  3. Añadir otros indicadores a las señales de filtro
  4. Combinar con estrategias de seguimiento de tendencias para el ajuste automático de tendencias
  5. Incorporar algoritmos de aprendizaje automático para la optimización de parámetros dinámicos y de señales
  6. Construir módulos de investigación cuantitativa y retroalimentación para una evolución continua

Conclusión

En conclusión, esta es una estrategia basada en la acción de precios muy práctica. Tiene los méritos de ser intuitiva, fácil de entender e implementar a bajos costos. Mientras tanto, también tiene cierta ceguera y necesita más optimizaciones y combinaciones para mejorar el rendimiento. En general, este es un concepto de estrategia valioso digno de una investigación y aplicación en profundidad.


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

//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)

int signal_hh = 0
int signal_ll = 0

if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
    signal_hh := 1

if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
    signal_ll := 1

plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)

int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)

for i = vol_length to 1
    if volume[i] > max_volume
        max_volume := volume[i]

if volume[0] > max_volume
    signal_vol := 1

plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)

int signal_buy = 0
int signal_sell = 0

if signal_hh and signal_vol
    signal_buy := 1
    label.new(bar_index, high, "B", color=color.green)
    strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)

if signal_ll and signal_vol
    signal_sell := 1
    label.new(bar_index, low, "S", color=color.red)
    strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)

//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)

//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)



Más.