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

Auteur:ChaoZhang est là., Date: 2024-02-02 11:32:48 Je suis désolé
Les étiquettes:

img

Résumé

Le noyau de cette stratégie est basé sur l'indicateur développé dans l'article Trading the Trend publié par Andrew Abraham dans le numéro de septembre 1998 du magazine TASC.

La logique de la stratégie

La stratégie calcule d'abord la moyenne mobile pondérée de 21 jours de la plage moyenne vraie (ATR) comme plage de volatilité de base. Puis elle calcule les prix les plus élevés et les plus bas au cours des 21 derniers jours. En comparant le prix de clôture actuel avec les limites supérieures et inférieures de la plage de base, elle juge si le prix sort du canal pour déterminer la direction de la tendance.

Plus précisément, la limite supérieure du canal est définie comme le prix le plus élevé au cours des 21 derniers jours moins 3 fois l'ATR de base, et la limite inférieure du canal est le prix le plus bas au cours des 21 derniers jours plus 3 fois l'ATR de base. Lorsque le prix de clôture est supérieur à la limite supérieure, cela indique une tendance haussière. Lorsque le prix de clôture est inférieur à la limite inférieure, cela indique une tendance baissière.

Tout en déterminant la direction de la tendance, cette stratégie introduit également un indicateur MACD pour le filtrage.

Les avantages

Cette stratégie combine la détermination des tendances et le filtrage des indicateurs, ce qui permet d'identifier efficacement l'orientation des tendances du marché à moyen et long terme sans être induit en erreur par les fluctuations à court terme.

  1. Utilisation du canal de prix pour déterminer les tendances et identifier avec précision la direction à long terme
  2. La fourchette dynamique de volatilité de référence s'adapte aux variations du marché
  3. Le filtrage MACD fournit un soutien supplémentaire à la décision pour éviter les points d'achat manquants
  4. Les paramètres configurables offrent une flexibilité dans l'ajustement du style de stratégie

Les risques

La stratégie comporte également certains risques, principalement en ce qui concerne les aspects suivants:

  1. Risque de rupture du canal des prix
  2. Risque d'erreurs de signalisation du MACD
  3. Une configuration inadéquate des paramètres peut entraîner une instabilité de la stratégie

Ces risques peuvent être réduits par l'optimisation des paramètres, la taille stricte des positions et un stop loss rapide.

Directions d'optimisation

La stratégie peut être optimisée dans les principaux aspects suivants:

  1. Testez différentes combinaisons de paramètres pour trouver l'optimum

Testez différentes combinaisons de longueur ou de multiplicateur pour trouver la combinaison de paramètres qui donne le meilleur rendement basé sur le backtest.

  1. Ajouter des filtres avec d' autres indicateurs

Test intégrant RSI, KDJ et autres indicateurs pour filtrer les signaux et améliorer la rentabilité.

  1. Réglage dynamique des paramètres

Adapter dynamiquement les paramètres en fonction des conditions du marché, par exemple en élargissant de manière appropriée la plage de canaux lorsque la tendance est forte ou en resserrant la plage lorsque le marché est plus limité.

Résumé

En résumé, il s'agit d'une stratégie globale de suivi de tendance robuste. En combinant la détermination de la tendance du canal de prix et le filtrage MACD, il peut identifier efficacement les tendances à moyen et long terme et générer des rendements stables. Avec l'optimisation des paramètres, la gestion des risques et les ajustements appropriés, cette stratégie peut devenir une partie intégrante d'un système de trading.


/*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)




Plus de