Estrategia cuantitativa de gestión de riesgos de cruce de tendencias de ondas múltiples

EMA SMA
Fecha de creación: 2024-12-13 10:51:31 Última modificación: 2024-12-13 10:51:31
Copiar: 0 Número de Visitas: 341
1
Seguir
1617
Seguidores

Estrategia cuantitativa de gestión de riesgos de cruce de tendencias de ondas múltiples

Descripción general

La estrategia es un sistema de comercio cuantitativo basado en el indicador WaveTrend, combinado con un mecanismo de gestión de riesgo dinámico. La estrategia calcula la intensidad de la tendencia de las fluctuaciones de los precios, filtra las señales en las zonas de sobreventa y sobreventa, y aplica medios de control de riesgo como stop loss, stop loss y tracking stop loss para lograr una gestión de operaciones completa.

Principio de estrategia

El núcleo de la estrategia es calcular el indicador de WaveTrend a través del precio HLC3. Primero se calcula el promedio móvil del índice (EMA) del ciclo n1 como línea de referencia, luego se calcula la desviación del precio con respecto a la línea de referencia y se realiza el procesamiento de unificación con 0.015 como coeficiente. Finalmente, se obtienen dos líneas de onda wt1 y wt2, que representan la línea rápida y la línea lenta, respectivamente. La señal de negociación se genera en base a la cruz de estas dos líneas con el nivel de sobreventa y sobreventa, al mismo tiempo que se combina un sistema de control de riesgo en varios niveles.

Ventajas estratégicas

  1. El sistema de señales tiene una buena capacidad de seguimiento de tendencias, lo que mejora la fiabilidad de la señal a través de un nivel de doble sobrecompra sobreventa
  2. Sistema de gestión de riesgos completo, que incluye paradas fijas, paradas fijas y paradas de seguimiento dinámico
  3. Los parámetros son muy ajustables, lo que facilita la optimización en función de las diferentes condiciones del mercado
  4. Combinado con un mecanismo de adaptación de la volatilidad, mejora la adaptabilidad de las estrategias
  5. Reducción efectiva de las señales falsas mediante un sistema de señales diseñado por capas

Riesgo estratégico

  1. Situaciones en las que se pueden producir paros frecuentes en mercados muy volátiles
  2. Los parámetros mal configurados pueden causar costos de transacción excesivos
  3. Se podría generar demasiadas señales falsas en el mercado horizontal
  4. Es necesario establecer un equilibrio razonable entre las tasas de stop loss y stop loss para evitar un desequilibrio entre el riesgo y el beneficio.
  5. El seguimiento de los paros puede conducir a un mayor retiro en una rápida reversión

Dirección de optimización de la estrategia

  1. Introducción de indicadores de volumen de transacción para la confirmación de señales y la mejora de la fiabilidad de las transacciones
  2. Optimizar el seguimiento de los parámetros de stop loss para adaptarlos mejor a diferentes entornos de mercado
  3. Aumentar los filtros de intensidad de tendencia y reducir la frecuencia de las operaciones en el mercado horizontal
  4. Considerar la inclusión de un mecanismo de stop loss dinámico que ajuste automáticamente la posición de stop loss según la volatilidad del mercado
  5. Introducción de filtros de tiempo para evitar la apertura de posiciones en momentos desfavorables

Resumir

La estrategia, combinada con los indicadores de WaveTrend y un sistema de gestión de riesgos mejorado, permite una estrategia de negociación cuantitativa más completa. La ventaja central de la estrategia es su adaptabilidad y control de riesgos, pero aún requiere que el comerciante optimice los parámetros y mejore la estrategia en función de las condiciones reales del mercado.

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

//@version=5
strategy(title="WaveTrend [LazyBear] with Risk Management", shorttitle="WT_LB_RM", overlay=true)

// Input Parameters
n1 = input.int(10, "Channel Length")
n2 = input.int(21, "Average Length")
obLevel1 = input.int(60, "Over Bought Level 1")
obLevel2 = input.int(53, "Over Bought Level 2")
osLevel1 = input.int(-60, "Over Sold Level 1")
osLevel2 = input.int(-53, "Over Sold Level 2")

// Risk Management Inputs
stopLossPercent = input.float(50.0, "Stop Loss (%)", minval=0.1, maxval=100)
takeProfitPercent = input.float(5.0, "Take Profit (%)", minval=0.1, maxval=100)
trailingStopPercent = input.float(3.0, "Trailing Stop (%)", minval=0.1, maxval=100)
trailingStepPercent = input.float(2.0, "Trailing Stop Step (%)", minval=0.1, maxval=100)

// WaveTrend Calculation
ap = hlc3 
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)
 
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Plotting Original Indicators
plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=plot.style_line)
plot(osLevel2, color=color.green, style=plot.style_line)

plot(wt1, color=color.green)
plot(wt2, color=color.red, style=plot.style_line)
plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80)

// Buy and Sell Signals with Risk Management
longCondition = ta.crossover(wt1, osLevel1) or ta.crossover(wt1, osLevel2)
shortCondition = ta.crossunder(wt1, obLevel1) or ta.crossunder(wt1, obLevel2)

// Strategy Entry with Risk Management
if (longCondition)
    entryPrice = close
    stopLossPrice = entryPrice * (1 - stopLossPercent/100)
    takeProfitPrice = entryPrice * (1 + takeProfitPercent/100)
    
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", 
                  stop=stopLossPrice, 
                  limit=takeProfitPrice, 
                  trail_price=close * (1 + trailingStopPercent/100), 
                  trail_offset=close * (trailingStepPercent/100))

if (shortCondition)
    entryPrice = close
    stopLossPrice = entryPrice * (1 + stopLossPercent/100)
    takeProfitPrice = entryPrice * (1 - takeProfitPercent/100)
    
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", 
                  stop=stopLossPrice, 
                  limit=takeProfitPrice, 
                  trail_price=close * (1 - trailingStopPercent/100), 
                  trail_offset=close * (trailingStepPercent/100))