Stratégie de stop loss suiveur ATR dynamique


Date de création: 2023-12-11 14:24:18 Dernière modification: 2023-12-11 14:24:18
Copier: 0 Nombre de clics: 755
1
Suivre
1621
Abonnés

Stratégie de stop loss suiveur ATR dynamique

Aperçu

Cette stratégie est un mécanisme de suivi des pertes dynamique basé sur l’indicateur ATR, qui permet d’ajuster la position des pertes en temps réel, tout en garantissant la perte de pertes, pour obtenir un plus grand profit.

Principe de stratégie

La stratégie utilise le cycle ATR rapide 5 et le cycle ATR lent 10 pour construire un double niveau de suivi dynamique des arrêts. Lorsque le prix se déplace dans la direction favorable, le niveau rapide lance le suivi pour la première fois et serre la position de stop-loss; lorsque le prix se redresse à court terme, le niveau de stop-loss du niveau lent peut éviter un stop-loss prématuré.

Plus précisément, le stop-loss de la couche rapide est de 0,5 fois l’ATR de 5 cycles, et le stop-loss de la couche lente est de 3 fois l’ATR de 10 cycles. Un signal d’achat est généré lorsque la couche rapide remonte vers le haut et un signal de vente lorsque la couche rapide descend vers le bas et franchit la couche lente.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu’il est possible d’ajuster dynamiquement la position de stop-loss pour maximiser les gains en garantissant un stop-loss. Par rapport à la distance de stop-loss fixe, la ligne de stop-loss ATR dynamique peut être ajustée en fonction de la volatilité du marché, réduisant la probabilité que le stop-loss soit activé.

En outre, la conception d’ATR à deux couches permet d’équilibrer la sensibilité de l’arrêt des dommages. La couche rapide répond rapidement, tandis que la couche lente peut filtrer le bruit à court terme et éviter l’arrêt prématuré.

Analyse des risques

Le principal risque de cette stratégie réside dans le fait que le paramètre de la distance d’arrêt soit raisonnable. Si le multiplicateur d’ATR est trop grand, la marge d’arrêt ne peut pas suivre le cours. Si le multiplicateur d’ATR est trop petit, il est susceptible d’être perturbé par le bruit à court terme.

De plus, dans le cas d’une liquidation, l’ATR est plus petit, plus proche de la ligne de stop, et plus susceptible d’être frequment stoppé. La stratégie est donc mieux adaptée aux variétés ayant une certaine volatilité.

Direction d’optimisation

Il est possible d’essayer différentes combinaisons de paramètres ATR cycliques pour trouver l’équilibre optimal. En outre, il est possible de considérer l’utilisation d’autres indicateurs, tels que les indicateurs de tendance pour déterminer la phase du marché, afin d’ajuster dynamiquement la taille du multiplicateur ATR.

On peut également étudier la possibilité d’un remplacement de l’indicateur ATR. Le remplacement de l’indicateur ATR par un indicateur tel que le DKVOL, le HRANGE ou le pourcentage ATR peut permettre d’obtenir un meilleur effet de stop-loss.

Résumer

La stratégie est basée sur l’indicateur ATR et a un mécanisme de suivi dynamique à deux niveaux, permettant de réaliser des gains plus importants et d’éviter les pertes excessives. Conçue pour les utilisateurs ayant des exigences de stop-loss élevées, la stratégie permet d’ajuster les paramètres de manière flexible en fonction des caractéristiques du marché et de la variété, afin d’obtenir un effet de stop-loss optimal.

Code source de la stratégie
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ATR Trailing Stop Strategy by ceyhun", overlay=true)

/////////notes////////////////////////////////////////
// This is based on the ATR trailing stop indicator //
// width addition of two levels of stops and        //
// different interpretation.                        //
// This is a fast-reacting system and is better     //
// suited for higher volatility markets             //
//////////////////////////////////////////////////////

SC = input(close, "Source", input.source)

// Fast Trail //
AP1 = input(5, "Fast ATR period", input.integer)  // ATR Period
AF1 = input(0.5, "Fast ATR multiplier", input.float)  // ATR Factor
SL1 = AF1 * atr(AP1)  // Stop Loss
Trail1 = 0.0
Trail1 := iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1), iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1)))

// Slow Trail //
AP2 = input(10, "Slow ATR period", input.integer)  // ATR Period
AF2 = input(3, "Slow ATR multiplier", input.float)  // ATR Factor
SL2 = AF2 * atr(AP2)  // Stop Loss
Trail2 = 0.0
Trail2 := iff(SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0), max(nz(Trail2[1], 0), SC - SL2), iff(SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0), min(nz(Trail2[1], 0), SC + SL2), iff(SC > nz(Trail2[1], 0), SC - SL2, SC + SL2)))

// Bar color for trade signal //
Green = Trail1 > Trail2 and close > Trail2 and low > Trail2
Blue = Trail1 > Trail2 and close > Trail2 and low < Trail2
Red = Trail2 > Trail1 and close < Trail2 and high < Trail2
Yellow = Trail2 > Trail1 and close < Trail2 and high > Trail2

// Signals //
Bull = barssince(Green) < barssince(Red)

Buy = crossover(Trail1, Trail2)
Sell = crossunder(Trail1, Trail2)

TS1 = plot(Trail1, "Fast Trail", style=plot.style_line, color=Trail1 > Trail2 ? color.blue : color.yellow, linewidth=2, display=display.none)
TS2 = plot(Trail2, "Slow Trail", style=plot.style_line, color=Trail1 > Trail2 ? color.green : color.red, linewidth=2)
fill(TS1, TS2, Bull ? color.new(color.green, 90) : color.new(color.red, 90))

plotcolor = input(true, "Paint color on chart", input.bool)

bcl = iff(plotcolor == 1, Blue ? color.blue : Green ? color.lime : Yellow ? color.yellow : Red ? color.red : color.white, na)
barcolor(bcl)

if Buy
    strategy.entry("Buy", strategy.long, comment="Buy")

if Sell
    strategy.close("Buy")