Die Gradient Trailing Stop Loss Strategie passt die Stop-Loss-Linie dynamisch an, um die Risikokontrolle und die Gewinnentnahme auszugleichen. Sie verwendet die Average True Range (ATR) zur Berechnung der Stop-Loss-Linie und verfolgt effektiv die Preisentwicklung, schützt die Gewinne und reduziert unnötige Stop-Outs. Diese Strategie funktioniert gut für Aktien mit starken Trends und kann eine stetige Rendite erzielen.
Die Strategie verwendet die Durchschnittliche Wahre Bandbreite (ATR) als Grundlage für den dynamischen Stop-Loss. ATR spiegelt effektiv die Volatilität einer Aktie wider. Die Strategie nimmt zunächst die ATR-Periode als Eingabe, typischerweise 10 Tage. Dann wird der ATR-Wert berechnet. Wenn der Preis steigt, bewegt sich auch die Stop-Loss-Linie nach oben, um den Preis zu verfolgen. Wenn der Preis fällt, bleibt die Stop-Loss-Linie unverändert, um Gewinne zu erzielen.
Speziell berechnet die Strategie den aktuellen ATR und multipliziert ihn dann mit dem
Die Gradient Trailing Stop Loss Strategie gleicht Risiko und Gewinn effektiv aus, indem sie die Stop-Loss-Distanz dynamisch anpasst. Mit einfacher Logik und hoher Konfigurationsfähigkeit ist sie für den algorithmischen Handel geeignet.
/*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)