La stratégie du double ATR Trailing Stop est une stratégie de trading à court terme basée sur l'indicateur Average True Range (ATR). La stratégie définit deux lignes de stop loss, une ligne ATR rapide et une ligne ATR lente, en même temps, et détermine l'entrée et la sortie en fonction du croisement des deux lignes.
Le noyau de cette stratégie est l'utilisation de deux lignes ATR stop loss. L'une est la ligne ATR rapide avec une courte période et un petit multiplicateur pour une réaction rapide. L'autre est la ligne ATR lente avec une période plus longue et un plus grand multiplicateur pour la filtration. Lorsque la ligne ATR rapide traverse au-dessus de la ligne ATR lente, elle génère un signal d'achat. Lorsque la ligne ATR rapide traverse au-dessous de la ligne ATR lente, elle génère un signal de vente. La stratégie utilise donc le croisement de deux lignes ATR pour déterminer l'entrée et la sortie, ce qui peut contrôler efficacement le stop loss.
La logique spécifique est la suivante: calculer la ligne ATR rapide et la ligne ATR lente. Lorsque le prix est au-dessus de la ligne lente, utilisez la ligne rapide pour suivre l'arrêt de perte. Sinon, utilisez la ligne lente pour suivre l'arrêt de perte. La couleur de Kline représente la ligne d'arrêt de perte actuelle. Le vert et le bleu signifient utiliser la ligne rapide. Le rouge et le jaune signifient utiliser la ligne lente. Sortez lorsque le prix du marché touche les lignes d'arrêt de perte.
Les avantages de cette stratégie sont les suivants:
Il y a aussi des risques:
Nous pouvons réduire les risques en optimisant la période ATR, en ajustant le multiplicateur ATR, en combinant d'autres indicateurs pour la filtration, etc.
Les orientations d'optimisation sont les suivantes:
La stratégie du double ATR Trailing Stop est facile à comprendre et à mettre en œuvre, particulièrement adaptée aux scénarios à forte volatilité, et peut contrôler efficacement les risques.
/*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")