La estrategia de pronóstico de ondas de Gauss

El autor:¿ Qué pasa?, Fecha: 2024-01-22 12:37:07
Las etiquetas:

img

Resumen general

La Estrategia de Pronóstico de Ondas de Gauss es una estrategia de negociación cuantitativa basada en el filtrado gaussiano. Utiliza la característica de suavizado de los filtros gaussianos para filtrar la serie de precios varias veces y producir múltiples series de precios suavizadas. Luego, combinado con el ajuste polinomial de estas series de precios, realiza la predicción de precios futuros. De acuerdo con los resultados de la predicción, da sugerencias sobre posiciones largas o cortas.

Principio de la estrategia

El núcleo de esta estrategia es el algoritmo del filtro de Gauss. El filtro de Gauss es un filtro de suavizado lineal que utiliza la función de Gauss como pesos. El parámetro p en la estrategia se establece como el tamaño de la ventana de filtrado. Luego, el coeficiente de filtrado alfa se calcula a través de funciones trigonométricas.

La estrategia emplea la idea de recursión. Primero, con alfa y el precio de la serie de precios original, se calcula el primer ret de filtrado. Luego, basado en ret, se realiza el segundo filtrado para obtener ret2. Repita esto varias veces. Finalmente, combinando varias series de precios, se ajusta una curva para predecir los precios futuros ret4. Si el precio predicho es mayor que el precio real actual, vaya largo. Si es menor que el precio actual, vaya corto.

Al filtrar varias veces, puede ser más suave y adaptarse mejor a la tendencia. Al mismo tiempo, combinado con el ajuste polinómico, realiza la predicción de las tendencias de precios a corto plazo.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. Utilice el filtro de Gauss para suavizar los precios. Puede filtrar eficazmente el ruido de alta frecuencia y hacer que la estrategia sea más estable.

  2. El filtro múltiple recursivo puede adaptarse mejor a la tendencia del precio y mejorar el efecto de predicción.

  3. Predicción de precios basada en el ajuste polinomial. Puede modelar tendencias de precios a corto plazo y, por lo tanto, generar señales comerciales.

  4. Las señales comerciales se combinan directamente con las predicciones de tendencia para evitar oportunidades comerciales perdidas.

  5. Simple de implementar, fácil de entender y optimizar. Puede servir como un módulo básico para estrategias de alta frecuencia para ampliar otros indicadores analíticos.

Análisis de riesgos

La estrategia también presenta los siguientes riesgos:

  1. El efecto suavizador del filtro de Gauss en cambios repentinos de precios puede perder oportunidades comerciales a corto plazo.

  2. El ajuste polinomial tiene riesgos de sobreajuste. Si el modelo de cambio de precio muta repentinamente, el efecto de predicción disminuirá.

  3. El tamaño de la ventana del filtro y el orden de ajuste del polinomio deben ser establecidos con precisión.

  4. Se basa únicamente en el precio de apertura para las señales de negociación y no puede operar durante el día.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Añadir mecanismos de formación de modelos y de reentrenamiento de ventanas corredizas para el ajuste dinámico de los parámetros para reducir los riesgos de sobreajuste.

  2. Incorporar más indicadores y características de precios para enriquecer la entrada y hacer las predicciones más estables.

  3. Agregue mecanismos de stop loss, estableciendo una tasa de pérdida máxima para evitar grandes pérdidas en condiciones extremas de mercado.

  4. Optimizar la gestión de posiciones, ajustar dinámicamente las posiciones en función de la precisión de la predicción y la volatilidad.

  5. Pruebe la predicción basada en modelos de aprendizaje automático convencionales como LSTM y mejore aún más la capacidad predictiva.

Conclusión

En resumen, esta es una estrategia cuantitativa de alta frecuencia que realiza la predicción de precios utilizando filtro gaussiano y ajuste polinomial. Tiene ciertas ventajas, pero también margen de mejora. Al incorporar más características, introducir ajuste de parámetros dinámicos, mecanismos de stop loss, etc., el efecto de la estrategia podría ser mucho mejor. Esta estrategia sienta las bases como un módulo básico para una mayor investigación y optimización de las estrategias de alta frecuencia.


/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Gaussbot v1.0", overlay=true)

p = input(20, minval=1, title="Length")
price = input(open, title="Source")

pi=3.1415926535


w=2*pi/p
beta = (1 - cos(w))/(pow(1.414,2.0/3) - 1)
alfa = -beta + sqrt(beta*beta + 2*beta)
ret=  pow(alfa,4)*price+4*(1-alfa)*nz(ret[1])-6*pow(1-alfa,2)*nz(ret[2])+4*pow(1-alfa,3)*nz(ret[3])-pow(1-alfa,4)*nz(ret[4])
ret2 = pow(alfa,4)*ret+4*(1-alfa)*nz(ret2[1])-6*pow(1-alfa,2)*nz(ret2[2])+4*pow(1-alfa,3)*nz(ret2[3])-pow(1-alfa,4)*nz(ret2[4])
ret3 = pow(alfa,4)*ret2+4*(1-alfa)*nz(ret3[1])-6*pow(1-alfa,2)*nz(ret3[2])+4*pow(1-alfa,3)*nz(ret3[3])-pow(1-alfa,4)*nz(ret3[4])
ret4 = 3*ret-3*ret2+ret3


diff2 = nz(ret[1]) - nz(ret[2]) - (nz(ret[2]) - nz(ret[3]) )  
diff22 = nz(ret2[1]) - nz(ret2[2]) - (nz(ret2[2]) - nz(ret2[3]) ) 
diff23 = nz(ret3[1]) - nz(ret3[2]) - (nz(ret3[2]) - nz(ret3[3]) )  
diff24 = nz(ret4[1]) - nz(ret4[2]) - (nz(ret4[2]) - nz(ret4[3]) )  


longCondition =    price[0] - ret4[1]  > 0
shortCondition =  price[0] - ret4[1] < 0

if(longCondition and shortCondition)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]
if(longCondition==false and shortCondition==false)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]



if (longCondition==true and shortCondition == false) 
    strategy.entry("Gaussbot Long", strategy.long )
if (longCondition==false and shortCondition == true)
    strategy.entry("Gaussbot Short", strategy.short)



Más.