Stratégie de trading MACD à double conversion et sans décalage - Trading haute fréquence basé sur la capture de tendance à court terme

MACD EMA SMA
Date de création: 2024-05-24 18:14:37 Dernière modification: 2024-05-24 18:14:37
Copier: 0 Nombre de clics: 1177
1
Suivre
1617
Abonnés

Stratégie de trading MACD à double conversion et sans décalage - Trading haute fréquence basé sur la capture de tendance à court terme

Aperçu

La stratégie est basée sur la version zéro retard de l’indicateur MACD, qui permet de réaliser des transactions à haute fréquence en répondant rapidement aux variations de prix, en capturant les tendances à court terme. La stratégie utilise deux moyennes mobiles de différentes périodes (la moyenne rapide et la moyenne lente) pour construire l’indicateur MACD et introduire un algorithme zéro retard, éliminant le retard entre l’indicateur et le prix et améliorant la rapidité du signal.

Principe de stratégie

  1. Calculez l’EMA (moyenne mobile indicielle) ou SMA (moyenne mobile simple) de la ligne rapide (default 12 cycles) et de la ligne lente (default 26 cycles).
  2. L’algorithme de zéro décalage est utilisé pour effectuer un doublement des lignes rapides et lentes, éliminant ainsi le retard entre l’indicateur et le prix.
  3. La ligne MACD est constituée de la différence entre la ligne rapide et la ligne lente.
  4. La ligne de signal est constituée d’EMA (default 9 cycles) ou SMA de la ligne MACD.
  5. La colonne MACD est constituée de la différence entre les lignes MACD et les lignes de signaux. Les lignes bleues représentent les valeurs positives et les lignes rouges les valeurs négatives.
  6. Le MACD crée un signal d’achat lorsque la ligne traverse la ligne du signal de bas en haut et que le point de traversée est situé en dessous de l’axe zéro (point bleu).
  7. Un signal de vente est généré lorsque la ligne MACD traverse la ligne de signal de haut en bas et que le point de traversée est situé au-dessus de l’axe zéro (point rouge).
  8. La stratégie consiste à commander automatiquement en fonction des signaux d’achat et de vente et à déclencher les alertes correspondantes.

Analyse des avantages

  1. L’algorithme zéro retard élimine efficacement les délais entre l’indicateur et le prix, ce qui améliore la rapidité et l’exactitude du signal.
  2. Les doubles moyennes mobiles sont conçues pour mieux capturer les tendances du marché et s’adapter à différents environnements de marché.
  3. Le graphique en forme de colonne du MACD reflète intuitivement le rapport de force entre les variables et aide à la prise de décision.
  4. La fonctionnalité de commande automatique et d’alerte permet aux traders de saisir les opportunités de trading en temps opportun et d’améliorer l’efficacité des transactions.

Analyse des risques

  1. Dans les marchés en crise, des signaux croisés fréquents peuvent entraîner des sur-échanges et des pertes.
  2. Une mauvaise configuration des paramètres peut entraîner une distorsion du signal et affecter les performances de la stratégie.
  3. Les stratégies qui reposent sur des données historiques sont moins adaptées aux événements soudains et aux événements Black Swan.

Direction d’optimisation

  1. L’introduction d’indicateurs de confirmation de tendance, tels que l’ADX, a permis de filtrer les fausses signaux dans les marchés sur le vibreur.
  2. Optimiser les paramètres pour trouver la combinaison optimale de cycles de ligne rapide et de cycles de ligne de signal afin d’améliorer la stabilité de la stratégie.
  3. Construire des modèles multifonctionnels, combinés à d’autres indicateurs techniques ou fondamentaux, afin d’améliorer le rendement après ajustement des risques de la stratégie.
  4. La mise en place de mécanismes de stop-loss et de stop-loss pour contrôler les risques liés à une seule transaction.

Résumer

La stratégie de négociation MACD double conversion à zéro décalage permet de négocier à haute fréquence en répondant rapidement aux variations de prix, en capturant les tendances à court terme. La conception de l’algorithme à zéro décalage et de la double moyenne mobile améliore la rapidité et l’exactitude du signal. La stratégie présente certains avantages, tels que l’intuition du signal, la facilité d’utilisation, etc., mais présente également des risques d’excès de trading, de sensibilité aux paramètres, etc.

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

//@version=4
strategy("BNM INTRADAY SETUP MACD 3M - Version 1.2", shorttitle="Zero Lag MACD Enhanced 1.2")
source = close

fastLength = input(12, title="Fast MM period", minval=1)
slowLength = input(26,title="Slow MM period", minval=1)
signalLength =input(9,title="Signal MM period", minval=1)
useEma = input(true, title="Use EMA (otherwise SMA)")
useOldAlgo = input(false, title="Use Glaz algo (otherwise 'real' original zero lag)")
showDots = input(true, title="Show symbols to indicate crossing")
dotsDistance = input(1.5, title="Symbols distance factor", minval=0.1)

// Fast line
ma1 = useEma ? ema(source, fastLength) : sma(source, fastLength) 
ma2 = useEma ? ema(ma1, fastLength) : sma(ma1, fastLength) 
zerolagEMA = ((2 * ma1) - ma2)

// Slow line
mas1 = useEma ? ema(source, slowLength) : sma(source, slowLength)
mas2 = useEma ? ema(mas1, slowLength) : sma(mas1, slowLength)
zerolagslowMA = ((2 * mas1) - mas2)

// MACD line
ZeroLagMACD = zerolagEMA - zerolagslowMA 

// Signal line
emasig1 = ema(ZeroLagMACD, signalLength)
emasig2 = ema(emasig1, signalLength)
signal = useOldAlgo ? sma(ZeroLagMACD, signalLength) : (2 * emasig1) - emasig2

hist = ZeroLagMACD - signal

upHist = (hist > 0) ? hist : 0
downHist = (hist <= 0) ? hist : 0

p1 = plot(upHist, color=color.blue, transp=40, style=plot.style_columns, title='Positive delta')
p2 = plot(downHist, color=color.red, transp=40, style=plot.style_columns, title='Negative delta') 

zeroLine = plot(ZeroLagMACD, color=color.red, transp=0, linewidth=2, title='MACD line')
signalLine = plot(signal, color=color.blue, transp=0, linewidth=2, title='Signal')

ribbonDiff = hist > 0 ? color.blue : color.red
fill(zeroLine, signalLine, color=ribbonDiff)

circleYPosition = signal * dotsDistance
ribbonDiff2 = hist > 0 ? color.blue : color.red

// Generate dots for cross signals
plot(showDots and cross(ZeroLagMACD, signal) ? circleYPosition : na, style=plot.style_circles, linewidth=4, color=ribbonDiff2, title='Dots')

// Alerts for buy and sell signals
buySignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.blue) and (ZeroLagMACD < 0)
sellSignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.red) and (ZeroLagMACD > 0)

// Use 'strategy.entry' for placing orders in strategy context
if (buySignal)
    strategy.entry("Buy", strategy.long)
    alert("Buy Signal: Blue dot below zero line", alert.freq_once_per_bar_close)

if (sellSignal)
    strategy.entry("Sell", strategy.short)
    alert("Sell Signal: Red dot above zero line", alert.freq_once_per_bar_close)