Stratégie de rupture d'oscillation de bande stochastique MACD


Date de création: 2023-12-11 11:48:27 Dernière modification: 2023-12-11 11:48:27
Copier: 0 Nombre de clics: 885
1
Suivre
1621
Abonnés

Stratégie de rupture d’oscillation de bande stochastique MACD

Aperçu

La stratégie MACD Stochastics Oscillation Breakout Strategy est une stratégie de trading quantitative qui combine l’indicateur MACD et l’indicateur Stochastics. Cette stratégie tente d’identifier la direction de la tendance des prix des actions et d’entrer en position lorsque les prix se démarquent de la zone de choc.

Lors de l’entrée en position, la stratégie prend en compte les signaux des deux indicateurs MACD et Stochastics pour améliorer la qualité des entrées. De plus, la stratégie prévoit des points d’arrêt et d’arrêt-stop pour contrôler efficacement le risque.

Principe de stratégie

La stratégie de rupture de la zone de choc des stochastiques MACD est principalement basée sur les principes suivants:

  1. L’indicateur MACD est efficace pour identifier la direction et la force des tendances des prix des actions.
  2. L’indicateur stochastique permet d’identifier si une action est en survente ou en survente.
  3. Lorsque les cours des actions oscillent pendant une longue période, il est probable qu’ils franchissent la fourchette précédente, générant une tendance plus directionnelle.
  4. Les signaux combinés des indicateurs MACD et Stochastics permettent une entrée en temps opportun dans les zones de choc de la zone de rupture des actions, améliorant la qualité des entrées

Plus précisément, la stratégie utilise le croisement de la ligne DIFF et de la ligne DEA de l’indicateur MACD comme signal pour juger de la direction de la tendance des prix. Lorsqu’un DIFF dépasse la DEA vers le haut, il génère un signal de multiples têtes, qui à son tour génère un signal de tête vide.

Par ailleurs, la ligne K de Stochastics qui croise la ligne D vers le haut ou vers le bas à proximité des zones de surachat et de survente (les zones 30 et 70 par défaut) génère également un signal de transaction.

La stratégie choisit d’entrer lorsque le MACD et le Stochastics donnent des signaux de synchronisation simultanément. C’est à ce moment-là que le cours de l’action est susceptible de produire une plus grande rupture.

Après l’entrée, la stratégie définit des points de rupture et des arrêts raisonnables. Un arrêt raisonnable permet de contrôler efficacement les pertes individuelles et un arrêt peut bloquer les bénéfices.

Analyse des avantages

Les avantages de la stratégie de rupture d’une onde de choc du MACD Stochastics sont les suivants:

  1. Une combinaison de plusieurs indicateurs pour améliorer la qualité du signal

Cette stratégie utilise simultanément les indicateurs MACD et Stochastics pour filtrer les faux signaux et améliorer la qualité des entrées.

  1. Le blogueur a écrit sur son blog:

Les stratégies sont conçues pour capturer les mouvements de rupture qui surviennent après une longue période de volatilité.

  1. Optimisation des mécanismes d’arrêt des dommages et de contrôle des risques

La stratégie est dotée d’un paramètre de stop-loss qui permet de contrôler raisonnablement les pertes individuelles et de bloquer les bénéfices en temps opportun.

Analyse des risques

Bien que la stratégie de rupture de la zone de choc du MACD Stochastics ait été soigneusement conçue, il existe un certain nombre de risques:

  1. Une occasion manquée

Il peut y avoir une fausse rupture avant la rupture du cours de l’action. Le mauvais moment d’entrée peut faire que l’entrée se transforme en un point d’entrée manqué.

  1. La percée est un échec

Bien que les préparatifs aient été bien préparés, il est toujours possible que la percée échoue. Dans ce cas, il y a des pertes.

  1. Paramètres optimisés incorrectement

Les paramètres de la stratégie ont une grande influence sur le résultat. Si les paramètres sont mal définis, il y a une grande remise.

Les risques ci-dessus peuvent être optimisés de la manière suivante:

  1. Combinaison avec d’autres indicateurs pour filtrer le signal

  2. L’intervention de l’homme assure une position de rupture

  3. Tests d’optimisation de paramètres à plusieurs groupes

Direction d’optimisation

Il y a encore de la place pour optimiser la stratégie de rupture de la zone de choc de la zone de Stochastics MACD:

  1. Optimiser les paramètres MACD pour trouver la meilleure combinaison de paramètres

  2. Optimiser les paramètres de Stochastics pour trouver la meilleure combinaison de paramètres

  3. Ajout d’autres combinaisons d’indicateurs, tels que KDJ, BOLL, etc., pour améliorer encore la qualité des entrées

  4. Tester différentes périodes de tenue de position et optimiser les stratégies de stop-loss

  5. Test de la variabilité des paramètres pour les différents indices de négociation

  6. Ajout d’algorithmes d’apprentissage automatique pour optimiser automatiquement les paramètres

Résumer

La stratégie de rupture des oscillations de la zone de choc des stochastiques MACD utilise les deux indicateurs MACD et Stochastics de manière intégrée, permettant une entrée de haute qualité lors d’une rupture des oscillations de la zone de choc. Elle est également complétée par une stratégie d’arrêt de perte efficace pour contrôler les risques.

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

//@version=5
strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true)
// Getting inputs
fast_length = input(title = "Fast Length", defval = 180)
slow_length = input(title = "Slow Length", defval = 390)
src = input(title = "Source", defval = close)
signal_length = input.int(title = "Signal Smoothing",  minval = 1, maxval = 500, defval = 135)
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"])
// 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

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

// plot(signal, title = "Signal", color = #FF6D00)

periodK = input.int(14, title="%K Length", minval=1)
smoothK = input.int(1, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
// plot(k, title="%K", color=#2962FF)
// plot(d, title="%D", color=#FF6D00)
// h0 = hline(80, "Upper Band", color=#787B86)
// hline(50, "Middle Band", color=color.new(#787B86, 50))
// h1 = hline(20, "Lower Band", color=#787B86)
// fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")


// Make inputs that set the take profit % (optional)
longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01

shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01

// Calculate trading conditions
enterLong  = macd>signal and ta.crossover(k,30)
enterShort = macd<signal and ta.crossunder(k,70)

// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Plot take profit values for confirmation
plot(strategy.position_size > 0 ? longExitPrice : na,
     color=color.green, style=plot.style_circles,
     linewidth=3, title="Long Take Profit")

plot(strategy.position_size < 0 ? shortExitPrice : na,
     color=color.red, style=plot.style_circles,
     linewidth=3, title="Short Take Profit")

// Submit entry orders
if enterLong
    strategy.entry("long", strategy.long)

if enterShort
    strategy.entry("short", strategy.short)

// STEP 3:
// Submit exit orders based on take profit price
if strategy.position_size > 0
    strategy.exit("long TP", limit=longExitPrice)

if strategy.position_size < 0
    strategy.exit("short TP", limit=shortExitPrice)