Tendance suivant une stratégie basée sur la différence de moyenne mobile

Auteur:ChaoZhang est là., Date: 2024-01-12 14:42:06 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie génère des signaux de trading basés sur la différence entre deux moyennes mobiles. Lorsque la ligne rapide traverse au-dessus de la ligne lente, un signal d'achat est généré. Lorsque la ligne rapide traverse au-dessous de la ligne lente, un signal de vente est généré. Elle appartient à la catégorie des stratégies de suivi de tendance. La stratégie est simple et facile à comprendre, adaptée au trading à moyen terme.

La logique de la stratégie

La stratégie calcule la différence entre deux EMA avec des paramètres différents, puis calcule une autre EMA basée sur cette différence pour générer des signaux de trading. Plus précisément, elle choisit une période, calcule 2 fois l'EMA de la période/2 comme la ligne rapide, et l'EMA de la période comme la ligne lente. La différence entre ces deux EMA constitue la différence de valeur de diff. Ensuite, elle calcule l'EMA de diff basée sur la période de la période carrée, ce qui donne la ligne d'indicateur n1.

La stratégie est simple et directe, utilisant l'indicateur de différence de moyenne mobile double pour juger des tendances des prix. Elle appartient à une stratégie de suivi de tendance typique. Elle fonctionne bien sur les marchés en tendance, mais peut générer de faux signaux pendant les marchés à fourchette. Un jugement de tendance et une gestion des risques appropriés doivent être utilisés avec la stratégie.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. La logique de la stratégie est simple et intuitive, facile à comprendre et à mettre en œuvre, adaptée aux débutants;

  2. L'indicateur de différence moyenne mobile est sensible aux variations de prix et peut capturer efficacement les variations de tendance;

  3. La stratégie comporte peu de paramètres et est facile à optimiser et à ajuster dans le commerce réel;

  4. Les indicateurs à long terme et à court terme peuvent être combinés pour s'adapter à différents environnements de marché;

  5. Les stratégies de stop loss peuvent être configurées en fonction des préférences personnelles en matière de risque afin de réduire les pertes.

Analyse des risques

La stratégie comporte également les risques suivants:

  1. Un taux de faux signaux plus élevé sur les marchés à plage, des tendances à plus long terme devraient être envisagées;

  2. Il est impossible de déterminer efficacement les points d'inversion de tendance, il y a un certain décalage;

  3. Les paramètres de l'indicateur de différence doivent être surveillés pour éviter qu'ils ne soient trop sensibles ou retardés;

  4. Une fréquence de négociation élevée peut entraîner des coûts de transaction plus élevés, le dimensionnement des positions nécessite un contrôle.

Les solutions correspondantes sont:

  1. Combiner les moyennes mobiles à long terme pour déterminer les principales tendances, éviter d'entrer à tort dans les fourchettes;

  2. L'ajout d'indicateurs d'inversion pour déterminer les points d'entrée et de sortie, réduit le risque de retard;

  3. Test des combinaisons de paramètres pour trouver les paramètres optimaux;

  4. Optimiser les stratégies de stop loss pour réduire les pertes par transaction.

Directions d'optimisation

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

  1. Tester différentes combinaisons de paramètres de moyenne mobile pour trouver les paramètres optimaux;

  2. Ajouter des indicateurs de jugement de tendance pour distinguer les marchés tendance et les marchés à fourchette;

  3. Combiner les indicateurs d'inversion pour améliorer la précision d'entrée;

  4. Optimiser les stratégies de stop loss pour réduire les pertes.

Le test de différents paramètres de période peut améliorer l'adaptabilité de la stratégie aux différentes conditions du marché. L'ajout de filtres de tendance peut réduire les faux signaux. Les indicateurs d'inversion peuvent améliorer le timing des entrées. Ces optimisations peuvent améliorer la stabilité et la rentabilité de la stratégie.

Conclusion

La stratégie de suivi de tendance basée sur la différence de moyenne mobile a une logique claire et facile à comprendre. En jugeant les tendances des prix en utilisant des différences de moyenne mobile doubles, elle appartient à une stratégie de poursuite de tendance typique. La stratégie elle-même est très simple et facile à mettre en œuvre, adaptée au trading à moyen terme, en particulier pour les débutants à étudier. Mais il existe également certains risques liés à la stratégie qui doivent être réduits par des optimisations. Avec un réglage approprié des paramètres et un contrôle des risques, la stratégie peut obtenir de bons résultats.


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

//@version=5
strategy(title='Devick', overlay=true)

// Input parameters
period = input(title='Period', defval=21)

// Calculate moving averages
n2ma = 2 * ta.ema(close, math.round(period / 2))
nma = ta.ema(close, period)
diff = n2ma - nma
sqn = math.round(math.sqrt(period))

n2maPrev = 2 * ta.ema(close[1], math.round(period / 2))
nmaPrev = ta.ema(close[1], period)
diffPrev = n2maPrev - nmaPrev
sqnPrev = math.round(math.sqrt(period))

n1 = ta.ema(diff, sqn)
n2 = ta.ema(diffPrev, sqnPrev)

// Determine color based on condition
maColor = n1 > n2 ? color.green : color.red

// Plot moving average
ma = plot(n1, color=maColor, linewidth=2)

// Signals
buySignal = n1 > n2 and n1[1] <= n2[1]
sellSignal = n1 <= n2 and n1[1] > n2[1]

// Plot shapes for signals
plotshape(series=buySignal, title='Buy Signal', style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=sellSignal, title='Sell Signal', style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)

// Alerts
alertcondition(condition=buySignal, title='Buy Signal', message='Buy Signal Detected')
alertcondition(condition=sellSignal, title='Sell Signal', message='Sell Signal Detected')

// Trading hours
openHour = 16
closeHour = 17

// Open position at 4 pm
openCondition = hour == openHour and minute == 0
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Close all positions at 5 pm
closeCondition = hour == closeHour and minute == 0
strategy.close_all(when=closeCondition)

Plus de