Stratégie de prédiction de croisement de volatilité dynamique MACD

MACD EMA SMA ROC
Date de création: 2024-11-27 14:54:02 Dernière modification: 2024-11-27 14:54:02
Copier: 0 Nombre de clics: 441
1
Suivre
1617
Abonnés

Stratégie de prédiction de croisement de volatilité dynamique MACD

Aperçu

Cette stratégie prend ses décisions de négociation en fonction des caractéristiques du changement de dynamique du MACD. Le cœur de la stratégie est de prédire les éventuelles fourches et les fourches mortes en observant les tendances du changement du histogramme du MACD. La stratégie ne se concentre pas uniquement sur les signaux de croisement du MACD traditionnel.

Principe de stratégie

La stratégie utilise une version améliorée du système d’indicateurs MACD, comprenant le calcul des différences entre les moyennes mobiles rapides (EMA12) et les moyennes mobiles lentes (EMA26), ainsi que des lignes de signal basées sur 2 cycles. La logique de négociation de base est basée sur les points clés suivants:

  1. Déterminer la dynamique de la tendance en calculant le taux de changement (hist_change) du diagramme à colonnes
  2. Lorsque le graphique de la colonne est négatif et présente une tendance à la hausse pendant trois cycles consécutifs, le préjugé peut donner lieu à un signal de fourchette, permettant une entrée plus rapide.
  3. Lorsque le graphique de la colonne est positif et présente une tendance à la baisse pendant trois cycles consécutifs, un signal de décalage peut être prédit et une sortie en position de zéro
  4. La stratégie a introduit un filtrage temporel, permettant de ne négocier que dans une période donnée.

Avantages stratégiques

  1. Signal prédictif: prévoir à l’avance les signaux de croisement possibles en observant les changements dynamiques du diagramme de colonnes, améliorant ainsi efficacement le timing d’entrée
  2. Contrôle des risques raisonnable: un frais de traitement de 0,1% et un coût de transaction de 3 points de glissement, adapté à l’environnement de transaction réel
  3. Flexibilité de la gestion des fonds: utilisez le pourcentage de la valeur totale des comptes pour gérer les positions et contrôler efficacement les risques
  4. L’effet visuel est excellent: des diagrammes en colonnes de différentes couleurs sont utilisés pour marquer les hauts et les bas, et des signaux de transaction sont indiqués par des flèches pour faciliter l’analyse

Risque stratégique

  1. Risque de fausse rupture: les signaux de fausse rupture peuvent apparaître fréquemment dans les marchés de volatilité
  2. Risque de retard: malgré l’utilisation d’un mécanisme de préjugé, le MACD lui-même présente un certain retard
  3. Dépendance sur les conditions du marché: la stratégie est plus efficace dans les marchés où la tendance est évidente, mais peut être moins efficace dans les marchés instables
  4. Sensitivité des paramètres: les paramètres de cycle de ligne rapide et lente ont un impact significatif sur les performances de la stratégie

Orientation de l’optimisation de la stratégie

  1. Introduction du filtrage des conditions de marché: des indicateurs de jugement de tendance peuvent être ajoutés et différents paramètres de transaction peuvent être utilisés dans différents environnements de marché
  2. Optimisation de la gestion des positions: le ratio de détention peut être ajusté en fonction de l’intensité du signal
  3. Amélioration du mécanisme d’arrêt des pertes: ajout d’un arrêt de suivi ou d’un arrêt fixe pour contrôler les retraits
  4. Augmentation du mécanisme de confirmation du signal: vérification croisée avec d’autres indicateurs techniques pour améliorer la fiabilité du signal
  5. Sélection de paramètres d’optimisation: la méthode des paramètres adaptatifs peut être utilisée pour ajuster les paramètres de l’indicateur en fonction de la dynamique des conditions du marché

Résumer

La stratégie utilise de manière innovante les caractéristiques de changement dynamique du diagramme de la colonne MACD pour améliorer et optimiser le système de négociation MACD traditionnel. Le mécanisme de préjugé de la stratégie permet de fournir des signaux d’entrée plus tôt, tandis que des conditions de négociation strictes et des mesures de contrôle des risques assurent la stabilité de la stratégie.

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

//@version=5
strategy(title="Demo GPT - Moving Average Convergence Divergence", shorttitle="MACD", commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=2)  // Set smoothing line to 2
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Date inputs
start_date = input(title="Start Date", defval=timestamp("2018-01-01T00:00:00"))
end_date = input(title="End Date", defval=timestamp("2069-12-31T23:59:59"))

// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Strategy logic
isInDateRange = true

// Calculate the rate of change of the histogram
hist_change = hist - hist[1]

// Anticipate a bullish crossover: histogram is negative, increasing, and approaching zero
anticipate_long = isInDateRange and hist < 0 and hist_change > 0 and hist > hist[1] and hist > hist[2]

// Anticipate an exit (bearish crossover): histogram is positive, decreasing, and approaching zero
anticipate_exit = isInDateRange and hist > 0 and hist_change < 0 and hist < hist[1] and hist < hist[2]

if anticipate_long
    strategy.entry("Long", strategy.long)

if anticipate_exit
    strategy.close("Long")

// Plotting
hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist > hist[1] ? #26A69A : #B2DFDB) : (hist < hist[1] ? #FF5252 : #FFCDD2)))
plot(macd, title="MACD", color=#2962FF)
plot(signal, title="Signal", color=#FF6D00)

// Plotting arrows when anticipating the crossover
plotshape(anticipate_long, title="Long +1", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.tiny, text="Long +1")
plotshape(anticipate_exit, title="Short -1", location=location.abovebar, color=color.red, style=shape.arrowdown, size=size.tiny, text="Short -1")