Système de stratégie de croisement de bandes moyennes mobiles et MACD sur plusieurs périodes

MA EMA MACD SMA VWMA WMA SMMA RMA
Date de création: 2025-02-21 10:51:25 Dernière modification: 2025-02-21 10:51:25
Copier: 1 Nombre de clics: 403
2
Suivre
319
Abonnés

Système de stratégie de croisement de bandes moyennes mobiles et MACD sur plusieurs périodes Système de stratégie de croisement de bandes moyennes mobiles et MACD sur plusieurs périodes

Aperçu

Cette stratégie est un système de négociation qui combine des bandes de moyennes mobiles multi-périodiques et des indicateurs MACD. La stratégie est principalement utilisée pour déterminer la tendance du marché et le moment de la négociation par la croisée des moyennes mobiles à court et à long terme et des signaux de l’indicateur MACD.

Principe de stratégie

La logique centrale de la stratégie comprend trois parties principales: le système de bande de moyenne mobile, le système d’indicateurs MACD et le mécanisme de réinitialisation des transactions intradays. La bande de moyenne mobile est composée de deux périodes différentes (les 9 et 21) de la même ligne. Plusieurs types de ligne moyenne peuvent être choisis, notamment SMA, EMA, SMMA, WMA et VWMA. Le système MACD utilise le paramètre standard 12/26/9 pour déterminer le mouvement de la tendance à l’intérieur des lignes à travers les signaux de différence des lignes rapides et lentes, ainsi que les lignes.

Avantages stratégiques

  1. Confirmation du signal à double fiabilité: la combinaison de suivi de tendance et d’indicateurs de dynamique réduit considérablement le risque de faux signaux
  2. Configuration de paramètres flexible: prise en charge de plusieurs types de moyennes mobiles qui peuvent être optimisées en fonction de différentes caractéristiques du marché
  3. Contrôle des risques: un mécanisme de réinitialisation des transactions sur la journée pour éviter les risques du jour au lendemain
  4. L’effet visuel est remarquable: des marqueurs de signaux d’achat et de vente clairs et un affichage à bande uniforme sont intégrés pour faciliter les décisions de négociation

Risque stratégique

  1. Retard dans le retournement de tendance: la réaction peut être plus lente lorsque le marché évolue rapidement en raison de l’utilisation d’un système homogène
  2. Les marchés en tremblement ne s’appliquent pas: les faux signaux peuvent être fréquents dans les marchés en tremblement horizontal
  3. Difficulté d’optimisation des paramètres: les paramètres optimaux peuvent varier considérablement selon les environnements de marché
  4. Effets du retard d’exécution: dans les marchés très volatils, les signaux confirment qu’il peut y avoir une plus grande différence de prix dans l’exécution réelle

Orientation de l’optimisation de la stratégie

  1. Introduction d’un filtre à oscillation: il est recommandé d’ajouter l’ATR ou un indicateur d’oscillation pour ajuster la valeur de seuil de déclenchement du signal dans un environnement à forte oscillation
  2. Optimisation des mécanismes de confirmation des signaux: il est possible d’envisager d’augmenter la confirmation de la quantité ou la confirmation de la forme des prix pour améliorer la fiabilité des signaux
  3. Améliorer la gestion des risques: ajouter des objectifs de stop-loss et de profit dynamiques pour améliorer le rapport risque/bénéfice de la stratégie
  4. Adaptation aux conditions du marché: paramètres peuvent être ajustés en fonction de la dynamique des différentes conditions du marché, ce qui améliore l’adaptabilité de la stratégie

Résumer

Cette stratégie, combinée à des bandes homogènes et à des indicateurs MACD, permet de construire un système de négociation relativement complet. Bien qu’il existe un certain risque de retard, la stratégie peut avoir un bon effet dans un marché tendanciel grâce à une optimisation raisonnable des paramètres et une gestion des risques. Il est recommandé aux traders de faire un retour d’expérience suffisant avant de l’utiliser sur le marché et d’ajuster les paramètres en fonction des caractéristiques spécifiques du marché.

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

//@version=6
strategy("Daily MA Ribbon + MACD Crossover with Buy/Sell Signals", overlay=true)

// === Daily Reset Logic ===
var bool newDay = false  // Initialize newDay as a boolean variable
newDay := bool(ta.change(time("D")))  // Cast the result of ta.change to boolean

// === Moving Average Ribbon ===
ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

// MA1 (Short-term MA)
show_ma1   = input(true, "MA №1", inline="MA #1")
ma1_type   = input.string("EMA", "", inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma1_source = input(close, "", inline="MA #1")
ma1_length = input.int(9, "", inline="MA #1", minval=1)  // Short-term MA (e.g., 9-period)
ma1_color  = input(color.blue, "", inline="MA #1")
ma1 = ma(ma1_source, ma1_length, ma1_type)
plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1")

// MA2 (Long-term MA)
show_ma2   = input(true, "MA №2", inline="MA #2")
ma2_type   = input.string("EMA", "", inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma2_source = input(close, "", inline="MA #2")
ma2_length = input.int(21, "", inline="MA #2", minval=1)  // Long-term MA (e.g., 21-period)
ma2_color  = input(color.red, "", inline="MA #2")
ma2 = ma(ma2_source, ma2_length, ma2_type)
plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2")

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

// Calculate MACD
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

// Plot MACD
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)

// === Buy/Sell Signal Logic ===
// Condition 1: MA1 (Short-term) crosses above MA2 (Long-term)
ma_crossover = ta.crossover(ma1, ma2)

// Condition 2: MACD line crosses above Signal line
macd_crossover = ta.crossover(macd, signal)

// Buy Signal: Both conditions must be true
buy_signal = ma_crossover and macd_crossover

// Sell Signal: MA1 crosses below MA2 or MACD crosses below Signal
sell_signal = ta.crossunder(ma1, ma2) or ta.crossunder(macd, signal)

// Reset signals at the start of each new day
if (newDay)
    buy_signal := false
    sell_signal := false

// Plot Buy/Sell Signals
plotshape(buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Strategy Entry/Exit
if (buy_signal)
    strategy.entry("Buy", strategy.long)

if (sell_signal)
    strategy.close("Buy", comment="Sell")