
La stratégie combine un indicateur de dynamique et un suivi de tendance pour identifier une tendance forte à la hausse ou à la baisse du cours d’une action à moyen terme et intervient au début de la tendance. La stratégie interne calcule d’abord l’indicateur de dynamique de 20 jours du prix, puis traite de manière standardisée pour obtenir une valeur de dynamique standardisée dans la plage de 0 à 1.
L’indicateur central de cette stratégie est le 20 jours de variance dynamique du prix. Le variance dynamique est définie comme: ((prix de clôture aujourd’hui - prix de clôture 20 jours auparavant) / prix de clôture 20 jours auparavant. L’indicateur reflète la hausse et la baisse du prix sur 20 jours.
En outre, la stratégie introduit une moyenne mobile simple de 20 jours pour déterminer la direction de la tendance à moyen terme. La moyenne mobile est un outil visuel intuitif pour déterminer la tendance.
La logique est la suivante: si la dynamique standardisée est supérieure à 0,5, cela indique que le cours de l’action augmente rapidement ces derniers temps; si le prix est supérieur à la moyenne mobile sur 20 jours, cela signifie que le cours est toujours en tendance à la hausse, alors faites plus; au contraire, si la dynamique standardisée est inférieure à 0,5, le prix augmente rapidement; et si le prix est également inférieur à la moyenne sur 20 jours, il est également en tendance à la baisse, alors faites zéro.
Voici la logique de base de la stratégie. Pour le point d’entrée, la stratégie entre directement dans le moment où la dynamique et la tendance sont synchronisées. Pour le stop loss, définissez un point de stop loss minimum fixe, c’est-à-dire acheter le prix le plus élevé + les unités de variation de prix les plus faibles et vendre le prix le plus bas - les unités de variation de prix les plus faibles, pour éviter les pertes non effectives.
Le plus grand avantage de cette stratégie réside dans le fait qu’elle utilise simultanément deux indicateurs de jugement, ce qui permet de filtrer efficacement les situations où des entrées erronées peuvent survenir. Se fier uniquement à l’indicateur de dynamique est susceptible de générer de faux signaux, tandis que l’ajout d’un indicateur de tendance intermédiaire permet de vérifier l’efficacité du signal de dynamique et d’éviter d’être piégé dans une situation de choc. De même, le simple suivi d’un indicateur de tendance peut également manquer certaines opportunités dans la tendance, l’ajout d’un indicateur de dynamique peut identifier le moment où la tendance commence à s’accélérer.
Un autre avantage est que la stratégie choisit un cycle de 20 jours pour le calcul. Cette configuration de paramètres intermédiaires permet de réduire le nombre de transactions à haute fréquence, ce qui est bénéfique pour saisir les écarts de prix des lignes moyennes et longues. Il permet également de filtrer l’impact du bruit du marché à court terme.
Le principal risque de cette stratégie réside dans le fait que la dynamique et la tendance peuvent s’éloigner. Lorsque la tendance et la dynamique ne sont pas cohérentes, cela peut entraîner de faux signaux. Par exemple, le cours d’une action est en baisse, mais un rebond à court terme peut entraîner un signal trompeur de l’indicateur de la dynamique.
De plus, le paramètre de stop loss de la stratégie est simple et ne permet pas d’éviter complètement le risque. Si la situation se détériore de manière significative, le stop loss du nombre de points fixe peut être franchi directement et ne suffit pas.
La stratégie présente les principales améliorations suivantes:
Ajouter plus d’indicateurs pour un jugement global. Par exemple, MACD, KD, bande de Brin, etc. Cela permet de vérifier l’efficacité du signal de puissance et d’éviter les signaux trompeurs.
Il est possible de régler les stop loss en temps réel en fonction de l’indicateur ATR, ou de calculer une ligne de stop loss raisonnable en utilisant la théorie du prix des options. Cela peut réduire la probabilité que les stop loss soient couverts.
Optimiser la période des paramètres. Les stratégies actuelles utilisent des cycles de 20 jours. Vous pouvez tester plus de combinaisons de paramètres pour trouver la meilleure période.
Le critère de jugement pour distinguer les écarts de dynamique d’achat et de vente. Actuellement, le même critère de 0,5 est utilisé. Les meilleurs paramètres pour acheter et vendre peuvent être testés séparément.
Ajout d’un filtre pour le volume des transactions. Par exemple, le signal est émis uniquement lorsque le volume des transactions est élevé. Cela évite certaines fausses percées en cas d’insuffisance de la capacité.
Cette stratégie utilise une analyse de tendance et des indicateurs de dynamique pour capturer les opportunités de négociation liées aux variations de la dynamique des prix sur la ligne médiane. Comparé à un seul indicateur, une combinaison de plusieurs indicateurs peut améliorer l’exactitude des jugements et l’espace de profit. La règle de stop loss est simple et directe, permettant de contrôler rapidement les risques de stop loss.
/*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)