Stratégie de trading de tendance basée sur l'indicateur MACD


Date de création: 2024-02-02 11:32:48 Dernière modification: 2024-02-02 11:32:48
Copier: 3 Nombre de clics: 642
1
Suivre
1617
Abonnés

Stratégie de trading de tendance basée sur l’indicateur MACD

Aperçu

Le cœur de cette stratégie est basé sur les indicateurs développés par Andrew Abraham dans un article publié en septembre 1998 dans le journal TASC de l’indice des tendances de l’indice de négociation. L’indice utilise la portée réelle moyenne des fluctuations et le canal de prix pour déterminer la direction de la tendance du marché, en combinaison avec l’indice MACD pour le filtrage des signaux de négociation, visant à capturer les tendances de la ligne médiane.

Principe de stratégie

La stratégie commence par calculer une moyenne mobile pondérée de la plage de fluctuation réelle moyenne sur 21 jours (ATR) comme une plage de fluctuation de référence. Ensuite, elle calcule les plus hauts et les plus bas des 21 derniers jours pour comparer le prix de clôture de la ligne K actuelle avec la limite supérieure et inférieure de la plage de fluctuation de référence afin de déterminer si le prix a franchi le canal et ainsi déterminer la direction de la tendance.

Plus précisément, la limite supérieure de la voie est définie comme étant le prix le plus élevé des 21 derniers jours moins 3 fois l’ATR de référence, et la limite inférieure de la voie est la valeur la plus basse des 21 derniers jours plus 3 fois l’ATR de référence. Lorsque le prix de clôture est supérieur à la limite supérieure de la voie, il est jugé comme une tendance haussière; lorsque le prix de clôture est inférieur à la limite inférieure de la voie, il est jugé comme une tendance baissière.

En déterminant la direction de la tendance, la stratégie introduit également un filtre sur l’indicateur MACD. Un signal d’achat est généré uniquement lorsque la colonne MACD est correcte, afin d’éviter de manquer le point d’achat.

Avantages stratégiques

Cette stratégie, combinée à un jugement de tendance et à un filtrage d’indicateurs, permet de déterminer efficacement la direction de la tendance de la ligne longue du marché et d’éviter d’être induit en erreur par les fluctuations à court terme du marché. Les avantages spécifiques sont les suivants:

  1. Utilisez le canal de prix pour déterminer la tendance et déterminer avec précision la direction de la tendance de la ligne longue
  2. La fourchette de référence peut être dynamiquement ajustée pour s’adapter aux changements du marché
  3. Le filtrage des indices MACD pour augmenter la base de décision et éviter de manquer le point d’achat
  4. Paramètres configurables, flexibilité pour modifier le style de stratégie

Risque stratégique

Cette stratégie comporte également des risques, principalement dans les domaines suivants:

  1. La portée des canaux de prix ne peut pas être entièrement évitée
  2. Les indicateurs MACD peuvent présenter un risque de signaux trompeurs
  3. Une mauvaise configuration des paramètres peut entraîner une stratégie instable

Pour cela, il est possible de réduire le risque en optimisant les paramètres, en effectuant un dimensionnement strict de la position et en arrêtant les pertes en temps opportun.

Orientation de l’optimisation de la stratégie

La stratégie peut être optimisée principalement dans les domaines suivants:

  1. Tester différentes combinaisons de paramètres pour trouver le paramètre optimal

Il est possible de tester différentes combinaisons de paramètres de Longueur ou de Multiplicateur pour trouver la combinaison de paramètres qui génère le meilleur rendement sur la base des données de rétro-mesure.

  1. en combinaison avec d’autres indicateurs de filtration

Il est possible de tester le filtrage des signaux en les combinant avec d’autres indicateurs tels que le RSI, le KDJ, etc. pour voir si cela peut améliorer le rendement.

  1. Paramètres d’ajustement dynamique

Les paramètres peuvent être ajustés dynamiquement en fonction de la situation du marché, par exemple en élargissant la gamme de canaux de manière appropriée lorsque la tendance est évidente et en resserrant la gamme de canaux de manière appropriée en cas de choc.

Résumer

Cette stratégie est une stratégie de suivi de tendance relativement robuste dans l’ensemble. Combinée à la méthode de détermination de la direction de la tendance des canaux de prix et aux signaux de filtrage de l’indicateur MACD, elle permet de déterminer efficacement les tendances à long terme du marché et de générer des gains stables. Grâce à l’optimisation des paramètres, à la gestion des risques et à la correction appropriée, cette stratégie peut devenir un élément important du système de trading quantifié.

Code source de la stratégie
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 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/
// © melihtuna

//@version=1
strategy("Trend Trader Strategy with MACD", overlay=true)

// === Trend Trader Strategy ===
Length = input(21),
Multiplier = input(3, minval=1)
MacdControl = input(true, title="Control 'MACD Histogram is positive?' when Buy condition")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = iff(close > hiLimit and close > loLimit, hiLimit,
        iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos =	iff(close > ret, 1,
	    iff(close < ret, -1, nz(pos[1], 0))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(ret, color= blue , title="Trend Trader Strategy with MACD")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true

strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == -1)