Stratégie de croisement des moyennes mobiles avec une inversion de l'élan oscillant

Auteur:ChaoZhang est là., Date: 21-12-2023 à 11 h 21 min 49 s
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de trading basée sur l'indicateur MACD. Elle génère l'indicateur MACD en calculant la différence entre les lignes moyennes mobiles rapides et lentes. Lorsque l'indicateur MACD passe de positif à négatif, un signal de vente est généré. Lorsque l'indicateur MACD passe de négatif à positif, un signal d'achat est généré.

Principe de stratégie

L'indicateur de base de cette stratégie est le MACD, qui se compose d'une moyenne mobile rapide, d'une moyenne mobile lente et d'une ligne de signal. Tout d'abord, l'EMA rapide avec une période de 12 jours et l'EMA lente avec une période de 26 jours sont calculés, puis la différence entre eux est calculée en tant qu'indicateur MACD. L'indicateur MACD reflète la tendance des changements de prix basée sur le concept de momentum. Lorsque l'EMA rapide augmente plus rapidement que l'EMA lente, cela indique une tendance à la hausse du prix, et le MACD est positif.

Pour filtrer le bruit, cette stratégie introduit un indicateur de ligne de signal pour lisser le MACD en plus. Le paramètre de la ligne de signal est réglé sur l'EMA de 9 jours. Enfin, la différence entre le MACD et la ligne de signal est calculée en tant que signaux de trading. Lorsque la différence passe de positive à négative, un signal de vente est généré. Lorsque la différence passe de négative à positive, un signal d'achat est généré.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. En utilisant l'indicateur MACD pour déterminer les points d'inversion des prix, il peut capturer les opportunités d'inversion à court terme des cours des actions.

  2. L'intégration d'une ligne de signal lissée filtre certains signaux commerciaux bruyants et réduit les faux signaux.

  3. Des paramètres flexibles permettent aux opérateurs d'ajuster les paramètres en fonction des conditions réelles du marché.

  4. La logique est simple et claire, facile à comprendre et à mettre en œuvre, adaptée à l'apprentissage et à la recherche des débutants.

  5. Des combinaisons diverses d'indicateurs et de signaux offrent une large marge d'optimisation de la stratégie et une forte évolutivité.

Analyse des risques

Cette stratégie comporte également certains risques:

  1. Le suivi des renversements à court terme peut augmenter la fréquence des transactions et les coûts de transaction.

  2. L'indicateur MACD peut facilement générer de faux signaux lors de hausses ou de baisses de prix unilatérales à long terme.

  3. La génération de signal retardée due à des paramètres incorrects peut manquer le meilleur point d'entrée.

  4. Cette stratégie relativement simple peut être sous-performante dans des conditions de marché complexes.

Pour atténuer les risques susmentionnés, des améliorations peuvent être apportées de la manière suivante:

  1. Optimiser les paramètres pour réduire la fréquence des transactions, par exemple augmenter le cycle des lignes de signal.

  2. Ajouter des conditions de filtrage pour éviter d'être pris au piège lors de tendances à long terme, par exemple combiner d'autres indicateurs de suivi pour déterminer les tendances à long et à court terme.

  3. Utilisez des ordres limites pour suivre les prix optimaux.

  4. Ajoutez plus de facteurs pour déterminer les conditions du marché et éviter de négocier sur des marchés anormaux.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

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

  2. Ajouter d'autres indicateurs auxiliaires pour déterminer les tendances à long et à court terme et éviter de négocier contre tendance, par exemple la moyenne mobile, les bandes de Bollinger, etc.

  3. Incorporer des indicateurs de volume de négociation tels que le volume sur le solde pour éviter les fausses ruptures.

  4. Définir des paramètres en fonction des différentes caractéristiques des stocks afin de rendre la stratégie plus adaptable.

  5. Ajouter des paramètres de stop loss et de prise de profit pour contrôler les niveaux de perte et de profit.

  6. Évaluer les facteurs de qualité des stocks tels que les indicateurs financiers, les changements de notation, etc. et sélectionner le stock optimal.

Ces mesures d'optimisation peuvent améliorer la stabilité, le taux de réussite et le niveau de profit de la stratégie.

Résumé

Il s'agit d'une stratégie de trading d'inversion à court terme typique. Il utilise des indicateurs MACD simples et clairs pour refléter les changements de dynamique des actions et les lignes de signal pour déterminer des points d'entrée spécifiques. Avec des paramètres appropriés, il peut saisir les opportunités d'inversion de prix à court terme pour obtenir des rendements excessifs.

Bien sûr, un seul indicateur et une stratégie simple ne peuvent pas s'adapter parfaitement à diverses conditions de marché complexes. Les investisseurs doivent faire attention aux risques et choisir des stratégies en fonction de leurs propres conditions et de leur appétit pour le risque. Pendant ce temps, ils doivent également garder un œil sur les conditions du marché, optimiser les paramètres de la stratégie et les règles de trading. Ce n'est qu'à travers l'apprentissage et l'amélioration continus que l'on peut obtenir des rendements d'investissement stables à long terme.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//study(title="MACD Strategy by Sedkur", shorttitle="MACD Strategy by Sedkur")
strategy (title="MACD Strategy by Sedkur", shorttitle="MACD Strategy by Sedkur")


// Getting inputs
dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

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

plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)

strategy.entry("buy", strategy.long, comment="buy", when = hist[1] <= hist and buyh<=hist and year>=dyear)
strategy.entry("sell", strategy.short, comment="sell", when = hist[1] >= hist and sellh>=hist and year>=dyear)


Plus de