
La stratégie consiste à gérer le risque en calculant l’indicateur ATR comme une ligne de stop-loss, générant un signal d’achat lorsque le prix franchit une EMA supérieure, un signal de vente lorsque le prix franchit une EMA inférieure et en utilisant un stop-loss dynamique.
La logique de cette stratégie est la suivante:
Calculer l’indicateur ATR comme une ligne de stop loss, la valeur ATR est utilisée pour calculer la distance de stop loss nLoss
Le prix de clôture est utilisé par défaut pour déterminer la source de prix en fonction de l’option de clôture de Heikin Ashi h, et le prix de clôture de l’option de clôture de l’option de clôture de Heikin Ashi
Définition de xATRTrailingStop comme un stop tracking dynamique, qui permet de déterminer le stop de la ligne K actuelle en comparant le prix avec le stop de la ligne K précédente
Définition d’une position pos, réglée sur 1 pour le passage de la limite supérieure, sur -1 pour le passage de la limite inférieure, ou sur 0 pour le passage de la limite vide
Calculer la valeur moyenne de l’EMA d’une ligne K, en définissant un indicateur à travers (signaux d’achat) et en dessous (signaux de vente)
Configurer l’entrée et la sortie des transactions lorsque les signaux d’achat et de vente se produisent
La fonction barcolor marque la couleur de la ligne K en fonction de la position
Signaux de marquage à l’aide de plotshape lors des achats et des ventes
La stratégie gère le risque par l’arrêt dynamique ATR, permettant d’entrer en jeu à l’apparition d’une tendance et d’arrêter à l’action de la ligne de stop.
Cette stratégie présente les avantages suivants:
L’utilisation d’ATR permet d’ajuster la distance d’arrêt en fonction de l’ampleur des fluctuations du marché, tout en garantissant un arrêt et en évitant des arrêts trop radicaux déclenchés par des fluctuations de prix à court terme.
L’EMA est utilisée pour générer des signaux de transaction qui peuvent filtrer les transactions inutiles causées par certaines fausses percées.
Permet de choisir le Heikin Ashi comme source de prix et de filtrer le bruit pour identifier les tendances
Gestion claire des positions, position claire en cours de négociation, évitant le suivi fréquent des transactions entraînant des arrêts de pertes
Indication visuelle des signaux de transaction et des arrêts de perte à l’aide de lignes, de marquages et de teintures
La logique de la stratégie est simple et claire, facile à comprendre et à modifier
Cycle ATR et multiplicateur de stop-loss ATR personnalisables pour s’adapter à différentes conditions de marché
Dans l’ensemble, la stratégie intègre des techniques de suivi de tendance et de stop loss dynamique, permettant d’identifier efficacement les tendances et de gérer les risques, et s’applique aux transactions qui suivent les tendances de la ligne médiane-longue.
Cette stratégie comporte aussi des risques:
L’EMA moyenne génère des signaux de négociation qui peuvent être retardés et manquer des opportunités de courte ligne
La distance d’arrêt est déterminée par l’ATR et est susceptible de s’arrêter fréquemment en cas de turbulence du marché.
Les frais de transaction bilatéraux affectent les bénéfices sans tenir compte des coûts
Manque de contrôle adéquat des positions et amélioration de la gestion des fonds
L’effet dépend de l’optimisation des paramètres, qui doivent être ajustés pour différents marchés
Les marchés en pleine effervescence peuvent être une source de frustration.
Surveillance, intervention ou arrêt des stratégies en temps opportun
Il est possible de réduire le risque en optimisant les paramètres, en réglant le contrôle de position et en combinant les signaux de filtrage d’autres indicateurs. Dans les transactions en bourse, il faut contrôler la taille de la position, surveiller en permanence l’efficacité de la stratégie et, si nécessaire, intervenir ou fermer manuellement.
Cette stratégie peut être optimisée dans les domaines suivants:
Adaptation des paramètres ATR pour rendre la distance de stop plus raisonnable dans les différents marchés
Test des différents indicateurs de homogénéité pour filtrer davantage les fausses signals
Il s’agit d’une méthode d’évaluation de l’impact des tendances sur le marché du travail.
Configurer un contrôle de position pour limiter le nombre de positions dans une direction
Augmentation des conditions d’ouverture de position, telles que le volume des transactions, le prix de clôture éloigné de la moyenne, etc.
Prendre en compte les facteurs de coût et définir une distance de stop-loss en fonction des frais de procédure
Optimiser le moment de l’achat et de la vente en combinant plusieurs signaux et indicateurs
Arrêt partiel ou arrêt mobile
Ajout d’une fonction d’optimisation des paramètres pour optimiser automatiquement les paramètres de test
L’application intégrée de plusieurs indicateurs techniques et méthodes d’optimisation permettrait de perfectionner davantage cette stratégie et d’obtenir des résultats plus stables dans un plus grand nombre de marchés.
Cette stratégie intègre des techniques de suivi de tendance et de stop-loss dynamiques, avec des avantages tels que l’efficacité de la stop-loss, le suivi fluide et la facilité d’appréciation et d’optimisation. Elle s’applique aux modèles de suivi de tendance à longue et moyenne ligne.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol.
// Inputs
a = input(1, title = "Key Vaule. 'This changes the sensitivity'")
c = input(10, title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")
xATR = atr(c)
nLoss = a * xATR
src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close
xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss),
iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
pos = 0
pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
ema = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
strategy.entry("long", true, when = buy)
strategy.entry("short", false, when = sell)