
La double ATR est une stratégie de négociation de courte ligne basée sur l’indicateur de l’amplitude réelle moyenne (ATR). La stratégie définit simultanément deux lignes de stop, l’ATR rapide et l’ATR lent, pour juger de l’entrée et de la sortie en fonction du croisement des deux lignes de stop. La stratégie est simple et facile à comprendre, réagit rapidement et convient aux marchés très volatils.
La stratégie utilise principalement l’indicateur ATR pour définir deux lignes de stop-loss. L’une est la ligne ATR rapide, avec un cycle ATR court, multiplié par le nombre petit, et réagit rapidement; l’autre est la ligne ATR lente, avec un cycle ATR long, multiplié par le nombre grand, et joue le rôle de filtre.
La logique d’opération est la suivante: calculer les lignes ATR rapides et lentes; si le prix de la ligne rapide est supérieur à celui de la ligne lente, le stop est suivi par la ligne rapide, sinon le stop est suivi par la ligne lente. La couleur Kline indique le stop actuellement utilisé, le stop en lignes rapides est indiqué en vert et bleu, et le stop en lignes lentes est indiqué en rouge et jaune.
La double ATR a les avantages suivants:
Cette stratégie comporte aussi des risques:
Ces risques peuvent être atténués par l’optimisation des cycles d’ATR, l’ajustement des multiples d’ATR et le filtrage d’autres indicateurs.
Les stratégies d’arrêt de la perte d’attente du double ATR peuvent être optimisées dans les domaines suivants:
La double ATR est une stratégie d’arrêt de la perte de suivi qui est facile à comprendre et à mettre en œuvre. Elle est particulièrement adaptée aux scénarios de forte volatilité. Elle permet de contrôler efficacement le risque.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ceyhun
//@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 perod", input.integer) // ATR Period
AF2 = input(2, "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)
Bear = barssince(Red) < barssince(Green)
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)
TS2 = plot(Trail2, "Slow Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.green : color.red, linewidth=2)
fill(TS1, TS2, Bull ? color.green : color.red, transp=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.entry("Sell", strategy.short, comment="Sell")