Stratégie de trading ADX Crossover


Date de création: 2023-12-08 15:49:12 Dernière modification: 2023-12-08 15:49:12
Copier: 0 Nombre de clics: 961
1
Suivre
1621
Abonnés

Stratégie de trading ADX Crossover

Aperçu

Cette stratégie, combinée à l’utilisation d’indicateurs de l’indice des moyennes mobiles ((ADX) et de l’indice des mouvements ascendants ((DI+) pour déterminer la direction et la tendance du marché, tout en utilisant des moyennes mobiles rapides et lentes pour déterminer la direction des transactions et le temps de tenue, appartient à la stratégie de trading de suivi de la tendance. Cette stratégie peut capturer efficacement les revers de la courte ligne médiane et fonctionne mieux dans les marchés où le taux de volatilité est faible et la tendance est évidente.

Le principe

La logique de base de la stratégie est de générer un signal d’achat lorsque la ligne +DI dépasse l’ADX de la direction du bas et un signal de vente lorsque la ligne +DI dépasse l’ADX de la direction du haut. Par conséquent, la stratégie repose sur la croisée entre les indicateurs DI et ADX pour déterminer la tendance du marché et le point de basculement. De plus, la relation de la ligne rapide et moyenne est utilisée pour déterminer la tendance du marché dans son ensemble et ne prend en compte la production d’un signal de transaction que lorsque l’EMA rapide est supérieure à l’EMA lente.

En particulier, un signal d’achat est émis lorsque les conditions suivantes sont remplies: 1, l’EMA rapide est supérieure à l’EMA lente 2 , la ligne DI + dépasse la ligne ADX par le bas 3/ Un seuil de ADX inférieur à 30

Un signal de vente est émis lorsque les conditions suivantes sont remplies: 1 Le seuil de l’ADX est supérieur à 30 2 , la ligne DI descend du haut vers le bas sur la ligne ADX

La stratégie intègre également une logique de stop-loss, qui consiste à se retirer de toutes les positions lorsque le prix est inférieur au prix de stop-loss.

Les avantages

Cette stratégie, combinée au DI, à l’ADX et à l’indicateur de la ligne moyenne, permet de déterminer efficacement le point de basculement de la tendance du marché. Elle présente les avantages suivants:

  1. Utilisez les indicateurs DI et ADX pour déterminer les signaux de renversement de tendance et pour localiser avec précision les points d’entrée et de sortie
  2. Le système de filtrage rapide de l’EMA fournit un jugement sur les grandes tendances pour éviter les transactions erronées
  3. Utilisez la valeur de l’ADX pour juger si la tendance est forte ou faible, ne négociez que lorsque la tendance est faible, en évitant le risque de fausse rupture
  4. Adhésion à un mécanisme de freinage des pertes pour contrôler le risque de baisse
  5. Les conditions d’entrée sont strictes pour éviter les risques d’achats et de ventes à la hausse.
  6. Conditions de sortie claires, arrêt et arrêt en temps opportun

Les risques

Cette stratégie comporte également des risques à prendre en compte:

  1. L’indicateur ADX est en retard et risque de manquer le meilleur moment pour inverser le cours
  2. Les indicateurs ADX et DI produisent plus de faux signaux lorsque les marchés sont plus volatiles
  3. Un mauvais réglage de la moyenne rapide peut entraîner des opportunités de transaction manquées ou des signaux de filtrage erronés
  4. Le prix de stop loss est fixé de manière trop laxiste pour contrôler efficacement le risque.

Ces risques peuvent être améliorés par des méthodes telles que l’optimisation de l’ADX et des paramètres de la moyenne, l’ajustement du niveau de stop loss, en combinaison avec d’autres signaux de confirmation d’indicateurs.

Direction d’optimisation

Il y a encore de la place pour optimiser cette stratégie:

  1. On peut tester l’ADX sur des périodes de longueurs différentes pour trouver la meilleure combinaison de paramètres
  2. D’autres indicateurs peuvent être ajoutés, tels que le RSI, le Brin et d’autres, pour confirmer le signal de transaction
  3. Les algorithmes d’apprentissage automatique permettent de trouver automatiquement des combinaisons de paramètres et des règles de transaction
  4. Le risque de couverture du marge arrière peut être ajusté dynamiquement en ajustant le niveau de stop loss
  5. Des modèles de notation multi-facteurs peuvent être créés pour rendre les règles d’entrée et de sortie plus robustes.

Résumer

La stratégie de tendance croisée de l’ADX est globalement plus stable et permet de capturer efficacement l’espace de retournement avant les fluctuations, mais il faut veiller à contrôler les risques. Un meilleur rendement après ajustement des risques peut être obtenu par des paramètres de réglage optimisés supplémentaires, des règles d’entrée et d’arrêt strictes, etc. La stratégie s’applique aux comptes de négociation de courte ligne détenus dans les comptes longs.

Code source de la stratégie
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
//ADX strategy
SmoothedTrueRange=0.00
SmoothedDirectionalMovementPlus=0.00
SmoothedDirectionalMovementMinus=0.00


strategy(title="ADX strategy", overlay=false,pyramiding=3, default_qty_type=strategy.fixed, default_qty_value=3,    initial_capital=10000, currency=currency.USD)

len = input(11, title="ADX Length", minval=1)
threshold = input(30, title="threshold", minval=5)

fastEma=input(13, title="Fast EMA",minval=1, maxval=50)
slowEma=input(55, title="Slow EMA",minval=10, maxval=200)
stopLoss =input(8, title="Stop Loss",minval=1)   //


TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0


SmoothedTrueRange:= nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange

SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus:= nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)

plot(DIPlus, color=color.green, title="DI+")
//plot(DIMinus, color=color.red, title="DI-")
plot(ADX, color=color.black, title="ADX")
hline(threshold, color=color.black, linestyle=hline.style_dashed)

fastEmaVal=ema(close,fastEma)
slowEmaVal=ema(close,slowEma)




//long condition
longCondition=  ADX < threshold  and crossover(DIPlus,ADX)  and fastEmaVal > slowEmaVal


barcolor(longCondition ? color.yellow: na)

strategy.entry(id="ADXLE", long=true,  when= longCondition  and strategy.position_size<1) 

barcolor(strategy.position_size>1 ? color.blue: na)
bgcolor(strategy.position_size>1 ? color.blue: na)



//Add
strategy.entry(id="ADXLE", comment="Add", long=true,  when= strategy.position_size>1 and close<strategy.position_avg_price and crossover(DIPlus,ADX) ) 


//calculate stop Loss
stopLossVal =  strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01)

strategy.close(id="ADXLE",comment="SL Exit",    when=close<stopLossVal)   //close all on stop loss


//exit condition
exitCondition=  ADX > threshold  and crossunder(DIPlus,ADX) // and fastEmaVal > slowEmaVal
strategy.close(id="ADXLE",comment="TPExitAll",    qty=strategy.position_size ,   when= exitCondition)   //close all