Stratégie d'arrêt de traînée double ATR

Auteur:ChaoZhang est là., Date: 2024-01-31 17:10:32 Je suis désolé
Les étiquettes:

img

Résumé

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.

Principe de stratégie

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.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Une logique simple et claire, facile à comprendre et à mettre en œuvre.
  2. Réaction rapide aux changements du marché, adapté à un marché à forte volatilité.
  3. Les contrôles de perte de freinage ATR double sont efficaces.
  4. L'indicateur ATR est paramétrique pour régler la plage de perte d'arrêt.
  5. La couleur visuelle de Kline indique clairement la situation de stop loss.

Analyse des risques

Il y a aussi des risques:

  1. Préoccupé par le sur-échange.
  2. L'ATR a un mauvais ajustement de la courbe, peut amplifier les pertes.
  3. Ne peut pas filtrer efficacement les marchés latéraux et tendance.

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.

Direction de l'optimisation

Les orientations d'optimisation sont les suivantes:

  1. Optimiser les paramètres ATR pour une meilleure portée de stop loss.
  2. Ajouter des indicateurs de filtrage pour éviter les transactions non valides, comme MA.
  3. Ajoutez des conditions ouvertes pour éviter les erreurs, par exemple des indicateurs de volume.
  4. Ajouter des sorties pour la période de détention afin d'éviter une survente.

Conclusion

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")



Plus de