Stratégie de croisement de moyenne mobile exponentielle Momentum Average Wizard


Date de création: 2024-02-29 11:50:49 Dernière modification: 2024-02-29 11:50:49
Copier: 0 Nombre de clics: 599
1
Suivre
1617
Abonnés

Stratégie de croisement de moyenne mobile exponentielle Momentum Average Wizard

Aperçu

La stratégie de croisement des moyennes mobiles de l’indice de direction des moyennes mobiles combine deux indicateurs techniques puissants, la moyenne mobile ((MA) et l’indice de direction moyenne ((ADX), pour fournir aux traders une analyse technique plus précise. La stratégie est spécialement conçue pour l’analyse dynamique du marché et fournit des signaux de trading clairs.

Principe de stratégie

La stratégie suit la dynamique des prix en calculant des moyennes mobiles pondérées (WMA), en aplatissant les fluctuations des prix et en générant des signaux de tendance. En même temps, elle calcule l’indice de direction moyen (ADX) et l’indice de dynamique négative positive (+/- DI) pour juger de la présence et de l’intensité d’une tendance.

La stratégie utilise le croisement des indicateurs MA et ADX comme base de décision de négociation. Lorsque l’ADX est supérieur à la marge et que le DIdiff ((DI+ - DI-) est supérieur à 0, faire plus; lorsque l’ADX est supérieur à la marge et que le DIdiff est inférieur à 0, faire un placement nul.

Analyse des avantages

Cette stratégie, combinant les avantages des moyennes mobiles et de l’indice ADX, permet d’identifier efficacement l’existence et la direction de la tendance et de réduire les faux signaux. Comparé à un seul indicateur, l’indicateur combiné fournit un signal de négociation plus fiable.

En outre, la stratégie est une stratégie quantifiée entièrement basée sur le calcul des paramètres, avec une bonne rétroaction et une performance stable du disque dur, adaptée à la négociation algorithmique.

Analyse des risques

Cette stratégie est susceptible de générer des risques de trading en cas de fortes fluctuations du marché. Lorsque les prix fluctuent fortement et que l’indicateur ne réagit pas, cela entraîne des pertes pour le compte. De plus, la mauvaise configuration des paramètres de l’indicateur peut également affecter l’efficacité de la stratégie.

Les pertes individuelles peuvent être contrôlées par un stop loss. En même temps, les paramètres sont optimisés et, en combinaison avec le filtrage d’autres indicateurs, les signaux erronés sont réduits.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. En combinaison avec des filtres d’autres indicateurs, tels que les bandes de Brin, le RSI, etc., pour améliorer la qualité du signal

  2. Optimiser les paramètres de longueur des moyennes mobiles et des indices ADX pour trouver la combinaison optimale de paramètres

  3. Augmentation des mécanismes de prévention des pertes et maîtrise des pertes individuelles

  4. Tester différentes périodes de détention pour trouver la meilleure période de détention

Résumer

La stratégie de croisement des moyennes mobiles, qui permet d’identifier efficacement la direction de la tendance du marché en calculant la dynamique des prix et la force de la tendance, est une stratégie de suivi de tendance fiable. La stratégie est hautement algorithmique, stable en retour et fonctionne bien en direct.

Code source de la stratégie
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Julien_Eche

//@version=5
strategy("MA ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)

start_date = input(timestamp("1975-01-01T00:00:00"), title="Start Date")
end_date = input(timestamp("2099-01-01T00:00:00"), title="End Date")

// Indicator Inputs
group1 = "MA Parameters"
lengthMA = input.int(50, title="MA Length", minval=1, group=group1)
sourceMA = input(close, title="MA Source", group=group1)

group2 = "ADX Parameters"
diLength = input.int(14, title="DI Length", minval=1, group=group2)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1, maxval=50, group=group2)
adxMAActive = input.int(15, title="ADX MA Active", minval=1, group=group2)

// Directional Movement calculations
upwardMovement = ta.change(high)
downwardMovement = -ta.change(low)
trueRangeSmoothed = ta.rma(ta.atr(diLength), diLength)
positiveDM = fixnan(100 * ta.rma(upwardMovement > downwardMovement and upwardMovement > 0 ? upwardMovement : 0, diLength) / trueRangeSmoothed)
negativeDM = fixnan(100 * ta.rma(downwardMovement > upwardMovement and downwardMovement > 0 ? downwardMovement : 0, diLength) / trueRangeSmoothed)
dmSum = positiveDM + negativeDM 

// Average Directional Index (ADX) calculation
averageDX = 100 * ta.rma(math.abs(positiveDM - negativeDM) / math.max(dmSum, 1), adxSmoothing)

// Line color determination
lineColor = averageDX > adxMAActive and positiveDM > negativeDM ? color.teal : averageDX > adxMAActive and positiveDM < negativeDM ? color.red : color.gray

// Moving Average (MA) calculation
maResult = ta.wma(sourceMA, lengthMA)

// Plotting the Moving Average with color
plot(maResult, color=lineColor, title="MA", linewidth=3)

// Strategy logic
if (averageDX > adxMAActive and positiveDM > negativeDM)
    strategy.entry("Buy", strategy.long)

if (averageDX > adxMAActive and positiveDM < negativeDM)
    strategy.close("Buy")