Stratégie de prévision des ondes de Gauss

Auteur:ChaoZhang est là., Date: 2024-01-22 12:37:07 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie de prévision des ondes de Gauss est une stratégie de trading quantitative basée sur le filtrage gaussien. Elle utilise la fonction de lissage des filtres gaussiens pour filtrer les séries de prix plusieurs fois et produire plusieurs séries de prix lissées.

Principe de stratégie

Le noyau de cette stratégie est l'algorithme du filtre gaussien. Le filtre gaussien est un filtre d'assouplissement linéaire qui utilise la fonction gaussienne comme poids. Le paramètre p dans la stratégie est défini comme la taille de la fenêtre de filtrage. Ensuite, le coefficient de filtrage alpha est calculé à travers des fonctions trigonométriques. Chaque série de prix ret\[i\] représente le résultat après le i-ème filtrage gaussien de la série de prix d'origine.

La stratégie utilise l'idée de la récursion. Premièrement, avec alpha et le prix de la série de prix d'origine, le premier ret de filtrage est calculé. Ensuite, sur la base de ret, le deuxième filtrage est effectué pour obtenir ret2. Répétez cela plusieurs fois. Enfin, en combinant plusieurs séries de prix, une courbe est ajustée pour prédire les prix futurs ret4. Si le prix prévu est supérieur au prix réel actuel, allez long. Si inférieur au prix actuel, allez court.

En filtrant plusieurs fois, il peut être plus lisse et mieux s'adapter à la tendance.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. Utilisez le filtre gaussien pour lisser les prix. Il peut filtrer efficacement le bruit à haute fréquence et rendre la stratégie plus stable.

  2. Le filtrage multiple récursif peut mieux s'adapter à la tendance des prix et améliorer l'effet de prédiction.

  3. Prédiction des prix basée sur l'ajustement polynomial. Il peut modéliser les tendances des prix à court terme et ainsi générer des signaux de trading.

  4. Les signaux de trading sont directement combinés avec les prédictions de tendance pour éviter de manquer des opportunités de trading.

  5. Simple à mettre en œuvre, facile à comprendre et à optimiser. Il peut servir de module de base pour les stratégies à haute fréquence pour étendre d'autres indicateurs analytiques.

Analyse des risques

La stratégie comporte également les risques suivants:

  1. L'effet de lissage du filtre de Gauss sur les changements soudains de prix peut manquer les opportunités de négociation à court terme.

  2. L'ajustement polynomial comporte des risques de surajustement. Si le modèle de changement de prix change soudainement, l'effet de prédiction diminuera.

  3. La taille de la fenêtre de filtre et l'ordre d'ajustement du polynôme doivent être définis avec précision.

  4. Il s'appuie uniquement sur le prix d'ouverture pour les signaux de négociation et ne peut pas négocier en journée.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Ajouter des mécanismes de formation des modèles et de recyclage des fenêtres coulissantes pour l'ajustement dynamique des paramètres afin de réduire les risques de surmonture.

  2. Incorporer plus d'indicateurs et de caractéristiques de prix pour enrichir les données et rendre les prévisions plus stables.

  3. Ajoutez des mécanismes de stop loss, en fixant un ratio de perte maximal pour éviter d'énormes pertes dans des conditions de marché extrêmes.

  4. Optimiser la gestion des positions, ajuster dynamiquement les positions en fonction de l'exactitude et de la volatilité des prédictions.

  5. Essayez la prédiction basée sur des modèles d'apprentissage automatique traditionnels comme LSTM et améliorez davantage la capacité prédictive.

Conclusion

En résumé, il s'agit d'une stratégie quantitative à haute fréquence qui effectue une prédiction de prix en utilisant un filtre gaussien et un ajustement polynomial. Elle présente certains avantages mais aussi des possibilités d'amélioration. En incorporant plus de fonctionnalités, en introduisant un réglage dynamique des paramètres, des mécanismes de stop loss, etc., l'effet de la stratégie pourrait être beaucoup meilleur. Cette stratégie jette les bases en tant que module de base pour la recherche et l'optimisation de stratégies à haute fréquence.


/*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)



Plus de