Stratégie d'indice dynamique de dynamique

Auteur:ChaoZhang est là., Date: le 14 septembre 2023 à 16 h 15 min 42 s
Les étiquettes:

La logique de la stratégie

Cette stratégie est basée sur l'indice de dynamique dynamique (DMI), qui mesure l'écart en pourcentage entre le prix et les moyennes mobiles de différentes longueurs pour déterminer la tendance.

La logique de négociation est la suivante:

  1. Calculer l'écart en pourcentage du prix par rapport à un MA long (par exemple 200 jours) comme 1er DMI

  2. Calculer l'écart par rapport à un MA moyen (p. ex. 50 jours) en tant que 2e IMD

  3. Calculer l'écart par rapport à un MA court (p. ex. 20 jours) en tant que 3ème DMI

  4. Lorsque le 3ème DMI est supérieur au 1er DMI, baissier.

  5. Signals commerciaux générés sur la base de la relation DMI

En comparant dynamiquement la résistance relative entre les périodes de MA, le DMI vise à identifier les points tournants de la tendance.

Les avantages

  • Le DMI combine le lookback multipériodique pour la robustesse

  • Comparaison de la force relative par rapport aux niveaux absolus

  • Périodes d'AM flexibles pour l'adaptation au marché

Les risques

  • DMI a un décalage et peut manquer les renversements

  • Optimisation minutieuse des paramètres de la période

  • Prédisposé à plusieurs faux signaux

Résumé

DMI juge les points tournants en comparant la dynamique de la force de plusieurs périodes MA. L'optimisation peut s'adapter à différents environnements de marché.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/06/2018
// The related article is copyrighted materialfrom Stocks & Commodities Dec 2009
// My strategy modification.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="CMOaDisparity Index Backtest")
LengthFirst = input(200, minval=1)
LengthSecond = input(50, minval=1)
LengthThird = input(20, minval=1)
ShowFirst = input(type=bool, defval=true)
ShowSecond = input(type=bool, defval=true)
ShowThird = input(type=bool, defval=true)
reverse = input(false, title="Trade reverse")
xEMAFirst = ema(close,LengthFirst)
xEMASecond  = ema(close,LengthSecond)
xEMAThird  = ema(close,LengthThird)
xResFirst = 100 * (close - xEMAFirst) / close
xResSecond = 100 * (close - xEMASecond) / close
xResThird = 100 * (close - xEMAThird) / close
pos = iff(xResThird > xResFirst, -1,
       iff(xResThird < xResSecond, 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(ShowFirst ? xResFirst : na, color=red, title="DIX 1")
plot(ShowSecond ? xResSecond : na, color=blue, title="DIX 2")
plot(ShowThird ? xResThird : na, color=green, title="DIX 3")

Plus de