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