Supertrend double avec stratégie de négociation combinée MACD

Auteur:ChaoZhang est là., Date: le 26 septembre 2023 à 17h45
Les étiquettes:

Résumé

La stratégie de négociation en combinaison double SuperTrend avec MACD intègre deux indicateurs de suivi de tendance (SuperTrend 1 et SuperTrend 2) avec un oscillateur de dynamique (MACD) pour fournir une approche systématique de la négociation sans prise de décision discrétionnaire.

Principaux avantages de cette stratégie:

  • Validation de la tendance double - L'utilisation de deux indicateurs de tendance supérieure avec des périodes et des facteurs ATR différents pour confirmer la direction de la tendance minimise les faux signaux.

  • Confirmation de l'élan - L'histogramme MACD agit comme un filtre d'élan pour valider les entrées et les sorties.

  • Objectif Règles d'entrée et de sortie - La stratégie génère des signaux d'achat et de vente clairs basés sur la combinaison de tendance et de dynamique.

  • Gestion automatisée des transactions - Les paramètres intégrés pour les commissions, les slippages et le capital initial automatisent le processus d'exécution des transactions.

  • Personnalisabilité - Tous les paramètres peuvent être facilement personnalisés pour répondre aux besoins spécifiques du commerce et aux conditions changeantes du marché.

Comment fonctionne- t- il?

La stratégie fonctionne selon un ensemble de règles définies, en se concentrant principalement sur la direction de tendance confirmée par le double supertrend et l'élan indiqué par l'histogramme MACD.

Règles d'entrée

  • Entrée longue: les deux SuperTrends sont haussiers et l'histogramme MACD est supérieur à zéro.

  • Entrée courte: les deux SuperTrends baissiers et l'histogramme MACD sous zéro.

Règles de sortie

  • Exit Long: Soit le SuperTrend devient baissier, soit l'histogramme MACD tombe en dessous de zéro.

  • Sortie courte: soit SuperTrend devient haussier, soit l'histogramme MACD dépasse zéro.

Gestion du commerce

  • Taux de commission fixe et réglages de glissement.

  • Gestion des risques pour prévenir une surexposition.

Direction du commerce

La stratégie permet de négocier à la fois sur les marchés haussiers et baissiers.

Utilisation

  • Il est préférable de l'appliquer dans les délais où la tendance est évidente.

  • Les utilisateurs peuvent personnaliser les paramètres SuperTrend et MACD.

Par défaut

  • SuperTrend 1 Période ATR: 10

  • SuperTrend 1 Facteur: 3,0

  • SuperTrend 2 Période ATR: 20

  • SuperTrend 2 Facteur: 5.0

  • Longueur rapide du MACD: 12

  • Le MACD est lent: 26

  • Lissage du signal MACD: 9

  • Commissions: 0,1%

  • Dérapage: 1 point

  • Direction: Les deux

Les paramètres par défaut offrent une approche équilibrée mais peuvent être personnalisés.

Les avantages

Les principaux avantages de cette stratégie:

  1. La validation de la double tendance minimise les faux signaux

L'utilisation de deux indicateurs SuperTrend réduit considérablement les faux signaux par rapport aux stratégies à indicateur unique.

  1. Le filtre MACD améliore la précision

L'histogramme MACD filtre les signaux de trading moins idéaux, améliorant ainsi la précision d'entrée.

  1. Contrôle efficace du prélèvement

La combinaison de deux indicateurs de tendance permet des sorties rapides lorsque la tendance change, ce qui aide à contrôler les retraits.

  1. Automatisation élevée, aucune discrétion nécessaire

Les règles d'entrée et de sortie bien définies éliminent les interprétations subjectives et les erreurs humaines.

  1. hautement personnalisable pour une plus large applicabilité

Les paramètres réglables rendent cette stratégie robuste pour différents instruments et préférences de négociation.

Risques et optimisation

Les risques potentiels sont les suivants:

  1. Difficulté de transition dynamique des tendances

Des renversements de tendance fréquents peuvent être difficiles pour la configuration du double indicateur de tendance.

  1. Contrôle limité du prélèvement en cas de fortes tendances

Le stop loss peut être retardé par des mouvements de tendance forts, ce qui entraîne des retraits plus importants.

  1. Incapacité à réagir à des événements soudains

Il ne peut pas s'adapter rapidement aux événements du cygne noir, ce qui augmente les risques de retrait.

Possibilités d'optimisation:

  1. Paramètres d'accord précis pour différents instruments.

  2. Ajoutez des mécanismes de stop loss comme les trailing stops pour contrôler davantage les retraits.

  3. Incorporer d'autres indicateurs pour identifier les événements soudains et réduire les prélèvements.

Conclusion

En résumé, la stratégie de combinaison du double supertrend et du MACD combine les atouts du suivi des tendances et de l'analyse de l'élan. Avec des règles claires et un haut degré d'automatisation, elle peut filtrer efficacement le bruit et fournir une forte utilité pratique. Mais le contrôle du retrait et l'optimisation des paramètres doivent être abordés. Dans l'ensemble, c'est l'un des meilleurs exemples d'une stratégie de trading de tendance systématique.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

//@version=5
// Define the strategy settings
// strategy("Dual-Supertrend with MACD - Strategy [presentTrading]", overlay=true, precision=3, default_qty_type=strategy.cash, 
//  commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
//   currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Trading Direction Dropdown
tradeDirection = input.string("both", "Trading Direction", options=["long", "short", "both"])

// MACD Inputs
fast_length = input(12, "Fast Length")
slow_length = input(26, "Slow Length")
signal_length = input(9, "Signal Smoothing")
sma_source = input.string("EMA", "Oscillator MA Type", options=["SMA", "EMA"])
sma_signal = input.string("EMA", "Signal Line MA Type", options=["SMA", "EMA"])


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

// Input Parameters for Supertrend 1
atrPeriod1 = input(10, "ATR Length for Supertrend 1")
factor1 = input.float(3.0, "Factor for Supertrend 1", step=0.01)

// Supertrend Calculation for 1
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)

// Input Parameters for Supertrend 2
atrPeriod2 = input(20, "ATR Length for Supertrend 2")
factor2 = input.float(5.0, "Factor for Supertrend 2", step=0.01)

// Supertrend Calculation for 2
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)

// Combined Conditions
isBullish = direction1 < 0 and direction2 < 0 and hist > 0
isBearish = direction1 > 0 and direction2 > 0 and hist < 0
exitLong = direction1 > 0 or direction2 > 0 or hist < 0
exitShort = direction1 < 0 or direction2 < 0 or hist > 0

// Strategy Entry and Exit based on Trading Direction
if (tradeDirection == "both" or tradeDirection == "long")
    strategy.entry("Buy", strategy.long, when=isBullish)
    strategy.close("Buy", when=exitLong)

if (tradeDirection == "both" or tradeDirection == "short")
    strategy.entry("Sell", strategy.short, when=isBearish)
    strategy.close("Sell", when=exitShort)

bodyMiddle1 = plot((open + close) / 2, display=display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend1 = plot(direction1 < 0? na : supertrend1, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle1, upTrend1, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle1, downTrend1, color.new(color.red, 90), fillgaps=false)

bodyMiddle2 = plot((open + close) / 2, display=display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend2 = plot(direction2 < 0? na : supertrend2, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle2, upTrend2, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle2, downTrend2, color.new(color.red, 90), fillgaps=false)

Plus de