Stratégie de trading basée sur le DMI et la moyenne mobile


Date de création: 2023-09-28 12:39:44 Dernière modification: 2023-09-28 12:39:44
Copier: 2 Nombre de clics: 910
1
Suivre
1617
Abonnés

Aperçu

La stratégie identifie la direction de la tendance en combinant l’indicateur de tendance DMI et la moyenne mobile pour émettre des signaux d’achat et de vente. La stratégie génère un signal de transaction lorsque le DMI indique que les offres entrent dans un état de tendance et que la moyenne mobile confirme la direction de la tendance.

Principe de stratégie

La stratégie est basée sur deux indicateurs principaux:

  1. Les DMI comprennent les DMI+ et les DMI-, utilisés pour identifier la présence et la direction d’une tendance. Lorsque le DMI+ est supérieur au DMI-, il indique une tendance à la hausse; lorsque le DMI- est supérieur au DMI+, il indique une tendance à la baisse.

  2. Les moyennes mobiles, généralement des moyennes de 15 à 50 jours, sont utilisées pour déterminer la direction de la tendance des prix. Lorsque les prix sont supérieurs à (inférieurs à) la moyenne mobile, ils indiquent une tendance à la hausse (inférieure à) la baisse.

La stratégie commence par calculer les moyennes mobiles DMI+, DMI- et DMI. Si la DMI indique l’état de la tendance ((DMI+ est supérieur à DMI- ou DMI- est supérieur à DMI+), un signal de transaction est généré si la moyenne mobile confirme également la direction de la tendance.

  • Faire plus quand le DMI+ est sur le DMI- et que le prix est sur la moyenne mobile;
  • Lorsque le DMI- est porté sur le DMI+ et que le prix est porté sur la moyenne mobile en dessous, laissez-le vide.

Cette stratégie est accompagnée d’une option d’entrée inverse. Lorsque l’option inverse est activée, les signaux de surcharge et de vide sont inversés.

Analyse des avantages

Cette stratégie, qui combine les indicateurs de tendance et les indicateurs de tendance, permet d’améliorer la fiabilité du signal et de tirer parti des avantages des deux indicateurs pour se compléter.

L’avantage du DMI est qu’il permet d’identifier rapidement les tendances. La moyenne mobile permet de filtrer une partie du bruit et de confirmer la direction de la tendance.

En outre, la stratégie a ajouté une option de retournement, permettant de choisir des transactions à la hausse ou à la baisse selon les besoins réels. Cela augmente la flexibilité de la stratégie.

Analyse des risques

La stratégie présente principalement les risques suivants:

  1. Il peut y avoir des signaux erronés lors d’une conversion de tendance, ce qui entraîne des pertes. Il est nécessaire d’ajuster les paramètres ou de mettre en place des arrêts de perte pour contrôler le risque.

  2. La formation d’une tendance prend un certain temps pendant lequel la stratégie est susceptible d’être perturbée par les fluctuations de prix, ce qui génère de faux signaux. Le DMI et la durée des paramètres des moyennes mobiles peuvent être ajustés de manière appropriée pour filtrer ce bruit.

  3. Le trading inverse est exposé à un risque d’expansion des pertes négatives. Lors de l’activation de l’inversion, il est nécessaire de contrôler le pourcentage de pertes individuelles ou d’utiliser un stop-loss mobile pour verrouiller une partie des bénéfices.

  4. Les paramètres doivent être réoptimisés pour différentes variétés et périodes de temps. La reproduction directe des paramètres peut ne pas être efficace pour d’autres variétés ou périodes.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Testez différents paramètres de périodes de moyenne mobile pour trouver la meilleure combinaison de paramètres pour la conversion de tendance de soudure.

  2. Les paramètres de la période de lissage du DMI sont testés, le bruit de retour court apparaissant dans la tendance de filtrage.

  3. Évaluer les différences entre l’effet de l’option d’inversion activée et celui de la transaction par défaut dans le repérage historique et choisir la meilleure option.

  4. Ajouter des stratégies de stop-loss, comme le stop-move, le stop-time, le stop-break, etc. pour contrôler les pertes individuelles.

  5. Évaluer l’efficacité de l’optimisation dans les paramètres de variété et de cycle, optimiser la combinaison de paramètres.

  6. Le filtrage en combinaison avec d’autres indicateurs, tels que le RSI fort et faible, évite de donner un faux signal aux extrêmes locaux.

Résumer

La stratégie combine les avantages de l’indicateur de tendance DMI et de l’indicateur de la moyenne mobile pour entrer en jeu plus tôt lorsque la tendance se forme et éviter d’être pris au piège dans des situations de choc. L’option de trading inversé augmente également la flexibilité de la stratégie. La stabilité de la stratégie peut être encore améliorée par l’optimisation des paramètres, l’arrêt et la combinaison avec d’autres indicateurs.

Code source de la stratégie
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/03/2017
// The related article is copyrighted material from Stocks & Commodities Aug 2009 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining DMI And Moving Average For A EUR/USD Trading System")
Length_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
xMA = sma(close, Length_MA)
up = change(high)
down = -change(low)
trur = rma(tr, Length_DMI)
xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur)
xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur)
nPDI = xPDI
nNDI = xNDI
nMA = xMA
nPDI_1 = xPDI[1]
nNDI_1 = xNDI[1]
nMA_1 = xMA[1]
bMDILong =iff(nPDI > nNDI and nPDI_1 < nNDI_1, true, 
           iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false)) 
bMDIShort =  iff(nPDI > nNDI and nPDI_1 < nNDI_1, false, 
              iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false)) 
bMALong = iff(close > nMA and close[1] < nMA_1, true, 
           iff(close < nMA and close[1] > nMA_1, false, false))
bMAShort = iff(close > nMA and close[1] < nMA_1, false, 
             iff(close < nMA and close[1] > nMA_1, true, false))
pos = iff(bMDILong and bMALong, 1, 
     iff(bMDIShort and bMAShort, -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(nPDI, color=green, title="DMI Plus")
plot(nNDI, color=red, title="DMI Minus")