Stratégie de rejet de moyenne mobile basée sur le filtre d'index directionnel moyen

ADX MA WMA
Date de création: 2024-05-17 10:35:58 Dernière modification: 2024-05-17 10:35:58
Copier: 1 Nombre de clics: 644
1
Suivre
1617
Abonnés

Stratégie de rejet de moyenne mobile basée sur le filtre d’index directionnel moyen

Aperçu

La stratégie utilise plusieurs moyennes mobiles (MA) comme signaux de trading principaux et combine l’indice de direction moyen (ADX) comme filtre. L’idée principale de la stratégie est d’identifier les opportunités potentielles de multiples et de vides en comparant les relations entre les MA rapides, les MA lentes et les MA moyennes.

Principe de stratégie

  1. Calculez le MA rapide, le MA lent et le MA moyen.
  2. Identifier les niveaux potentiels de multiples et de vides en comparant les prix de clôture avec la relation entre la MA lente et la MA lente.
  3. Les niveaux de plus et de moins sont confirmés en comparant le prix de clôture avec la relation entre la MA rapide.
  4. L’indicateur ADX est calculé manuellement pour mesurer la force de la tendance.
  5. Un signal d’entrée multiconducteur est généré lorsque la MA rapide traverse la moyenne MA vers le haut, l’ADX est supérieur au seuil fixé et que le niveau multiconducteur est confirmé.
  6. Un signal d’entrée de tête vide est généré lorsque la MA rapide traverse la MA moyenne vers le bas, l’ADX est supérieur au seuil fixé et le niveau de tête vide est confirmé.
  7. Un signal de sortie multiple est généré lorsque le prix de clôture descend en traversant le MA lent; un signal de sortie vide est généré lorsque le prix de clôture monte en traversant le MA lent.

Avantages stratégiques

  1. L’utilisation de plusieurs AM permet de mieux saisir les tendances et les changements de dynamique du marché.
  2. On peut identifier les opportunités potentielles de trading en comparant la relation entre la MA rapide, la MA lente et la MA moyenne.
  3. L’utilisation de l’indicateur ADX comme filtre permet d’éviter une surproduction de faux signaux dans un marché en crise et d’améliorer la fiabilité des signaux de négociation.
  4. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre.

Risque stratégique

  1. Cette stratégie peut produire de nombreux faux signaux, entraînant des transactions fréquentes et des pertes, en cas de tendances peu claires ou de choc du marché.
  2. La stratégie repose sur des indicateurs en retard tels que la MA et l’ADX, ce qui peut laisser passer des opportunités de formation de tendances plus tôt.
  3. Les paramètres de la stratégie (par exemple, la longueur de la MA et la valeur de la barre ADX) ont une influence importante sur la performance de la stratégie et doivent être optimisés en fonction des différents marchés et variétés.

Orientation de l’optimisation de la stratégie

  1. Envisagez d’introduire d’autres indicateurs techniques, tels que le RSI, le MACD, etc., pour améliorer la fiabilité et la diversité des signaux de négociation.
  2. Pour différents environnements de marché, différentes combinaisons de paramètres peuvent être définies pour s’adapter aux changements du marché.
  3. Introduisez des mesures de gestion des risques, telles que le stop loss et la gestion des positions, pour contrôler les pertes potentielles.
  4. L’analyse fondamentale, comme les données économiques, les changements de politique, etc., est combinée pour obtenir une vision plus globale du marché.

Résumer

Une stratégie de rejet linéaire basée sur un filtre à indice de direction moyenne utilise plusieurs indicateurs MA et ADX pour identifier les opportunités de négociation potentielles et filtrer les signaux de négociation de mauvaise qualité. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre, mais dans les applications pratiques, il faut être attentif aux changements de l’environnement du marché et optimiser en combinaison avec d’autres indicateurs techniques et mesures de gestion des risques.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gavinc745

//@version=5
strategy("MA Rejection Strategy with ADX Filter", overlay=true)

// Input parameters
fastMALength = input.int(10, title="Fast MA Length", minval=1)
slowMALength = input.int(50, title="Slow MA Length", minval=1)
averageMALength = input.int(20, title="Average MA Length", minval=1)
adxLength = input.int(14, title="ADX Length", minval=1)
adxThreshold = input.int(20, title="ADX Threshold", minval=1)

// Calculate moving averages
fastMA = ta.wma(close, fastMALength)
slowMA = ta.wma(close, slowMALength)
averageMA = ta.wma(close, averageMALength)

// Calculate ADX manually
dmPlus = high - high[1]
dmMinus = low[1] - low
trueRange = ta.tr

dmPlusSmoothed = ta.wma(dmPlus > 0 and dmPlus > dmMinus ? dmPlus : 0, adxLength)
dmMinusSmoothed = ta.wma(dmMinus > 0 and dmMinus > dmPlus ? dmMinus : 0, adxLength)
trSmoothed = ta.wma(trueRange, adxLength)

diPlus = dmPlusSmoothed / trSmoothed * 100
diMinus = dmMinusSmoothed / trSmoothed * 100
adx = ta.wma(math.abs(diPlus - diMinus) / (diPlus + diMinus) * 100, adxLength)

// Identify potential levels
potentialLongLevel = low < slowMA and close > slowMA
potentialShortLevel = high > slowMA and close < slowMA

// Confirm levels
confirmedLongLevel = potentialLongLevel and close > fastMA
confirmedShortLevel = potentialShortLevel and close < fastMA

// Entry signals
longEntry = confirmedLongLevel and ta.crossover(fastMA, averageMA) and adx > adxThreshold
shortEntry = confirmedShortLevel and ta.crossunder(fastMA, averageMA) and adx > adxThreshold

// Exit signals
longExit = ta.crossunder(close, slowMA)
shortExit = ta.crossover(close, slowMA)

// Plot signals
plotshape(longEntry, title="Long Entry", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
plotshape(shortEntry, title="Short Entry", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)

// Plot moving averages and ADX
plot(fastMA, title="Fast MA", color=color.blue)
plot(slowMA, title="Slow MA", color=color.red)
plot(averageMA, title="Average MA", color=color.orange)
// plot(adx, title="ADX", color=color.purple)
// hline(adxThreshold, title="ADX Threshold", color=color.gray, linestyle=hline.style_dashed)

// Execute trades
if longEntry
    strategy.entry("Long", strategy.long)
else if longExit
    strategy.close("Long")

if shortEntry
    strategy.entry("Short", strategy.short)
else if shortExit
    strategy.close("Short")