Stratégie de négociation intraday croisée de l'EMA basée sur l'oscillateur AO

Auteur:ChaoZhang est là., Date: 2023-12-25 10:53:48 Je suis désolé
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading intraday qui utilise l'oscillateur AO et les croisements EMA pour générer des signaux de trading.

La logique de la stratégie

La stratégie repose principalement sur deux indicateurs pour les entrées et les sorties:

  1. Oscillateur AO: Il mesure la différence entre les moyennes HL2 de 5 périodes et 34 périodes pour mesurer la direction de la tendance actuelle.

  2. EMA Crossover: La stratégie utilise une EMA de 3 périodes pour la tendance à court terme et une EMA de 20 périodes pour la direction de la tendance à moyen terme.

Les transactions ne sont effectuées que lorsque l'AO franchit sa ligne zéro en même temps qu'un croisement EMA. Cela évite de faux signaux lorsque l'AO oscille. Les sorties se produisent après la clôture de la session de Londres en aplatissant toutes les positions.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. L'oscillateur AO assure une direction de tendance précise pour des signaux fiables;
  2. La combinaison à double indicateur filtre le bruit pour des signaux de haute fiabilité;
  3. La négociation uniquement pendant les grandes sessions évite les risques du jour au lendemain;
  4. Une logique simple et claire facilite la compréhension et la mise en œuvre;
  5. Aucune optimisation ou ajustement de courbe n'est nécessaire avec des paramètres stables.

Analyse des risques

Certains risques à prendre en compte sont les suivants:

  1. Le risque de pertes prolongées sans arrêt-perte rapide dans les événements de cygne noir;
  2. Les frappes de faux croisements EMA sur les marchés de variation;
  3. Manque d'adaptabilité aux paramètres fixes dans les cycles changeants du marché.

Les risques peuvent être atténués par des arrêts de pertes, des paramètres adaptatifs adaptés à différents cycles, etc.

Directions d'optimisation

Les principales orientations d'optimisation sont autour de l'ajustement des paramètres:

  1. Adapter les périodes d'EMA pour tester des combinaisons à court terme ou des EMA supplémentaires dans la génération de signaux;
  2. régler les paramètres AO pour évaluer l'impact sur l'oscillateur;
  3. Ajouter des indicateurs supplémentaires tels que le RSIbord pour éviter les conditions de surachat/survente;
  4. Ajustez les horaires des sessions de négociation pour tester différentes régions ou des durées plus longues.

Des ajustements de paramètres et des filtres supplémentaires peuvent améliorer la robustesse et l'efficacité de la stratégie.

Conclusion

En résumé, cette tactique de négociation intraday combine l'indicateur de tendance AO avec les croisements EMA pour créer une approche simple mais pratique. Elle a des signaux clairs faciles à mettre en œuvre mais manque de paramètres adaptatifs. Des tests et des raffinements supplémentaires peuvent améliorer sa stabilité et son alignement sur les différents paysages du marché. Dans l'ensemble, elle offre aux traders intraday un excellent choix.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author SoftKill21

strategy(title="MA cross + AO", shorttitle="MA_AO")
ao = sma(hl2,5) - sma(hl2,34)

len = input(3, minval=1, title="Length")
src = input(close, title="Source")
out = ema(src, len)

len1 = input(20, minval=1, title="Length")
src1 = input(close, title="Source")
out1 = sma(src1, len1)

timeinrange(res, sess) => time(res, sess) != 0
londopen = timeinrange(timeframe.period, "0300-1100") 
nyopen = timeinrange(timeframe.period, "0800-1600") 

longC = crossover(out,out1) and ao>0 and londopen
shortC = crossunder(out,out1) and ao<0 and londopen

invert = input(title="Reverse position ?", type=input.bool, defval=false)

if(invert==false)
    strategy.entry("LONG",1,when=longC)
    strategy.entry("SHORT",0,when=shortC)



if(invert==true)
    strategy.entry("short",0,when=longC)
    strategy.entry("long",1,when=shortC)
    
strategy.close_all(when= not (londopen))




Plus de