Stratégie de négociation quantitative basée sur l'indice d'analyse des tendances

Auteur:ChaoZhang est là., Date: 2023-12-12 10h40 et 52 min
Les étiquettes:

img

Résumé

L'idée de base de cette stratégie est d'utiliser la pente de la moyenne mobile pour juger de la tendance du marché et de construire un indice d'analyse de tendance (TAI) comme signal de trading. Lorsque le prix est tendance, la pente de la moyenne mobile augmente. Lorsque le prix est dans une zone sans tendance, la pente de la moyenne mobile diminue.

La logique de la stratégie

La stratégie calcule d'abord la moyenne mobile simple (MA X-day) du prix. Puis elle calcule la valeur la plus élevée et la plus basse de cette moyenne mobile dans les derniers jours Y pour obtenir la plage de fluctuation. Enfin, en comparant cette plage Y-day avec le prix, elle convertit à un indicateur normalisé entre 0-1, à savoir l'indice d'analyse de tendance. Prenant une position longue lorsque l'indice est au-dessus d'un seuil et une position courte lorsque le seuil est inférieur à un autre.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Capture efficace des tendances à moyen et à long terme en évaluant la pente de l'AM
  2. Construction d'un indice normalisé pour un signal de trading plus clair
  3. Paramètres de MA et de jugement de tendance personnalisables pour différents environnements de marché
  4. Options de négociation inverse pour le suivi ou la couverture d'autres stratégies

Analyse des risques

Il y a aussi des risques:

  1. Prédisposé à des signaux erronés lors d'un marché à fourchette
  2. Point de renversement de tendance manquant si les paramètres de l'AM sont définis de manière inappropriée
  3. Des tendances faibles manquantes si les paramètres de normalisation sont définis de manière inappropriée
  4. Perte accrue lors d'opérations inversées

Les solutions:

  1. Signaux filtrants avec d'autres indicateurs
  2. Optimiser les paramètres pour trouver la meilleure combinaison
  3. Ajuster le seuil des paramètres de normalisation
  4. Utilisez soigneusement le reverse trading

Directions d'optimisation

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

  1. Combinez d'autres indicateurs comme BOLL pour rendre les signaux plus fiables
  2. Ajouter un stop loss pour contrôler une seule perte
  3. Optimiser les jours de mise en œuvre afin de s'adapter aux caractéristiques dans des délais différents
  4. Paramètres de seuil optimaux du train
  5. Ajouter le modèle ML pour la probabilité de tendance pour faciliter la négociation

Conclusion

En résumé, il s'agit d'une stratégie de suivi de tendance à moyen et à long terme basée sur la pente de la moyenne mobile. Elle peut capturer efficacement les tendances, mais présente également des risques de faux signaux. En combinant avec d'autres indicateurs, en ajoutant un stop loss, une optimisation des paramètres, etc., la stratégie peut être plus robuste.


//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/12/2017
// In essence, it is simply the standard deviation of the last x bars of a 
// y-bar moving average. Thus, the TAI is a simple trend indicator when prices 
// trend with authority, the slope of the moving average increases, and when 
// prices meander in a trendless range, the slope of the moving average decreases.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Trend Analysis Index", shorttitle="TAI")
AvgLen = input(28, minval=1)
TAILen = input(5, minval=1)
TopBand = input(0.11, step=0.01)
LowBand = input(0.02, step=0.01)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xPrice = close
xSMA = sma(xPrice, AvgLen)
xHH = highest(xSMA, TAILen)
xLL = lowest(xSMA, TAILen)
nRes = (xHH - xLL) * 100 / xPrice
pos = iff(nRes > TopBand, 1,
       iff(nRes < LowBand, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="TAI")


Plus de