Stratégie de croisement MACD

EMA MA
Date de création: 2024-04-18 17:56:23 Dernière modification: 2024-04-18 17:56:23
Copier: 0 Nombre de clics: 716
1
Suivre
1617
Abonnés

Stratégie de croisement MACD

Aperçu

La stratégie utilise deux moyennes mobiles indicielles de deux périodes différentes (EMA) pour la croisée, générant un signal d’achat lorsque l’EMA rapide traverse l’EMA lente de haut en bas et un signal de vente lorsque l’EMA rapide traverse l’EMA lente de haut en bas. La stratégie peut être appliquée à divers instruments financiers et périodes de temps, par exemple, l’or est le plus efficace sur un cycle de 2 heures, le bitcoin est le plus efficace sur un graphique du jour.

Principe de stratégie

  1. Calculer les EMA rapides (la période par défaut est de 12) et les EMA lentes (la période par défaut est de 26).
  2. Définition des zones à plusieurs têtes ((EMA rapide au-dessus de l’EMA lente et prix au-dessus de l’EMA rapide) et des zones à tête vide ((EMA rapide au-dessous de l’EMA lente et prix au-dessous de l’EMA rapide).
  3. Achat lors de la conversion d’une zone de tête vide à une zone de tête multiple et vente lors de la conversion d’une zone de tête multiple à une zone de tête vide.
  4. Les zones à plusieurs têtes et les zones à tête vide sont indiquées en vert et rouge sur le graphique, les signaux d’achat et de vente sont indiqués par des flèches.

Avantages stratégiques

  1. C’est facile à comprendre et adapté aux débutants.
  2. Il s’agit d’une plateforme très polyvalente qui peut être utilisée pour différents instruments financiers et périodes.
  3. Le système de suivi des tendances est puissant et permet de saisir les tendances à moyen et long terme.
  4. Les paramètres sont réglables pour une plus grande flexibilité.

Risque stratégique

  1. Il est facile de faire des erreurs de signalisation dans les marchés en crise, ce qui peut entraîner des pertes.
  2. La réaction est plus lente lors d’une inversion de tendance, ce qui peut entraîner un certain glissement.
  3. Une mauvaise sélection de paramètres peut affecter l’efficacité de la stratégie.

Orientation de l’optimisation de la stratégie

  1. Ajouter des filtres de tendance, par exemple en ne négociant que lorsque l’ADX est supérieur à une valeur donnée, afin de réduire les pertes en cas de choc.
  2. Optimiser le timing des sorties, par exemple en utilisant l’ATR pour décider d’arrêter le stop loss et réduire les pertes individuelles.
  3. Optimiser les paramètres pour trouver la meilleure combinaison de paramètres, améliorer la stabilité et la rentabilité.
  4. La précision du signal est améliorée en combinaison avec d’autres indicateurs de jugement, tels que le MACD, le RSI, etc.

Résumer

La stratégie de croisement MACD est une stratégie simple basée sur le suivi de la tendance. Elle a pour avantage d’être simple et pratique, d’avoir un large éventail d’applications, et pour inconvénient d’avoir du mal à saisir les virages de tendance et à choisir des paramètres difficiles. La performance de la stratégie peut être améliorée par le filtrage de la tendance, l’optimisation des sorties, la sélection des paramètres et la combinaison d’autres indicateurs.

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

//@version=5
strategy('Advance EMA Crossover Strategy', overlay=true, precision=6)
//****************************************************************************//
// CDC Action Zone is based on a simple EMA crossover 
// between [default] EMA12 and EMA26
// The zones are defined by the relative position of 
// price in relation to the two EMA lines
// Different zones can be use to activate / deactivate 
// other trading strategies
// The strategy can also be used on its own with 
// acceptable results, buy on the first green candle
// and sell on the first red candle
//****************************************************************************//
// Define User Input Variables

xsrc = input(title='Source Data', defval=close)
xprd1 = input(title='Fast EMA period', defval=12)
xprd2 = input(title='Slow EMA period', defval=26)
xsmooth = input(title='Smoothing period (1 = no smoothing)', defval=1)
fillSW = input(title='Paint Bar Colors', defval=true)
fastSW = input(title='Show fast moving average line', defval=true)
slowSW = input(title='Show slow moving average line', defval=true)
plotSigsw = input(title='Plot Buy/Sell Signals?', defval=true)

//****************************************************************************//
//Calculate Indicators

xPrice = ta.ema(xsrc, xsmooth)

FastMA = ta.ema(xPrice, xprd1)
SlowMA = ta.ema(xPrice, xprd2)

//****************************************************************************//
// Define Color Zones and Conditions

BullZone = FastMA > SlowMA and xPrice > FastMA  // Bullish Zone
BearZone = FastMA < SlowMA and xPrice < FastMA  // Bearish Zone

//****************************************************************************//
// Strategy Entry and Exit Conditions

if (BullZone and not BullZone[1])
    strategy.entry("Buy", strategy.long)  // Buy on the transition into BullZone

if (BearZone and not BearZone[1])
    strategy.close("Buy")  // Sell on the transition into BearZone

//****************************************************************************//
// Display color on chart

plotcolor = BullZone ? color.green : BearZone ? color.red : color.gray
barcolor(color=fillSW ? plotcolor : na)

//****************************************************************************//
// Plot Fast and Slow Moving Averages

plot(fastSW ? FastMA : na, color=color.red, title="Fast EMA", linewidth=2)
plot(slowSW ? SlowMA : na, color=color.blue, title="Slow EMA", linewidth=2)

//****************************************************************************//
// Plot Buy and Sell Signals

plotshape(series=plotSigsw and BullZone and not BullZone[1], location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=plotSigsw and BearZone and not BearZone[1], location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")

//****************************************************************************//