Cette stratégie utilise deux arrêts ATR avec des paramètres différents pour définir des niveaux de stop-loss dynamiques - un stop rapide et un stop lent. Elle établit des positions longues basées sur les écarts de prix des différents niveaux de stop et sort des positions en utilisant les arrêts de trailing. L'objectif est d'utiliser les arrêts ATR pour définir des niveaux de stop-loss raisonnables tout en maximisant la capacité de suivre la tendance.
La stratégie utilise l'indicateur ATR pour calculer deux niveaux d'arrêt-perte. L'arrêt rapide utilise l'ATR de 5 périodes multiplié par 0,5 comme distance d'arrêt. L'arrêt lent utilise l'ATR de 10 périodes multiplié par 3 comme distance d'arrêt. Lorsque le prix dépasse le niveau d'arrêt rapide, une position longue est établie. Lorsque le prix continue de dépasser le niveau d'arrêt lent, l'arrêt est ajusté au niveau d'arrêt lent. Si le prix baisse, le niveau d'arrêt est ajusté en fonction des relations de croisement.
La logique est la suivante:
Calcul de l'arrêt rapide Trail1: ATR à 5 périodes * 0,5
Calcul de l'arrêt lent Trail2: ATR à 10 périodes * 3
Lorsque le prix dépasse Trail1, établir une position longue
Lorsque le prix continue à dépasser Trail2, ajustez l'arrêt à Trail2
Si le prix baisse en cas de rupture de Trail1, ajustez l'arrêt à Trail1
Si le prix continue à baisser en brisant Trail2, ajustez l'arrêt à Trail2
Enfin, si le prix atteint le niveau de stop, quittez la position avec stop loss
De cette façon, la stratégie peut maximiser le profit pendant les tendances haussières avec les arrêts de trailing tout en arrêtant rapidement les pertes lorsque la tendance s'inverse.
Les niveaux d'arrêt des pertes dynamiques sont fixés par ATR en fonction de la volatilité du marché
Le mécanisme de double arrêt équilibre entre les pertes d'arrêt et les tendances à la baisse
La direction longue s'aligne sur la tendance haussière globale, une rentabilité plus élevée
Logie simple et claire, facile à comprendre et à mettre en œuvre
Des règles strictes de stop loss limitent efficacement les pertes
Des paramètres ATR incorrects peuvent entraîner des arrêts trop larges ou trop serrés
La direction longue a un biais directionnel, prédisposé à des arrêts aux sommets du marché
Les règles de double arrêt sont complexes et peuvent échouer si elles ne sont pas correctement réglées.
Aucun filtre tel que les croisements EMA, peut entraîner de mauvaises transactions
Aucune gestion des positions ou des risques, risques de surtrading
Ces risques peuvent être réduits en optimisant les paramètres ATR, en ajoutant des filtres et en appliquant la gestion des risques.
Optimiser les combinaisons de paramètres ATR pour obtenir les meilleurs résultats
Ajouter des filtres comme EMA pour qualifier les signaux d'entrée
Incorporer des indicateurs tels que le RSI de Stoch pour un avantage supplémentaire
Ajouter une logique de réentrée pour optimiser la gestion de la position
Optimiser les règles de gestion des risques afin de limiter les pertes par arrêt de transaction
Incorporer des analyses au niveau du marché pour éviter les erreurs de direction
Considérez des stratégies de délai plus rapide comme horaire
Élargir à une stratégie universelle multi-marchés
Déployer un moteur de négociation de haute performance
Grâce à ces améliorations, la stratégie peut être plus robuste, stable et rentable.
La stratégie utilise des arrêts ATR clairs pour les entrées et les sorties longues. Les avantages résident dans ses règles de stop loss strictes pour limiter les pertes tout en suivant les tendances. Elle présente des risques de biais directionnel qui peuvent être réduits grâce à des optimisations telles que de meilleurs paramètres, l'ajout de filtres et l'amélioration de la gestion des risques.
/*backtest start: 2023-10-25 00:00:00 end: 2023-11-01 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ATR Trailing Stop Strategy (Long Position Only)", overlay=true) SC = input(close, "Source", input.source) // Fast Trail AP1 = input(5, "Fast ATR period", input.integer) AF1 = input(0.5, "Fast ATR multiplier", input.float) SL1 = AF1 * atr(AP1) 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), SC + SL1, na)) // Slow Trail AP2 = input(10, "Slow ATR period", input.integer) AF2 = input(3, "Slow ATR multiplier", input.float) SL2 = AF2 * atr(AP2) 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), SC + SL2, na)) Green = Trail1 > Trail2 and close > Trail2 and low > Trail2 Buy = crossover(Trail1, Trail2) plotshape(Buy, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) strategy.entry("Buy", strategy.long, when = Buy) var float trailingStopPrice = na if (Trail2 > trailingStopPrice) trailingStopPrice := Trail2 if (crossover(Trail1, Trail2)) trailingStopPrice := Trail2 strategy.exit("Exit", from_entry = "Buy", stop=trailingStopPrice)