Tendance du MACD à la suite de la stratégie

Auteur:ChaoZhang est là., Date: 2023-12-11 à 14h57:
Les étiquettes:

img

Résumé

La stratégie de suivi de tendance MACD est une stratégie de trading quantitative basée sur l'indicateur MACD. Cette stratégie identifie les signaux de croix dorée et de croix de mort MACD pour déterminer les tendances du marché et suivre les tendances des prix.

La logique de la stratégie

La logique de base de la stratégie de suivi de tendance MACD est la suivante:

  1. Calculer la ligne MACD et la ligne de signal.
  2. Lorsque la ligne MACD franchit le niveau supérieur de 0 depuis le bas vers le haut, enregistrez le point le plus élevé et attendez le signal de croix de la mort.
  3. Lorsque la ligne MACD traverse le seuil inférieur à 0 de haut en bas, enregistrez le point le plus bas et attendez le signal de croix dorée.
  4. Lorsque la croix d'or se produit, enregistrez le prix de clôture actuel comme point d'entrée long, définissez le point stop-loss, ouvrez la position longue.
  5. Lorsque la croix de la mort se produit, enregistrez le prix de clôture actuel comme point d'entrée court, définissez un point de stop-loss, ouvrez une position courte.
  6. Lorsqu'une position longue est détenue, si le ratio de profit atteint l'objectif prédéfini ou si le tirage atteint le point de stop-loss, la position est fermée pour réaliser un profit.
  7. Lorsqu'une position courte est détenue, si le ratio de profit atteint la cible prédéfinie ou si le tirage atteint le point de stop-loss, la position est fermée pour réaliser un profit.

Grâce à ce mécanisme de suivi des tendances, la stratégie peut saisir en temps opportun les changements des tendances du marché et réaliser des bénéfices.

Analyse des avantages

La stratégie de suivi des tendances MACD présente les avantages suivants:

  1. La source des signaux stratégiques est unique et claire, générée directement par l'indicateur MACD, évitant ainsi les interférences des signaux.
  2. Utiliser les caractéristiques de la croix dorée et de la croix de la mort de l'indicateur MACD pour déterminer les tendances du marché, avec des jugements précis.
  3. Suivi rapide des tendances, avec une forte capacité de suivi des bénéfices.
  4. Un contrôle des risques approprié est mis en place, avec un mécanisme de stop loss.

Analyse des risques

La stratégie MACD Trend Following comporte également les risques suivants:

  1. L'indicateur MACD a tendance à générer de faux signaux, ce qui peut entraîner des pertes dans les opérations à très court terme.
  2. Les paramètres incorrects du point stop-loss peuvent augmenter la perte unique.
  3. Difficile d'équilibrer le ratio de suivi des bénéfices et le point d'arrêt des pertes, avec un risque de suivi excessif entraînant des pertes.

Pour faire face aux risques susmentionnés, les mesures d'optimisation suivantes peuvent être adoptées:

  1. Combinez avec d'autres indicateurs pour filtrer les faux signaux.
  2. Ajustez dynamiquement les points d'arrêt de perte.
  3. Optimiser les paramètres du ratio de suivi des bénéfices et des points de stop-loss.

Directions d'optimisation

La stratégie de suivi des tendances MACD peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres de l'indicateur MACD pour réduire le taux de faux signaux.

  2. Ajouter d'autres indicateurs comme le volume des transactions pour filtrer les signaux.

  3. Mettre en place un mécanisme de stop loss dynamique. Les points de stop loss peuvent être ajustés dynamiquement en fonction de la volatilité.

  4. Optimiser la logique de détermination du signal pour l'ouverture de positions. Des conditions de déclenchement plus strictes peuvent être définies.

  5. Incorporer des modèles d'apprentissage automatique pour filtrer les signaux. Les modèles peuvent être formés pour juger de la fiabilité des signaux.

Conclusion

En général, la stratégie de suivi de tendance MACD est une stratégie quantitative relativement mature. Elle utilise l'indicateur MACD pour déterminer les directions de tendance du marché et contrôle les risques avec un mécanisme de stop loss, qui peut suivre efficacement les tendances des prix. Mais l'indicateur MACD lui-même présente également quelques défauts, faciles à générer de faux signaux. Il y a donc des possibilités d'optimisation de cette stratégie, principalement sur des aspects tels que les paramètres de l'indicateur, le mécanisme de stop loss, le filtrage des signaux, etc.


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

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0

Plus de