Estrategia del sistema doble armónico

El autor:¿ Qué pasa?, Fecha: 2024-02-22 15:49:06
Las etiquetas:

img

Resumen general

Esta estrategia utiliza múltiples promedios móviles armónicos para construir señales comerciales. Primero calcula los promedios móviles armónicos del 1er al 6o orden, y luego combina estos promedios móviles para construir señales comerciales dobles largo / corto. Se corta cuando la línea de señal a corto plazo cruza por debajo de la línea de señal a largo plazo, y se larga cuando la línea de señal a corto plazo cruza por encima.

Estrategia lógica

La estrategia primero define una función harm_average para calcular la media móvil armónica de n períodos. Luego calcula las medias móviles armónicas del 1er al 6o orden, a saber, T1 a T6. Entre ellos, T1 es la media móvil armónica de 3 períodos, T2 es la media móvil armónica de 3 períodos de T1, y así sucesivamente.

Después de eso, se construye una curva de equilibrio, que sintéticamente considera la inversa de los promedios móviles armónicos cúbicos de T1 a T6.

Por último, de acuerdo con T1 a T6, construye señales cruzadas largas / cortas duales, donde X1 toma el mínimo de T1, T2 y T3, y X2 toma el máximo de T4, T5 y T6.

Análisis de ventajas

  1. El uso de múltiples promedios móviles armónicos puede filtrar eficazmente el ruido del mercado y mejorar la calidad de la señal

  2. La construcción de señales de negociación doble larga / corta puede capturar puntualmente los puntos de inflexión de la tendencia

  3. La curva de equilibrio sintéticamente considera múltiples marcos de tiempo que pueden juzgar con precisión la dirección de la tendencia

  4. La adopción de promedios cúbicos puede resaltar aún más el papel de las variables intermedias y mejorar la estabilidad de la estrategia

Análisis de riesgos

  1. Las medias armónicas tienen un alto retraso, lo que puede hacer que pierdan oportunidades de reversión a corto plazo.

  2. La optimización excesiva con promedios múltiples puede reducir la robustez de la estrategia

  3. Los cálculos de cubo pueden amplificar el ruido intermedio hasta cierto punto, lo que resulta en ciertas señales falsas

  4. Los cruces dobles tienen cierto grado de retraso, incapaces de capturar los puntos de inflexión a tiempo

Direcciones de optimización

  1. Se pueden probar más tipos o órdenes superiores de promedios armónicos

  2. Introducir el ajuste dinámico de los días promedio para optimizar el sistema de medición

  3. Prueba diferentes parámetros de potencia como cuadrados y logs

  4. Incorporar más indicadores auxiliares para verificar la calidad de la señal

Resumen de las actividades

Esta estrategia utiliza un sistema de promedios armónicos múltiples para construir señales comerciales largas / cortas duales. En comparación con los sistemas de promedios únicos, esta estrategia puede identificar mejor las tendencias y filtrar el ruido. Mientras tanto, los cruces duales también pueden capturar puntualmente los puntos de inflexión del mercado.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Harmonic System Strategy", overlay=true)

harm_average(x,y,z) =>3 / (1 / x + 1 / y + 1 / z)
T1 = harm_average(close[1], close[2], close[3])
T2 = harm_average(T1, T1[1], T1[2])
T3 = harm_average(T2, T2[1], T2[2])
T4 = harm_average(T3, T3[1], T3[2])
T5 = harm_average(T4, T4[1], T4[2])
T6 = harm_average(T5, T5[1], T5[2])
Balance = 18 / (1 / T1 * 3 + 1 / T2 * 3 + 1 / T3 * 3 + 1 / T4 * 3 + 1 / T5 * 3 + 1 / T6 * 3)

plot(T1,linewidth=2, color=color.green,title="T1")
plot(T2,linewidth=1, color=color.blue,title="T2")
plot(T3,linewidth=1, color=color.blue,title="T3")
plot(Balance,linewidth=2, color=color.black,title="Balance")
plot(T4,linewidth=1, color=color.blue,title="T4")
plot(T5,linewidth=1, color=color.blue,title="T5")
plot(T6,linewidth=2, color=color.red,title="T6")

X1 = min(min(T1,T2),T3)
X2 = max(max(T4,T5),T6)
X3 = min(T1,T2)
X4 = max(T3,T4)

Buy=crossover(X1,X2)
Sell=crossunder(X3,X4)

if crossover(X1,X2)
    strategy.entry("Long", strategy.long, comment="Long")

if crossunder(X3,X4)
    strategy.entry("Short", strategy.short, comment="Short")


Más.