A estratégia de Stop Loss Gradient Trailing ajusta dinamicamente a linha de stop loss para equilibrar o controle de risco e a tomada de lucro.
A estratégia usa a faixa média verdadeira (ATR) como base para o stop loss dinâmico. A ATR reflete efetivamente a volatilidade de um estoque. A estratégia primeiro leva o período ATR como entrada, normalmente 10 dias. Em seguida, o valor ATR é calculado. À medida que o preço sobe, a linha de stop loss também se move para cima para seguir o preço. Quando o preço cai, a linha de stop loss permanece inalterada para bloquear os lucros. Além disso, a estratégia permite ajustar a distância de stop loss do preço usando um parâmetro
Especificamente, a estratégia calcula o ATR atual, em seguida, multiplica-o pelo
A estratégia Gradient Trailing Stop Loss equilibra efetivamente risco e lucro ajustando dinamicamente a distância de stop loss. Com lógica simples e alta configurabilidade, é adequada para negociação algorítmica.
/*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)