Stratégie de tendance à la dynamique

Auteur:ChaoZhang est là., Date: 2024-01-29 16h38 et 22h
Les étiquettes:

img

Résumé

Cette stratégie intègre des indicateurs de dynamique et un suivi des tendances pour identifier la tendance haussière ou baissière à moyen terme des cours des actions et prendre des positions au début des tendances. La stratégie calcule d'abord l'indicateur de dynamique de 20 jours du prix, puis le traite en une valeur de dynamique normalisée allant de 0 à 1. Pendant ce temps, la moyenne mobile simple de 20 jours est calculée comme représentative de la tendance à moyen terme. Lorsque la dynamique normalisée est supérieure à 0,5 et que le prix est au-dessus de la ligne de tendance à moyen terme, allez long. Lorsque la dynamique normalisée est inférieure à 0,5 et que le prix est en dessous de la ligne de tendance à moyen terme, allez court.

La logique de la stratégie

L'indicateur de base de cette stratégie est la différence de momentum de 20 jours du prix. La différence de momentum est définie comme suit: (aujourd'hui s close close il y a 20 jours) / close il y a 20 jours. Cette métrique reflète l'augmentation ou la diminution en pourcentage du prix au cours des 20 derniers jours. Pour résoudre le problème des plages de prix très différentes entre les actions, la différence de momentum brut est normalisée à une échelle de 0 à 1 par le processus suivant: trouvez d'abord les valeurs maximales et minimales de la différence de momentum au cours des 100 derniers jours, puis calculez la position en pourcentage de la différence actuelle dans cette plage, ce qui donne un score de momentum normalisé entre 0 et 1.

En outre, la moyenne mobile simple de 20 jours est incluse pour déterminer la direction de la tendance à moyen terme. Les moyennes mobiles sont des outils visuellement intuitifs pour l'analyse de la tendance.

En combinant l'indicateur de dynamisme normalisé et le jugement de tendance à moyen terme, cette stratégie vise à capturer des étapes haussières et baissières significatives dans l'horizon à moyen terme. La logique est la suivante: si la dynamique normalisée est supérieure à 0,5, cela signifie que le prix s'accélère avec une tendance haussière récemment. Pendant ce temps, si le prix reste au-dessus de 20 jours MA, alors le moyen terme est toujours une tendance haussière. Sous cette condition, allez long. Au contraire, si la dynamique normalisée tombe en dessous de 0,5, cela signale une tendance baissière accélérée récemment. En outre, avec le prix inférieur à 20 jours MA, le moyen terme est baissier. Nous devrions alors aller court.

Ce qui précède décrit la logique de décision de base. Pour les entrées, la stratégie entre simplement sur le marché lors de l'observation d'un élan aligné et de signaux de tendance. Pour le stop loss, un stop fixe est défini au prix le plus élevé + taille minimale de tick pour les longs, et le prix le plus bas - taille minimale de tick pour les shorts, afin d'éviter des pertes flottantes inefficaces.

Analyse des avantages

Le plus grand avantage de cette stratégie est l'utilisation de deux indicateurs pour la confirmation, qui peuvent filtrer efficacement certaines fausses entrées dans les whipssaws. Se fier uniquement aux signaux de momentum tend à produire de faux signaux occasionnellement. En ajoutant la condition de tendance à moyen terme, la validité des signaux de momentum peut être vérifiée pour éviter d'être pris au piège dans des marchés variables. De même, simplement en suivant la tendance peut manquer certaines opportunités au début des accélérations de tendance, tandis que la combinaison de l'élan peut capturer de tels virages en temps opportun.

Un autre avantage est le choix de la période de 20 jours. Ce paramètre à moyen terme aide à réduire la fréquence de négociation par rapport aux fréquences plus rapides, permettant à la stratégie de capturer des fluctuations plus importantes à moyen et long terme.

Analyse des risques

Le risque majeur de cette stratégie réside dans la divergence entre l'élan et la tendance. Les désalignements peuvent conduire à des signaux incorrects. Par exemple, pendant une tendance à la baisse, les rebonds à court terme pourraient pousser temporairement l'élan vers le haut. Si vous allez droit, vous pouvez subir des pertes.

En outre, le mécanisme de stop-loss est relativement simple et peut ne pas contenir pleinement les risques.

Directions d'optimisation

Voici quelques grandes directions d'optimisation pour cette stratégie:

  1. Introduisez plus d'indicateurs pour le contre-interrogatoire, tels que le MACD, le KD, les bandes de Bollinger, etc. Cela peut aider à vérifier la validité des signaux de dynamique et à éviter les faux signaux.

  2. Ajustez dynamiquement les niveaux de stop loss, par exemple via des modèles de tarification ATR ou d'options.

  3. Optimiser les périodes de paramètres. Les paramètres actuels de 20 jours peuvent être testés pour des améliorations.

  4. Différencier le seuil d'achat et de vente de la différence de momentum. Actuellement, 0,5 est utilisé pour les deux. Les niveaux optimaux peuvent différer.

  5. Ajouter un filtre de volume de négociation pour éviter les fausses ruptures avec des volumes insuffisants.

Conclusion

Cette stratégie combine l'analyse des tendances et des indicateurs de dynamique pour saisir les opportunités de trading découlant des changements de dynamique à moyen et long terme. Par rapport aux systèmes à indicateur unique, l'approche à indicateur multiple améliore la précision et la rentabilité. Le mécanisme d'arrêt simple facilite le contrôle rapide des risques. Des optimisations supplémentaires sur le réglage des paramètres, les techniques de stop-loss et les conditions auxiliaires peuvent améliorer la flexibilité et l'adaptabilité aux différents régimes de marché.


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

//@version=3
strategy("Momentum Strategy, rev.2", overlay=true)

//
// Data
//
src = input(close)
lookback = input(20)
cscheme=input(1, title="Bar color scheme", options=[1,2])

//
// Functions
//
momentum(ts, p) => (ts - ts[p]) / ts[p]

normalize(src, len) =>
    hi  = highest(src, len)
    lo  = lowest(src, len)
    res = (src - lo)/(hi - lo)

//
// Main
//
price = close
mid = sma(src, lookback)
mom = normalize(momentum(price, lookback),100)

//
// Bar Colors
//
clr1 = cscheme==1?black: red
clr2 = cscheme==1?white: green
barcolor(close < open ? clr1 : clr2)

//
// Strategy
//
if (mom > .5 and price > mid )
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
    strategy.cancel("MomLE")

if (mom < .5 and price < mid )
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
    strategy.cancel("MomSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Plus de