Les ressources ont été chargées... Je charge...

Stratégie de négociation à double croisement MACD à retard zéro - négociation à haute fréquence basée sur la capture de tendance à court terme

Auteur:ChaoZhang est là., Date: 2024-05-24 18h14 et 37 min
Les étiquettes:Le MACDLe taux d'intérêtSMA

img

Résumé

Cette stratégie est basée sur la version à décalage zéro de l'indicateur MACD (Moving Average Convergence Divergence), qui capture les tendances à court terme en répondant rapidement aux changements de prix, permettant un trading à haute fréquence.

Principe de stratégie

  1. Calculer l'EMA (moyenne mobile exponentielle) ou la SMA (moyenne mobile simple) de la ligne rapide (défaut 12 périodes) et de la ligne lente (défaut 26 périodes).
  2. Utilisez l'algorithme de décalage zéro pour doubler les lignes rapides et lentes, éliminant le délai entre l'indicateur et le prix.
  3. La ligne MACD est formée par la différence entre la ligne rapide et la ligne lente.
  4. La ligne de signal est formée par l'EMA (période par défaut 9) ou SMA de la ligne MACD.
  5. L'histogramme MACD est formé par la différence entre la ligne MACD et la ligne de signal, le bleu représentant les valeurs positives et le rouge les valeurs négatives.
  6. Lorsque la ligne MACD traverse la ligne de signal depuis le bas et que le point de croisement est situé sous l'axe zéro, un signal d'achat (point bleu) est généré.
  7. Lorsque la ligne MACD traverse la ligne de signal d'en haut et que le point de croisement est au-dessus de l'axe zéro, un signal de vente (point rouge) est généré.
  8. La stratégie place automatiquement des ordres en fonction des signaux d'achat et de vente et déclenche les alertes correspondantes.

Analyse des avantages

  1. L'algorithme à décalage zéro élimine efficacement le délai entre l'indicateur et le prix, améliorant ainsi la rapidité et l'exactitude des signaux.
  2. La conception de moyennes mobiles doubles permet de mieux saisir les tendances du marché et de s'adapter à différents environnements de marché.
  3. L'histogramme MACD reflète intuitivement la comparaison des forces haussières et baissières, aidant ainsi à prendre des décisions commerciales.
  4. Les fonctions de placement automatique des ordres et d'alerte permettent aux traders de saisir rapidement les opportunités de négociation, ce qui améliore l'efficacité des transactions.

Analyse des risques

  1. Dans les marchés volatils, des signaux croisés fréquents peuvent entraîner des surtrades et des pertes.
  2. Des paramètres mal réglés peuvent provoquer une distorsion du signal et affecter les performances de la stratégie.
  3. La stratégie repose sur des données historiques pour les calculs et a une faible adaptabilité aux événements soudains et aux événements du cygne noir.

Direction de l'optimisation

  1. Mettre en place des indicateurs de confirmation de tendance, tels que l'ADX, pour filtrer les faux signaux sur les marchés volatils.
  2. Optimiser les paramètres pour trouver la meilleure combinaison de périodes de ligne rapide et lente et de périodes de ligne de signal, améliorant la stabilité de la stratégie.
  3. Combiner d'autres indicateurs techniques ou facteurs fondamentaux pour construire un modèle multifactoriel, améliorant les rendements ajustés au risque de la stratégie.
  4. Mettre en place des mécanismes d'arrêt des pertes et de prise de bénéfices pour contrôler le risque de transaction unique.

Résumé

La stratégie de trading MACD à double croisement Zero Lag permet de réaliser des transactions à haute fréquence en répondant rapidement aux changements de prix et en capturant les tendances à court terme. L'algorithme à zéro retard et la conception de moyenne mobile double améliorent la rapidité et l'exactitude des signaux. La stratégie présente certains avantages, tels que des signaux intuitifs et un fonctionnement pratique, mais elle comporte également des risques tels que le surtrading et la sensibilité des paramètres.


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


Relationnée

Plus de