Stratégie d'arrêt des pertes de suivi des gradients

Auteur:ChaoZhang est là., Date: 2023-10-25 14:56:28 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie Gradient Trailing Stop Loss ajuste dynamiquement la ligne de stop loss pour équilibrer le contrôle des risques et la prise de profit. Elle utilise la plage moyenne vraie (ATR) pour calculer la ligne de stop loss et suit efficacement les tendances des prix, protégeant les bénéfices tout en réduisant les stop out inutiles. Cette stratégie fonctionne bien pour les actions avec des tendances fortes et peut générer des rendements stables.

Principaux

La stratégie utilise la plage moyenne vraie (ATR) comme base pour le stop loss dynamique. ATR reflète efficacement la volatilité d'un stock. La stratégie prend d'abord la période ATR comme entrée, généralement 10 jours. Ensuite, la valeur ATR est calculée. Au fur et à mesure que le prix augmente, la ligne de stop loss monte également pour suivre le prix. Lorsque le prix chute, la ligne de stop loss reste inchangée pour verrouiller les profits.

Plus précisément, la stratégie calcule l'ATR actuel, puis la multiplie par le facteur pour obtenir la distance d'arrêt de perte. Si le prix est supérieur au prix d'arrêt de perte, une position longue est ouverte. Si le prix est inférieur, une position courte est ouverte. Ainsi, la ligne d'arrêt de perte suit de près le prix, obtenant un effet de traînée de gradient.

Les avantages

  • Perte d'arrêt dynamique de trail ajustée à la distance d'arrêt selon les conditions du marché
  • ATR calcule la distance d'arrêt en fonction de la volatilité du marché
  • Simple et facile à automatiser le trading
  • La valeur de l'actif sous réserve de la modification de la valeur de l'actif sous réserve de la modification de la valeur de l'actif.
  • Saldes entre les pertes de cessation et les bénéfices
  • Réduit les arrêts inutiles

Les risques

  • Le choix des paramètres ATR appropriés est crucial
  • Les stops-loss trop rapprochés peuvent augmenter les stops-out inutiles
  • Le risque d'arrêt-perte trop élevé peut ne pas être contrôlé
  • La stratégie elle-même ne peut pas déterminer les tendances du marché
  • Nécessité d'évaluer la période et les paramètres des facteurs ATR

Améliorations

  • Ajouter des filtres comme les moyennes mobiles pour réduire les faux signaux
  • Optimiser automatiquement la période ATR et le facteur de perte d'arrêt par apprentissage automatique
  • Incorporer une stratégie de prise de bénéfices pour sécuriser les bénéfices
  • Combiner avec d'autres indicateurs pour vérifier les signaux d'achat/de vente
  • Rechercher un meilleur calcul de l'ATR ou une période dynamique d'ATR
  • Explorez d' autres algorithmes dynamiques d' arrêt de trail
  • Optimiser davantage l'effet stop loss

Conclusion

La stratégie Gradient Trailing Stop Loss équilibre efficacement le risque et le profit en ajustant dynamiquement la distance de stop loss. Avec une logique simple et une grande configuration, elle est adaptée au trading algorithmique.


/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy, by Ho.J.", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

// 백테스팅 시작일과 종료일 입력
startYear = input(2020, title="Start Year")
startMonth = input(1, title="Start Month")
startDay = input(1, title="Start Day")

endYear = input(9999, title="End Year")
endMonth = input(12, title="End Month")
endDay = input(31, title="End Day")

// 백테스팅 시간 범위 확인
backtestingTimeBool = (year >= startYear and month >= startMonth and dayofmonth >= startDay) and (year <= endYear and month <= endMonth and dayofmonth <= endDay)

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

var bool longCondition = false
var bool shortCondition = false

if backtestingTimeBool
    prevDirection = direction[1]
    if direction < 0
        longCondition := false
        shortCondition := true
    else if direction > 0
        longCondition := true
        shortCondition := false

if longCondition
    strategy.entry("My Long Entry Id", strategy.long)

if shortCondition
    strategy.entry("My Short Entry Id", strategy.short)

plot(strategy.equity, title="equity", color=color.rgb(255, 255, 255), linewidth=2, style=plot.style_area)

Plus de