Stratégie de trading de suivi de tendance basée sur la confirmation des signaux multiples Granville et MACD

EMA MACD GC(Golden Cross) SL(Stop Loss) TP(Take Profit)
Date de création: 2025-02-20 11:38:15 Dernière modification: 2025-02-27 17:46:54
Copier: 2 Nombre de clics: 323
2
Suivre
319
Abonnés

Stratégie de trading de suivi de tendance basée sur la confirmation des signaux multiples Granville et MACD Stratégie de trading de suivi de tendance basée sur la confirmation des signaux multiples Granville et MACD

Aperçu

Cette stratégie est un système de confirmation de trading multi-signaux qui combine la théorie de l’inversion de tendance de Granville avec l’indicateur MACD. L’idée centrale de la stratégie est de juger d’un potentiel renversement de tendance par la relation du prix à la ligne de parité et d’assurer la fiabilité de la transaction à l’aide de la vérification multi-signaux de l’indicateur MACD. Cette méthode permet non seulement d’identifier efficacement le point de départ d’une tendance, mais réduit également le risque de faux signaux grâce à un mécanisme de confirmation multiple.

Principe de stratégie

Le processus de mise en œuvre de la stratégie se divise en quatre étapes clés:

  1. Confirmation du signal d’inversion de Granville: la surveillance de la possibilité d’une reprise de la tendance est indiquée par une éventuelle hausse des prix au-dessous de la moyenne EMA.
  2. Première confirmation de la fourchette d’or du MACD: une deuxième confirmation de la reprise de la tendance, après l’apparition du signal de renversement de Granville, en attendant que l’indicateur MACD apparaisse.
  3. Validation de la rupture du MACD: confirmation du pic de la première rupture de la MACD, indiquant que la dynamique haussière continue de se renforcer.
  4. Le MACD repique une deuxième fois: il attend que le MACD repique après la rupture et passe à nouveau sur la ligne de signal, c’est-à-dire le signal d’entrée final.

Le paramètre de stop-loss est réglé sur la base de l’amplitude de la ligne K inversée, en utilisant une méthode d’ajustement dynamique. Le paramètre de stop-loss est réglé sur le point le plus bas de la ligne K inversée et le paramètre de stop-loss est réglé sur 1,618 fois l’amplitude de la ligne K inversée, ce qui est conforme au principe d’expansion de Fibonacci.

Avantages stratégiques

  1. Mécanisme de confirmation multiple: réduit considérablement le risque de faux signaux en combinant le comportement des prix, les indicateurs de tendance et les indicateurs de dynamique.
  2. Gestion dynamique des risques: mise en place d’un stop loss basé sur les fluctuations réelles du marché, rendant la gestion des risques plus adaptative.
  3. Vérification de la continuité des tendances: la confirmation de plusieurs signaux par le MACD améliore la précision de la capture des tendances de continuité.
  4. Adaptabilité: les paramètres de la stratégie peuvent être ajustés de manière optimale en fonction des différentes conditions du marché et des périodes de temps.

Risque stratégique

  1. Signal retardé: le mécanisme de confirmation multiple peut entraîner un retard relatif dans le temps d’entrée, affectant une partie des bénéfices potentiels.
  2. La performance du marché intermédiaire: dans le marché de la liquidation horizontale, de fréquentes fausses ruptures peuvent entraîner des arrêts de pertes.
  3. Une dépendance excessive à l’égard des indicateurs techniques: une analyse purement technique peut être inefficace en cas de fortes fluctuations de l’humeur du marché.
  4. Sensitivité des paramètres: les paramètres peuvent avoir besoin d’être ajustés fréquemment dans différents environnements de marché pour maintenir l’efficacité de la stratégie.

Orientation de l’optimisation de la stratégie

  1. Classification des environnements de marché: introduction d’indicateurs de volatilité, avec une configuration de paramètres différente selon les environnements de marché.
  2. Optimisation du temps d’entrée: il est envisageable d’augmenter la confirmation de la transaction lors du deuxième repiquage du MACD pour améliorer la fiabilité du signal.
  3. Le stop loss peut être ajusté en fonction de la dynamique des fluctuations du marché.
  4. Augmentation des facteurs d’émotion du marché: en combinant les indicateurs d’émotion du marché, modifier radicalement la stratégie en période d’extrême émotion.

Résumer

La stratégie a été construite en combinant la théorie classique de l’analyse technique et les méthodes modernes de négociation quantitative, pour construire un système de négociation relativement complet. Le mécanisme de confirmation de signaux multiples offre une meilleure fiabilité de la négociation, et la méthode de gestion dynamique des risques rend la stratégie bien adaptée. Bien qu’il existe certains problèmes de retard, la stratégie a une bonne valeur pratique et un bon potentiel de développement grâce à une optimisation continue et à un ajustement des paramètres.

Code source de la stratégie
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Granville + MACD Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ■ Parameter Settings
emaPeriod = input.int(20, "EMA Period for Granville", minval=1)
fastLen   = input.int(12, "MACD Fast Period", minval=1)
slowLen   = input.int(26, "MACD Slow Period", minval=1)
signalLen = input.int(9,  "MACD Signal Period", minval=1)

// ■ Calculate EMA (for Granville reversal detection)
ema_val = ta.ema(close, emaPeriod)

// ■ Granville Reversal Detection (e.g., price crosses above EMA from below)
granvilleReversal = ta.crossover(close, ema_val)

// ■ Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLen, slowLen, signalLen)

// ■ State management variables (to manage state transitions)
var bool   granvilleDone   = false    // Reversal bar confirmed flag
var float  granvilleLow    = na       // Low of the reversal bar (used for SL)
var float  granvilleRange  = na       // Range of the reversal bar (used for TP calculation)
var bool   macdGC_done     = false    // First MACD Golden Cross confirmed
var int    goldenCrossBar  = na       // Bar index of the first MACD Golden Cross
var float  initialMacdHigh = na       // MACD value at the Golden Cross (used for break detection)
var bool   breakoutDone    = false    // MACD line breaks the initial Golden Cross MACD value

// ■ (1) Granville Reversal Detection
if granvilleReversal
    granvilleDone  := true
    granvilleLow   := low             // Low of the reversal bar (SL)
    granvilleRange := high - low      // Range of the reversal bar (used for TP calculation)
    // Reset MACD-related states
    macdGC_done     := false
    breakoutDone    := false
    initialMacdHigh := na
    goldenCrossBar  := na

// ■ (2) MACD Golden Cross (first signal) detection
if granvilleDone and (not macdGC_done) and ta.crossover(macdLine, signalLine)
    macdGC_done    := true
    goldenCrossBar := bar_index
    initialMacdHigh:= macdLine

// ■ (3) Check if MACD line breaks the initial MACD value at the Golden Cross
if macdGC_done and (not breakoutDone) and (macdLine > initialMacdHigh)
    breakoutDone := true

// ■ (4) When MACD retests and crosses above the signal line again, it's the entry timing
// ※ Check for a crossover after the first Golden Cross bar
entryCondition = granvilleDone and macdGC_done and breakoutDone and (bar_index > goldenCrossBar) and ta.crossover(macdLine, signalLine)

// ■ TP and SL settings at entry
if entryCondition
    entryPrice = close
    tpPrice = entryPrice + granvilleRange * 1.618
    slPrice = granvilleLow
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry="Long", stop=slPrice, limit=tpPrice)
    // Reset states after entry (for the next entry)
    granvilleDone   := false
    macdGC_done     := false
    breakoutDone    := false
    initialMacdHigh := na
    goldenCrossBar  := na

// ■ Plotting (for reference)
// Display the EMA on the price chart (with fixed title)
plot(ema_val, color=color.orange, title="EMA (20)")

// Plot MACD and Signal in a separate window (with fixed titles)
plot(macdLine, color=color.blue, title="MACD")
plot(signalLine, color=color.red, title="Signal")