La estrategia de Stop Loss Gradient Trailing ajusta dinámicamente la línea de stop loss para equilibrar el control de riesgos y la toma de ganancias. Utiliza el Rango Verdadero Medio (ATR) para calcular la línea de stop loss y rastrea de manera efectiva las tendencias de precios, protegiendo las ganancias al tiempo que reduce los stop out innecesarios.
La estrategia utiliza el rango promedio verdadero (ATR) como base para el stop loss dinámico. ATR refleja efectivamente la volatilidad de una acción. La estrategia primero toma el período ATR como entrada, generalmente 10 días. Luego se calcula el valor de ATR. A medida que el precio aumenta, la línea de stop loss también se mueve hacia arriba para arrastrar el precio. Cuando el precio cae, la línea de stop loss permanece sin cambios para bloquear las ganancias. Además, la estrategia permite ajustar la distancia de stop loss del precio utilizando un parámetro
Específicamente, la estrategia calcula el ATR actual, y luego lo multiplica por el
La estrategia Gradient Trailing Stop Loss equilibra eficazmente el riesgo y la ganancia ajustando dinámicamente la distancia de stop loss. Con una lógica simple y una alta configurabilidad, es adecuada para el comercio algorítmico. El ajuste adecuado de parámetros y las combinaciones de indicadores aún dependen de la experiencia humana.
/*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)