Stratégie MACD du disjoncteur de momentum


Date de création: 2023-10-20 17:12:31 Dernière modification: 2023-10-20 17:12:31
Copier: 0 Nombre de clics: 740
1
Suivre
1617
Abonnés

Stratégie MACD du disjoncteur de momentum

Aperçu

La stratégie MACD de monopole de dynamique consiste principalement à utiliser une combinaison d’indicateurs MACD et d’indicateurs de dynamique pour former un signal de transaction, qui appartient à la stratégie de suivi de la tendance. Cette stratégie calcule d’abord l’EMA rapide et l’EMA lente, puis la valeur MACD, puis la ligne de signal MACD.

Principe de stratégie

La stratégie est basée sur une combinaison de MACD et de dynamique.

L’indicateur MACD est un indicateur de suivi de tendance composé d’un graphique en colonnes de l’EMA rapide, de l’EMA lente et du MACD. Les paramètres de l’EMA rapide sont généralement de 12 jours et les paramètres de l’EMA lente de 26 jours.

La courbe rapide EMA = EMA ((prix de clôture, 12)

L’EMA de la ligne lente est égale à l’EMA du cours de clôture (26).

MACD = EMA de ligne rapide - EMA de ligne lente

La ligne de signal est égale à EMA{\displaystyle EMA{\mathrm {MACD} ,9}

Lorsque la ligne rapide traverse la ligne lente, cela indique que l’élan de hausse à court terme est plus fort que celui à long terme, comme signal d’entrée; lorsque la ligne rapide traverse la ligne lente, cela indique que l’élan de baisse à long terme est plus fort que celui à court terme, comme signal de sortie.

L’indicateur de dynamique est un indicateur technique qui reflète la vitesse de variation du prix d’une action, calculé selon la formule:

Valeur dynamique = prix de clôture d’aujourd’hui - prix de clôture d’avant N jours

Si la valeur de la dynamique est positive, l’action est dans une tendance à la hausse; si la valeur de la dynamique est négative, l’action est dans une tendance à la baisse, si la valeur de la dynamique est inférieure à la valeur de la dynamique.

La stratégie utilise une combinaison d’indicateurs MACD et d’indicateurs de dynamique pour former un signal de transaction. Les critères de détermination sont les suivants: lorsque la différence MACD et la différence de dynamique traversent l’axe zéro, un signal d’achat est généré, formant un croisement au-dessus de l’axe zéro; lorsque la différence MACD et la différence de dynamique traversent l’axe zéro, un signal de vente est généré, formant un croisement en dessous de l’axe zéro.

Analyse des forces stratégiques

Cette stratégie présente les avantages suivants:

  1. La combinaison de l’indicateur MACD et de l’indicateur de dynamique permet de suivre la tendance et d’éviter les transactions inefficaces lorsque les prix des actifs ne sont orientés que par des secousses.

  2. Les signaux de transaction générés par le mécanisme de double confirmation permettent de filtrer certains bruits et d’éviter les fausses interférences.

  3. Les paramètres de l’indicateur MACD sont réglables et peuvent être optimisés en fonction des variétés et des cycles de négociation.

  4. La capture bidirectionnelle des tendances est possible grâce à un mécanisme d’achat et de vente bidirectionnel.

  5. Les stratégies sont simples à comprendre, avec moins de paramètres, et conviennent aux débutants.

Analyse stratégique des risques

Cette stratégie comporte aussi des risques:

  1. Le MACD et l’indicateur de dynamique sont des indicateurs de suivi de tendance, qui peuvent générer plus de transactions inefficaces lorsque le marché est très volatil ou n’a pas de tendance évidente.

  2. Bien qu’un portefeuille à double indice puisse filtrer les faux signaux, il est également possible de manquer des opportunités de négociation, et les paramètres doivent être ajustés de manière appropriée pour équilibrer les risques.

  3. Lors d’un renversement de la tendance à grande cycles, l’indicateur MACD est en retard, ce qui entraîne des pertes de négociation.

  4. La fréquence des transactions peut être élevée, il est nécessaire de faire attention à la gestion des fonds et aux frais de traitement.

  5. Les paramètres inappropriés peuvent entraîner une sensibilité excessive ou un retard excessif, nécessitant des tests et des optimisations constants en fonction des conditions du marché.

Orientation de l’optimisation de la stratégie

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

  1. Optimiser les paramètres de l’indicateur MACD afin de trouver la combinaison optimale de paramètres en fonction des différentes variétés de transactions et des différentes périodes.

  2. Optimiser les paramètres de la dynamique, équilibrer la sensibilité et filtrer le bruit.

  3. Augmentation du mécanisme de stop-loss pour contrôler les pertes maximales sur une seule transaction.

  4. L’ajout d’un module de gestion des positions permettant de suivre la tendance de la taille des transactions

  5. Il a ajouté des filtres tels que des indicateurs de concentration pour éviter les transactions erronées dans des conditions de courbure.

  6. Il est associé à d’autres indicateurs tels que les bandes de Brin, le RSI, etc. pour former un signal de transaction à confirmation multiple.

  7. Ajout d’une boucle d’optimisation permettant une itération et une optimisation continue des paramètres.

Résumer

La stratégie est simple, directe, facile à comprendre et particulièrement adaptée aux débutants. Cependant, il faut également tenir compte du retard de l’indicateur MACD et du risque d’inefficacité des transactions tout au long de la phase du plateau de choc. Un système de stratégie plus robuste peut être formé en optimisant continuellement les paramètres de l’indicateur et en ajoutant des indicateurs techniques auxiliaires.

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

//@version=4
strategy(title="MACD MOMENTUM TEST", shorttitle="MACD MOM TEST")

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
len = input(title="Momentum", type=input.integer, defval=10)
src1 = input(title="Source MACD", type=input.source, defval=close)
src2 = input(title="Source MOMENTUM", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 14)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #0c8e61
col_grow_below = #ffcdd2
col_fall_above = #b2dfdb
col_fall_below = #d42f28
col_macd = #ffffff
col_signal = #d42f28
col_mom = #fbc02d

// Calculating
fast_ma = sma_source ? sma(src1, fast_length) : ema(src1, fast_length)
slow_ma = sma_source ? sma(src1, slow_length) : ema(src1, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
mom = src2 - src2[len]


ma(s,l) => ema(s,l)
sema = ma( src1, fast_length )
lema = ma( src1, slow_length )
i1 = sema + mom + ma( src1 - sema, fast_length )
i2 = lema + mom + ma( src1 - lema, slow_length )
macdl = i1 - i2
macd1 =sema - lema

delta = mom - macd1

// Strategy
    // Backtest
FromYear  = input(defval = 2001, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

    // Function exampel
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

// Plot
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
plot(hist, title="Histogram", style=plot.style_histogram, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
plot(mom, color=col_mom, title="Mom")