Estrategia de media móvil doble 360°

El autor:¿ Qué pasa?, Fecha: 2024-02-02 14:29:59
Las etiquetas:

img

Resumen general

La estrategia de media móvil doble 360° es una estrategia de negociación cuantitativa que incorpora medias móviles dobles y determinación de la fuerza de la tendencia.

Estrategia lógica

La lógica central de la estrategia de media móvil doble 360 ° es:

  1. Calcular las medias móviles de 1 minuto y filtradas por Kalman;
  2. Calcular el ángulo de tangente basado en la diferencia de precios entre las dos medias móviles;
  3. Acumular ángulos tangentes para determinar las señales de fuerza de tendencia;
  4. Emitir señales de negociación basadas en si los ángulos tangentes acumulados exceden los umbrales preestablecidos.

Específicamente, la estrategia define el promedio móvil en bruto de 1 minuto y el promedio móvil filtrado por Kalman. El filtro Kalman elimina algo de ruido del promedio móvil para hacerlo más suave. El ángulo tangente entre los dos promedios móviles refleja los cambios de tendencia de precios. Por ejemplo, cuando el ángulo tangente es positivo, indica una tendencia al alza; por el contrario, un ángulo negativo representa una tendencia a la baja.

La estrategia elige 30 minutos como el período de cálculo para sumar todos los ángulos tangentes positivos y negativos dentro de ese período. Cuando la suma excede los 360 grados, indica una tendencia extremadamente fuerte y emite una señal larga; por el contrario, cuando la suma está por debajo de -360 grados, indica una inversión de tendencia y emite una señal corta.

Análisis de ventajas

Las principales ventajas de la estrategia de media móvil doble 360° son:

  1. Las medias móviles filtran el ruido del mercado a corto plazo para tomar decisiones comerciales más fiables;
  2. Los ángulos tangentes cuantifican la fuerza de la tendencia, evitando la subjetividad de juzgar solo por los patrones de media móvil;
  3. La suma de múltiples ángulos tangentes tiene mejores efectos de reducción del ruido, lo que resulta en señales comerciales más confiables;
  4. En comparación con las estrategias de media móvil única, las dos medias móviles combinadas con las determinaciones de la fuerza de la tendencia hacen que la estrategia sea más completa y robusta.

Análisis de riesgos

La estrategia de media móvil doble 360° también conlleva algunos riesgos:

  1. Las medias móviles se retrasan en los cambios de precios y pueden perder puntos de inflexión de tendencia a corto plazo;
  2. La dependencia únicamente de la señal de fuerza de tendencia acumulada puede verse afectada por la volatilidad del mercado;
  3. Los parámetros que se establezcan incorrectamente (como las longitudes de los períodos de cálculo) pueden dar lugar a operaciones perdidas o a la generación de señales incorrectas.

Para mitigar los riesgos anteriores, se pueden adoptar medidas como acortar el período de media móvil, optimizar las combinaciones de parámetros, agregar mecanismos de stop-loss.

Direcciones de optimización

La estrategia de media móvil doble 360° se puede optimizar aún más mediante:

  1. Incorporar medias móviles adaptativas que ajusten los parámetros basados en la volatilidad del mercado;
  2. Referencia de varios períodos de media móvil para formar combinaciones de parámetros optimizadas;
  3. Añadir módulos dinámicos de determinación de tendencias basados en la volatilidad, los volúmenes de negociación, etc.;
  4. Ayudar a ajustar parámetros o tomar decisiones comerciales con modelos de aprendizaje automático.

Resumen de las actividades

La estrategia de media móvil doble 360° utiliza el filtrado de media móvil y los juicios de tendencia del ángulo tangente cuantitativo para lograr una estrategia comercial cuantitativa relativamente robusta.


/*backtest
start: 2024-01-25 00:00:00
end: 2024-01-30 08:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@library=math
strategy("策略360°(测试)", overlay=true)

// 定义1分钟均线
ma1 = request.security(syminfo.tickerid, "1", ta.sma(close, 1)) // 在这里使用了 math.sma() 函数
//plot(ma1, color=color.yellow, title="原始均线")

// 定义卡尔曼滤波函数,参考了[1](https://www.tradingview.com/pine-script-docs/en/v5/language/Methods.html)和[2](https://www.tradingview.com/pine-script-docs/en/v5/language/Operators.html)的代码
kalman(x, g) => 
    kf = 0.0 
    dk = x - nz(kf[1], x) // 在这里使用了 nz() 函数
    smooth = nz(kf[1], x) + dk * math.sqrt(g * 2) // 在这里使用了 math.sqrt() 函数
    velo = 0.0 
    velo := nz(velo[1], 0) + g * dk // 在这里使用了 nz() 函数
    kf := smooth + velo 
    kf 

// 定义卡尔曼滤波后的均线
ma2 = kalman(ma1, 0.01) 
plot(ma2, color=color.blue, title="卡尔曼滤波后的均线")

// 定义切线角
angle = math.todegrees(math.atan(ma2 - ma2[1])) // 在这里使用了 math.degrees() 和 math.atan() 函数

// 定义累加的切线角
cum_angle = 0.0
cum_angle := nz(cum_angle[1], 0) + angle // 在这里使用了 nz() 函数

// 定义30分钟周期
period = 30 // 您可以根据您的需要修改这个参数

// 定义周期内的切线角总和
sum_angle = 0.0
sum_angle := math.sum(angle, period) // 在这里使用了 math.sum() 函数,把周期内的切线角总和改成简单地把 5 个切线角相加

// 定义买入和卖出条件
buy = sum_angle > 360// 在这里使用了 math.radians() 函数
sell = sum_angle < -360

// 执行买入和卖出操作
strategy.entry("Long", strategy.long, when=buy)
strategy.close("Short", when=buy)
strategy.entry("Short", strategy.short, when=sell)
strategy.close("Long", when=sell)

// 绘制曲线图
plot(sum_angle, color=color.green, title="周期内的切线角总和")
plot(angle, color=color.red, title="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角


Más.