La stratégie de la moyenne mobile double est une stratégie de trading courte durée couramment utilisée. Elle juge la direction de la tendance du marché en calculant les moyennes mobiles de différentes périodes et l'utilise pour entrer dans les transactions. Lorsque la moyenne mobile de courte durée dépasse la moyenne mobile de longue durée, allez long. Lorsque la moyenne mobile de courte durée dépasse la moyenne mobile de longue durée, allez court.
La logique de base de cette stratégie est la suivante:
Calculer deux moyennes mobiles de périodes différentes, l'une est la MA de longue période, l'autre est la MA de courte période.
Jugez si la MA de courte période a franchi la MA de longue période. Lorsque la MA de courte période franchit au-dessus de la MA de longue période, cela indique une tendance à la hausse sur le marché et nous pouvons aller long. Lorsque la MA de courte période franchit au-dessous de la MA de longue période, cela indique une tendance à la baisse et nous pouvons aller court.
Entrez les transactions en fonction de la direction de la tendance. Plus précisément, lorsque le MA de courte période dépasse le MA de longue période, allez long. Lorsque le MA de courte période dépasse le MA de longue période, allez court.
Mettez un stop-loss et des bénéfices basés sur les conditions réelles du marché.
La stratégie utilise la capacité de jugement de tendance des MA pour déterminer la relation entre les tendances à court et à long terme, afin de capturer les mouvements à court terme.
La double stratégie d'AM présente les avantages suivants:
La logique est simple et facile à comprendre et à mettre en œuvre.
Il a des critères d'entrée et de sortie clairs.
Les périodes d'AM peuvent être ajustées pour s'adapter aux différents environnements du marché.
Il capte à la fois la tendance et l'inversion de la moyenne, ce qui lui permet de profiter des mouvements à moyen terme.
Il existe une logique de stop loss pour contrôler les risques.
Il existe également certains risques liés à la stratégie de double MA:
Le stop loss peut être déclenché fréquemment sur les marchés à plage.
Les signaux MA peuvent être trop fréquents pendant les marchés volatils, ce qui rend difficile la détention de positions.
Les MAs ont eux-mêmes des retards et peuvent manquer des opportunités d'inversion à court terme.
Les périodes d'AM doivent être optimisées pour que la stratégie fonctionne.
Les croisements MA ont un certain retard, ce qui cause des entrées retardées.
Quelques moyens d'améliorer cette stratégie:
Optimiser les périodes d'autorisation de mise sur le marché pour les différentes conditions du marché par le biais de tests antérieurs.
Ajoutez d'autres indicateurs comme filtres pour éviter les fléchettes sur les marchés à fourchette.
Ajoutez des indicateurs de force de tendance pour éviter les transactions lorsqu'il n'y a pas de tendance claire.
Considérez les indicateurs de volume pour juger de la direction de l'écart.
Optimiser le stop loss près des niveaux de support/résistance majeurs.
La stratégie double MA est une stratégie simple à court terme basée sur des croisements de MA pour déterminer la tendance. Les avantages sont sa simplicité et sa facilité d'utilisation. Les inconvénients sont qu'elle peut être modifiée par des marchés variés et a des retards. Nous pouvons l'optimiser en ajustant les paramètres, en ajoutant des filtres, etc. pour la rendre plus robuste pour des environnements de marché complexes.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("GetTrendStrategy timing", overlay=true) tim=input('370') ////////////////////////////////////////////////////////////////////// // Component Code Start testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(10, "Backtest Start Month") testStartDay = input(25, "Backtest Start Day") testStartHour = input(7, "Backtest Start Hour") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0) testStopYear = input(2017, "Backtest Stop Year") testStopMonth = input(10, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testStopHour = input(13, "Backtest stop Hour") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStartHour,0) testPeriod() => true // Component Code Stop ////////////////////////////////////////////////////////////////////// out1 = request.security(syminfo.tickerid, tim, open) out2 = request.security(syminfo.tickerid, tim, close) plot(out1,color=red) plot(out2,color=green) longCondition = crossover(request.security(syminfo.tickerid, tim, close),request.security(syminfo.tickerid, tim, open)) if testPeriod() if (longCondition) strategy.entry("long", strategy.long) shortCondition = crossunder(request.security(syminfo.tickerid, tim, close),request.security(syminfo.tickerid, tim, open)) if testPeriod() if (shortCondition) strategy.entry("short", strategy.short)