Cette stratégie utilise principalement la ligne moyenne mobile EMA et l'indicateur MACD pour déterminer les changements dans les tendances du marché et exécute des stratégies de trading dynamiques. L'idée principale est d'aller long lorsque la ligne EMA à court terme traverse au-dessus de la ligne EMA à long terme et que le MACD traverse simultanément au-dessus de 0, et d'aller court lorsque la EMA à court terme traverse au-dessous de la EMA à long terme et que le MACD traverse simultanément au-dessous de 0.
Cette stratégie intègre l'indicateur de ligne moyenne mobile et l'indicateur MACD.
Premièrement, il utilise deux indicateurs EMA avec des durées de cycle différentes, l'un est la ligne EMA de 25 cycles et l'autre est la ligne EMA de 50 cycles. La ligne EMA de 25 cycles peut refléter les tendances à court terme tandis que la ligne EMA de 50 cycles reflète les tendances à moyen et long terme. Lorsque la ligne EMA à court terme traverse au-dessus de la ligne EMA à long terme depuis le bas, cela indique que le marché passe de la baisse à la hausse, ce qui est un signe croisé doré pour aller long. Lorsque la EMA à court terme traverse au-dessous de la EMA à long terme depuis le haut, cela indique que le marché passe de la hausse à la baisse, ce qui est un signe croisé mortel pour aller court.
En même temps, la stratégie intègre également des signaux d'indicateur MACD. L'indicateur MACD comprend une ligne DIF et une ligne DEA, qui représentent la différence entre les moyennes mobiles exponentielles à court et à long terme, calculées par des EMA doubles. Cette stratégie définit la DIF comme la différence entre l'EMA de 12 jours et l'EMA de 26 jours.
En combinant ces deux indicateurs, un signal d'entrée long est généré lorsque l'EMA de 25 jours a une croix dorée de l'EMA de 50 jours, tandis que la ligne DIF du MACD
Il s'agit d'une stratégie à double voie très typique qui s'intègre à l'indicateur MACD pour générer des signaux de trading plus fiables avec les avantages suivants:
L'utilisation de lignes EMA doubles permet d'éviter les faux écarts pour générer des signaux de trading plus fiables.
L'intégration de l'indicateur MACD permet de vérifier davantage les signaux de négociation et d'éviter le risque de faux signaux EMA à double voie, améliorant ainsi l'efficacité pratique de la stratégie.
En utilisant les lignes de 25 et 50 jours comme ligne rapide et lente, la sélection des paramètres est plus précise et permet de capturer des changements significatifs de tendance dans les cycles à moyen et à court terme.
En poursuivant la dynamique et en adoptant un état d'esprit de réversion moyenne, cette stratégie peut dépasser l'indice de référence et réaliser des rendements significatifs lors de fortes tendances haussières et baissières sur le marché plus large.
La logique de la stratégie est simple et directe, facile à comprendre et à mettre en œuvre, adaptée aux débutants quantitatifs.
Les paramètres peuvent être soigneusement optimisés pour mieux adapter la stratégie à différents produits et environnements de marché.
Il y a encore quelques risques à prendre en considération pour cette stratégie:
La possibilité de faux signaux EMA subsiste, mais peut encore se produire dans les mouvements violents du marché.
Les paramètres MACD doivent être continuellement optimisés et ajustés, faute de quoi des signaux incorrects ou des délais de signal peuvent se produire.
Il faut être prudent quant à savoir si le réglage du point stop-loss est raisonnable pour éviter des percées inefficaces causant de plus grandes pertes.
Besoin d'être attentif aux changements dans l'environnement des marchés et des politiques afin d'éviter les risques systémiques entraînant des pertes plus importantes.
Nécessité de contrôler la taille des positions et le niveau d'effet de levier pour prévenir le risque de liquidation forcée due à des tendances unilatérales.
Cette stratégie peut également être optimisée dans les aspects suivants:
Tester des combinaisons de paramètres plus précises avec une efficacité pratique plus élevée, par exemple en utilisant des lignes EMA de 20 jours et de 60 jours comme pistes de négociation, avec DIF comme différence entre EMA de 10 jours et EMA de 20 jours.
Augmenter la confirmation des indicateurs du volume des transactions afin d'éviter les fausses ruptures à faible volume.
Incorporer des indicateurs de volatilité tels que l'ATR pour déterminer des méthodes plus scientifiques de stop loss.
Utiliser des algorithmes d'apprentissage automatique pour optimiser automatiquement les paramètres afin de s'adapter dynamiquement aux environnements changeants du marché.
Ajouter un module de contrôle de dimensionnement de la position pour ajuster dynamiquement les tailles en fonction des performances et des métriques de la stratégie.
Peut tracer des signaux stratégiques sur des graphiques à plus long terme pour aider les décisions sur les transactions directionnelles à plus long terme.
Cette stratégie intègre les atouts des indicateurs de ligne moyenne mobile et des indicateurs MACD en jugant des modèles de bougies de meilleure qualité à travers des lignes EMA doubles combinées à l'appariement DIF et DEA sur la direction de l'élan MACD, formant une stratégie de trading d'élan stable et efficace.
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="EMA+MACD", shorttitle="EMA+MACD", overlay=true) // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) 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="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"]) sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"]) fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal len1 = input(title="Len Ema 1 ",type=input.integer,defval=25) len2 = input(title="Len Ema 2 ",type=input.integer,defval=50) ema1 = ema(src,len1) ema2 = ema(src,len2) bull = crossover(ema1,ema2) and macd > 0 bear = crossover(ema2,ema1) and macd < 0 l1 = bull ? label.new(x=bar_index,y=low,yloc=yloc.belowbar,text="BUY",color=color.green,textcolor=color.white,style=label.style_triangleup) : na l2 = bear ? label.new(x=bar_index,y=high,yloc=yloc.abovebar,text="SELL",color=color.red,textcolor=color.white,style=label.style_triangledown) : na strategy.entry("LONG",strategy.long,when=bull) strategy.entry("SHORT",strategy.short,when=bear)