Stratégie de croisement MACD et EMA

Auteur:ChaoZhang est là., Date: le 28 décembre 2023 15:22:14
Les étiquettes:

img

Résumé

Cette stratégie utilise le croisement des lignes rapides et lentes de l'indicateur MACD pour déterminer les entrées et les sorties. L'indicateur EMA est également utilisé pour juger de la direction de la tendance.

Principe de stratégie

Lorsque la ligne rapide du MACD traverse la ligne lente d'en bas et que la valeur MACD est inférieure à 0, cela indique que la moyenne mobile à court terme du prix commence à augmenter et que l'élan commence à se renforcer, de sorte qu'une position longue peut être prise. Lorsque la ligne rapide traverse la ligne lente d'en haut et que la valeur MACD est supérieure à 0, cela indique que la moyenne mobile à court terme du prix commence à baisser et que l'élan commence à s'affaiblir, de sorte qu'une position courte peut être prise.

L'indicateur EMA évalue la direction générale de la tendance. Des valeurs EMA plus élevées indiquent une tendance à la hausse tandis que des valeurs inférieures indiquent une tendance à la baisse. La stratégie n'est longue que lorsque l'EMA indique une tendance à la hausse et courte lorsque l'EMA indique une tendance à la baisse pour éviter le contre-trend.

Le stop loss est défini à la valeur de l'EMA au moment de la génération du signal. L'EMA peut bien juger de la tendance. Le paramétrage en tant que valeur de l'EMA peut réduire la probabilité d'une perte de stop prise par les points bas ou hauts précédents. Le profit est défini à 2 fois le prix d'entrée, ce qui donne un ratio de risque-récompense de 2.

Analyse des avantages

Cette stratégie combine les indicateurs MACD et EMA pour mieux déterminer le moment de l'entrée et la direction de la tendance. La méthode stop loss évite de poursuivre les hausses et les baisses de vente. Le ratio de risque-rendement de 2 est un paramètre relativement conservateur. Les paramètres de l'indicateur MACD peuvent être ajustés pour s'adapter de manière flexible aux changements du marché.

Analyse des risques

L'indicateur MACD a un décalage moyen, les tours d'indicateur ont tendance à retarder les tours de prix. La stratégie ne peut pas déterminer des points d'entrée spécifiques, il y a une certaine cécité. Le stop loss a tendance à être déclenché par une action de prix volatil. Les points de profit peuvent être atteints prématurément ou avec retard.

Directions d'optimisation

  1. Optimiser les paramètres du MACD pour le rendre plus sensible ou stable.
  2. Incorporer d'autres indicateurs pour déterminer des points d'entrée plus précis.
  3. Ajustez dynamiquement les paramètres stop loss et take profit.
  4. Optimiser la gestion de l'argent afin de déterminer une taille de position plus appropriée.

Résumé

Cette stratégie combine les indicateurs MACD et EMA pour déterminer le moment d'entrée et la direction de la tendance. Elle utilise des méthodes simples et raisonnables pour arrêter la perte et prendre profit. Des optimisations supplémentaires peuvent être effectuées sur le retard du MACD, les paramètres de stop loss et de profit, etc., pour obtenir de meilleurs résultats de stratégie.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD & EMA 200 Strategy", overlay=true)

// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close

[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)

// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)

// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    longStopLoss = ema200
    longTakeProfit = close + 2 * (close - ema200)
    strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)

// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
    strategy.entry("Short", strategy.short)
    shortStopLoss = ema200
    shortTakeProfit = close - 2 * (ema200 - close)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)


Plus de