Стратегия сдерживания потерь динамически регулирует линию сдерживания потерь для сбалансирования контроля риска и получения прибыли. Она использует средний истинный диапазон (ATR) для расчета линии сдерживания потерь и эффективно отслеживает тенденции цен, защищая прибыль, сокращая ненужные остановки.
Стратегия использует средний истинный диапазон (ATR) в качестве основы для динамического стоп-лосса. ATR эффективно отражает волатильность акций. Стратегия сначала принимает период ATR в качестве ввода, обычно 10 дней. Затем рассчитывается значение ATR. По мере роста цены линия стоп-лосса также поднимается, чтобы отслеживать цену. Когда цена падает, линия стоп-лосса остается неизменной, чтобы блокировать прибыль. Кроме того, стратегия позволяет отрегулировать расстояние стоп-лосса от цены с помощью параметра
В частности, стратегия рассчитывает текущий ATR, затем умножает его на
Стратегия Gradient Trailing Stop Loss эффективно уравновешивает риск и прибыль, динамически регулируя расстояние стоп-лосса. Благодаря простой логике и высокой конфигурабельности, она подходит для алгоритмической торговли. Правильное настройка параметров и комбинации индикаторов все еще полагаются на человеческий опыт. Дальнейшая оптимизация может сделать эту стратегию еще более прибыльной.
/*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)