
Cette stratégie est basée sur les idées développées par Andrew Abraham dans son article de septembre 1998 sur le suivi des tendances de l’or dans la revue Techniques d’analyse de l’or, et est conçue pour suivre dynamiquement les tendances des prix des actions et générer des signaux de négociation.
La stratégie calcule d’abord la moyenne des fluctuations réelles des 21 derniers jours comme seuil de référence, puis les plus hautes et les plus basses des 21 derniers jours, et établit en conséquence une limite supérieure et une limite inférieure de la chaîne, la limite supérieure étant la plus haute des 21 derniers jours moins la moyenne des fluctuations réelles de la chaîne, et la limite inférieure étant la plus basse des 21 derniers jours plus la moyenne des fluctuations réelles de la chaîne. Lorsque le plateau d’ouverture est supérieur à la limite supérieure de la chaîne, le signal de pression est émis; lorsque le plateau d’ouverture est inférieur à la limite inférieure de la chaîne, le signal d’attraction est émis.
Le plus grand avantage de cette stratégie est qu’elle permet de suivre les tendances des prix de manière dynamique, ce qui génère un signal de transaction. Elle permet de mieux capturer les tendances des changements de prix par rapport aux stratégies de moyennes mobiles à paramètres fixes. De plus, la création de canaux en combinaison avec des plages de fluctuation réelles évite les inconvénients des restrictions de canaux basées uniquement sur la fixation du prix le plus élevé et le plus bas.
Il existe deux principaux risques liés à cette stratégie: le risque de surtransaction causé par l’augmentation du nombre de signaux de transaction; le risque d’une mauvaise configuration des paramètres. En raison de l’utilisation de paramètres dynamiques, les signaux de transaction sont plus fréquents que les stratégies traditionnelles de moyennes mobiles, ce qui peut entraîner un certain risque de surtransaction. En outre, si les paramètres sont mal configurés, par exemple, si la période de temps est trop courte ou si le nombre de limites de canal est trop petit, il y a également un risque accru de faux signaux, ce qui augmente le risque.
Pour contrôler le risque, il est possible d’ajuster les paramètres de manière appropriée, de choisir des périodes de temps plus longues et d’assouplir de manière appropriée les restrictions de la limite supérieure et inférieure du canal. En outre, il est possible d’envisager d’ajouter une stratégie de stop-loss pour contrôler les pertes individuelles.
Il y a beaucoup d’espace pour optimiser cette stratégie. Par exemple, il est possible d’envisager de combiner d’autres indicateurs de filtrage, tels que le RSI, le KD, etc., pour éviter les fausses percées. Il est également possible d’essayer d’optimiser automatiquement les paramètres via des méthodes d’apprentissage automatique. De plus, les valeurs optimales des paramètres peuvent varier selon les stocks et les environnements de marché.
Cette stratégie est une stratégie de suivi de tendance très pratique dans l’ensemble. Comparée à la stratégie traditionnelle de moyenne mobile, elle est plus flexible et intelligente, capable de capturer dynamiquement les tendances des changements de prix.
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 10/10/2018
// This is plots the indicator developed by Andrew Abraham
// in the Trading the Trend article of TASC September 1998
// It was modified, result values wass averages.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader AVR Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR = wma(atr(1), Length)
highestC = highest(Length)
lowestC = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret := iff(close > hiLimit and close > loLimit, hiLimit,
iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)
pos = 0
pos := iff(close < nResMA, -1,
iff(close > nResMA, 1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")