Stratégie de moyenne mobile double

Auteur:ChaoZhang est là., Date: 2024-01-17 17h45 et 45 min
Les étiquettes:

img

Résumé

Cette stratégie utilise des moyennes mobiles doubles, en particulier des moyennes mobiles à 8 périodes et à 21 périodes. Elle génère des signaux longs lorsque le MA plus court traverse le plus long et des signaux courts lorsque le MA plus court traverse le plus long.

La stratégie intègre également la pente de la ligne moyenne mobile pour filtrer certaines périodes non tendance et ne produire des signaux que lorsque la tendance est plus évidente.

Principaux

Le noyau de cette stratégie réside dans le croisement des moyennes mobiles à court et à long terme. Le MA plus court peut capturer les changements de tendance plus rapidement, tandis que le MA plus long a de meilleurs effets de filtrage du bruit. L'établissement d'une tendance haussière est suggéré lorsque le MA plus court croise le MA plus long, ce qui conduit à un signal long; l'établissement d'une tendance baissière est suggéré lorsque le MA plus court croise le MA plus long, ce qui conduit à un signal court.

La stratégie définit également un seuil de pente. Seulement lorsque la pente est supérieure à la valeur de seuil positif, un signal long sera généré. Seulement lorsque la pente est inférieure à la valeur de seuil négatif, un signal court sera généré. Cela aide à filtrer les zones où aucune tendance prononcée n'existe, ce qui se traduit par des signaux de trading de meilleure qualité.

Plus précisément, la logique de génération des signaux de trading est la suivante:

  1. Calculer les moyennes mobiles simples à 8 et 21 périodes
  2. Détecter des signaux croisés entre les deux
  3. Calculer la pente de la moyenne mobile à 21 périodes à l'aide de la fonction arctangente atan
  4. Générer des signaux longs uniquement lorsque la pente dépasse un seuil positif prédéfini
  5. Générer uniquement des signaux courts lorsque la pente tombe en dessous d'un seuil négatif prédéfini

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. L'idée de stratégie est simple et facile à comprendre/mettre en œuvre
  2. L'incorporation de l'indice de pente aide à filtrer les périodes non tendance et améliore la qualité du signal
  3. L'utilisation de moyennes mobiles doubles permet à l'un et à l'autre de tirer parti de leurs forces, améliorant la robustesse
  4. Les paramètres peuvent être ajustés en fonction des différents instruments de négociation
  5. La simple mise en œuvre du programme facilite une optimisation supplémentaire

Analyse des risques

Cette stratégie comporte également certains risques:

  1. Plus de faux signaux peuvent se produire lors de fortes fluctuations du marché
  2. Le croisement lui-même a tendance à produire de faux signaux.
  3. Il y a un certain degré de retard, incapable de capturer instantanément les renversements de tendance

Quelques façons d'optimiser en fonction de ces risques:

  1. Ajuster les paramètres de l'AM en fonction des caractéristiques du marché
  2. Optimiser le seuil de pente pour améliorer la robustesse
  3. Ajouter des mécanismes de stop loss pour contrôler les pertes uniques
  4. Incorporer d'autres indicateurs pour filtrer les signaux
  5. Utiliser des paramètres adaptatifs pour améliorer la robustesse

Directions d'optimisation

Quelques orientations pour optimiser la stratégie:

  1. Utiliser des MAs adaptatives, en ajustant les paramètres en fonction de la volatilité
  2. Incorporer une analyse du volume pour éviter les erreurs lors de la consolidation
  3. Ajout d'un indice de volatilité pour améliorer la qualité et la rapidité
  4. Ajouter l'apprentissage automatique pour l'optimisation automatique des paramètres
  5. Tirer parti de l'apprentissage en profondeur pour découvrir des modèles non linéaires plus complexes

Conclusion

En résumé, cette stratégie double MA est simple et pratique. En capturant différentes caractéristiques de tendance à travers les deux paramètres de période et en les combinant pour générer des signaux de trading. Pendant ce temps, l'incorporation du seuil de pente améliore la qualité du signal. Cette stratégie peut servir de base pour les extensions, avec beaucoup d'espace d'optimisation et de potentiel.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//written by sixpathssenin
//@version=4
strategy(title="Dual Moving Average",initial_capital=10000,overlay=true)

ma1= sma(close,8)
ma2= sma(close,21)

angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13)

i_lookback   = input(2,     "Angle Period", input.integer, minval = 1)
i_atrPeriod  = input(10,    "ATR Period",   input.integer, minval = 1)
i_angleLevel = input(6,     "Angle Level",  input.integer, minval = 1)
i_maSource   = input(close, "MA Source",    input.source)

f_angle(_src, _lookback, _atrPeriod) =>
    rad2degree = 180 / 3.141592653589793238462643  //pi 
    ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback)
    ang
_angle = f_angle(ma2, i_lookback, i_atrPeriod)

plot(ma1,color=#FF0000)
plot(ma2,color=#00FF00)

crosso=crossover(ma1,ma2) 
crossu=crossunder(ma1,ma2)

_lookback = 15

f_somethingHappened(_cond, _lookback) =>
    bool _crossed = false
    for i = 1 to _lookback
        if _cond[i]
            _crossed := true
    _crossed
    
longcrossed = f_somethingHappened(crosso,_lookback)
shortcrossed = f_somethingHappened(crossu,_lookback)

long = longcrossed and _angle > angleCriteria
short= shortcrossed and _angle < -(angleCriteria)


if(long)
    strategy.entry("Long",strategy.long)
if(short)
    strategy.entry("short",strategy.short)
    


Plus de