Stratégie de négociation de l'indice de tendance directionnelle

Auteur:ChaoZhang est là., Date: le 18 septembre 2023 à 17h07:55
Les étiquettes:

Résumé

Cette stratégie utilise l'indice de tendance directionnelle (DTI) pour déterminer la direction de la tendance des prix pour la tendance suivant les transactions.

La logique de la stratégie

Calculer la valeur du changement de prix à partir des changements de prix les plus élevés et les plus bas au cours d'une période. Appliquer plusieurs moyennes mobiles exponentielles à cela pour dériver la courbe DTI. Définir des seuils supérieurs et inférieurs pour DTI. Lorsque l'indicateur dépasse le seuil supérieur, un signal long est généré. Traverser le seuil inférieur donne un signal court. Maintenez la position jusqu'à ce que le prochain signal se produise.

Les avantages

  • DTI détermine avec précision la direction de la tendance avec moins de signaux
  • Les seuils filtrent les écarts insignifiants, évitant ainsi les transactions bruyantes
  • Suivre continuellement les tendances, sans être affecté par les fluctuations à court terme
  • Grand espace de réglage des paramètres pour équilibrer la réactivité

Les risques

  • Les points d'inversion de tendance ne peuvent pas être déterminés avec précision, les risques de pertes
  • Une mauvaise régulation des paramètres de l'ITD risque de manquer des opportunités
  • Une détention prolongée peut entraîner des prélèvements plus importants
  • Faible fréquence de négociation impropre à la négociation à haute fréquence

Les risques peuvent être atténués en raccourcissant la période de calcul, en ajustant les seuils ou en ajoutant des indicateurs d'inversion.

Améliorations

  • Test de différentes combinaisons de paramètres pour le calcul de la DTI
  • Optimiser les seuils longs/courts
  • Envisager d'ajouter des stratégies de stop loss pour contrôler le risque
  • Test de robustesse sur différents produits

Conclusion

La stratégie DTI détermine avec précision la direction de la tendance à partir de signaux clairs, ce qui permet des profits stables à long terme.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/03/2017
// This technique was described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// Directional Trend Index is an indicator similar to DM+ developed by Welles Wilder. 
// The DM+ (a part of Directional Movement System which includes both DM+ and 
// DM- indicators) indicator helps determine if a security is "trending." William 
// Blau added to it a zeroline, relative to which the indicator is deemed positive or 
// negative. A stable uptrend is a period when the DTI value is positive and rising, a 
// downtrend when it is negative and falling. 
//
// 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="Directional Trend Index (DTI)", shorttitle="DTI")
r = input(14, minval=1)
s = input(10, minval=1)
u = input(5, minval=1)
OS = input(45, minval=1)
OB = input(-45, maxval=-1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xHMU = iff(high - high[1] > 0, high - high[1], 0)
xLMD = iff(low - low[1] < 0, -(low - low[1]), 0)
xPrice = xHMU - xLMD
xPriceAbs = abs(xPrice)
xuXA = ema(ema(ema(xPrice, r),s),u)
xuXAAbs = ema(ema(ema(xPriceAbs, r),s),u)
Val1 = 100 * xuXA
Val2 = xuXAAbs
DTI = iff(Val2 != 0, Val1 / Val2, 0)
pos = iff(DTI > OS, -1,
	     iff(DTI < OB, 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(DTI, color=maroon, title="DTI")
plot(OB, color=blue, title="OB")
plot(OS, color=red, title="OS")

Plus de