Stratégie de trading dynamique de fin d'année suivant la tendance (cassure de la moyenne mobile sur 60 jours)

MA SMA SLOPE EMA ATR ROC
Date de création: 2025-01-17 14:55:20 Dernière modification: 2025-01-17 14:55:20
Copier: 2 Nombre de clics: 363
1
Suivre
1617
Abonnés

Stratégie de trading dynamique de fin d’année suivant la tendance (cassure de la moyenne mobile sur 60 jours)

Aperçu

Cette stratégie est une stratégie de trading quantitative qui combine le suivi des tendances et les mécanismes de sortie temporelle. Le cœur de la stratégie est de capturer les tendances du marché en observant la relation entre le prix et la moyenne mobile sur 60 jours, tout en introduisant un mécanisme de liquidation forcée de fin d’année pour contrôler les risques. Lorsque le cours de clôture dépasse la moyenne mobile sur 60 jours et que la pente de la moyenne mobile est positive, entrez sur le marché pour devenir long et fermez toutes les positions le dernier jour de négociation de chaque année.

Principe de stratégie

La stratégie repose sur les éléments fondamentaux suivants :

  1. Jugement de tendance : utilisez la moyenne mobile simple (MMS) sur 60 jours comme indicateur pour déterminer la tendance à moyen terme et confirmez la direction de la tendance en calculant la pente de la moyenne mobile sur 14 jours.
  2. Signal d’entrée : lorsque le prix franchit la moyenne mobile sur 60 jours et que la pente de la moyenne mobile est positive, cela indique que le marché peut entrer dans une tendance à la hausse, et un signal d’achat est généré à ce moment-là.
  3. Mécanisme de sortie : La stratégie adopte un mécanisme de sortie à temps fixe et ferme toutes les positions le dernier jour de négociation de chaque année. Ce mécanisme permet d’éviter efficacement le risque de conserver des positions pendant des années.
  4. Gestion du temps de négociation : la stratégie intègre des fonctions de contrôle de la plage de dates de négociation et de jugement des jours de négociation pour garantir que les opérations ne sont effectuées que les jours de négociation valides.

Avantages stratégiques

  1. Forte capacité de suivi des tendances : le système de moyenne mobile peut capturer efficacement les tendances à moyen et long terme et exploiter pleinement les opportunités de tendance du marché.
  2. Contrôle parfait des risques : Le mécanisme de liquidation forcée en fin d’année permet de contrôler efficacement le risque de détention de positions et d’éviter l’incertitude causée par la détention de positions sur plusieurs années.
  3. Règles de fonctionnement claires : les conditions d’entrée et de sortie sont claires et faciles à exécuter et à tester.
  4. Bonne adaptabilité : les paramètres de stratégie sont hautement ajustables et peuvent être optimisés en fonction des différentes caractéristiques du marché.

Risque stratégique

  1. Hystérésis de la moyenne mobile : la moyenne mobile présente une certaine hystérésis, ce qui peut entraîner un léger retard dans le moment de l’entrée.
  2. Non applicable dans un marché latéral et volatil : Dans un marché latéral et volatil, de faux signaux de percée peuvent se produire fréquemment.
  3. Risque de liquidation fixe : Une liquidation forcée en fin d’année peut entraîner une sortie anticipée dans une bonne tendance.
  4. Sensibilité des paramètres : L’effet de la stratégie est sensible aux paramètres définis tels que la période de la moyenne mobile.

Orientation de l’optimisation de la stratégie

  1. Ajoutez des indicateurs de confirmation de tendance : des indicateurs tels que RSI et MACD peuvent être introduits pour aider à évaluer les tendances et améliorer la précision de l’entrée sur le marché.
  2. Optimisez le mécanisme de sortie : vous pouvez ajouter des conditions de stop-loss et de take-profit, et ne vous fiez pas entièrement au temps de sortie.
  3. Paramètres d’ajustement dynamique : La période de la moyenne mobile peut être ajustée dynamiquement en fonction de la volatilité du marché.
  4. Améliorer la gestion des positions : introduire des indicateurs tels que l’ATR pour le contrôle des positions afin d’améliorer l’efficacité de l’utilisation du capital.

Résumer

Cette stratégie construit un système de trading relativement robuste en combinant le suivi des tendances et la gestion du temps. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre, et présente une bonne praticité. Grâce à une optimisation raisonnable des paramètres et à la complémentation des mesures de contrôle des risques, cette stratégie devrait permettre d’obtenir des rendements stables dans les transactions réelles.

Code source de la stratégie
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Buy above 60-day MA, Sell at year-end", overlay=true, pyramiding=1)

// Define inputs for start and end dates
startDate = input(defval=timestamp("2010-01-01"), title="Start Date")
endDate = input(defval=timestamp("2024-12-31"), title="End Date")

// Define 60-day moving average
length = input.int(defval=60, title="MA Length", minval=1)
ma = ta.sma(close, length)
slope = ta.sma(ma, 14) - ta.sma(ma, 14)[1]

// Check if current bar is within the specified date range
withinDateRange = true

// Function to check if a day is a trading day (Monday to Friday)
isTradingDay(day) => true

// Check if current bar is the last trading day of the year
// Check if current bar is the last trading day of the year
isLastTradingDayOfYear = false
yearNow = year(time)
if (month == 12 and dayofmonth == 31)
    isLastTradingDayOfYear := isTradingDay(time)
else if (month == 12 and dayofmonth == 30)
    isLastTradingDayOfYear := isTradingDay(time) and not isTradingDay(time + 86400000)
else if (month == 12 and dayofmonth == 29)
    isLastTradingDayOfYear := isTradingDay(time) and not isTradingDay(time + 86400000) and not isTradingDay(time + 86400000 * 2)

// Plot moving average
plot(ma, color=color.blue, linewidth=2)

// Buy when closing price crosses above 60-day MA and up trend
if (withinDateRange and ta.crossover(close, ma) and slope > 0)
    strategy.entry("Buy", strategy.long)

// Sell all positions at the last trading day of the year
if (isLastTradingDayOfYear)
    strategy.close_all(comment="Sell at year-end")

// Plot buy and sell signals
//plotshape(series=ta.crossover(close, ma), location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
//plotshape(series=isLastTradingDayOfYear, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")