
La estrategia de seguimiento de pérdidas progresiva utiliza una combinación orgánica de ajuste dinámico de la línea de pérdidas, control de riesgos y captura de paradas. Utiliza un rango de fluctuación real promedio para calcular la línea de pérdidas y puede seguir de manera efectiva la tendencia de los precios de las acciones, reduciendo las pérdidas innecesarias al mismo tiempo que protege las ganancias. La estrategia es adecuada para acciones con una fuerte tendencia y obtiene ganancias estables.
La estrategia utiliza el cálculo del rango de fluctuación real promedio (ATR) como base para el stop loss dinámico. El ATR puede reflejar eficazmente la volatilidad de las acciones. La estrategia introduce primero el parámetro del ciclo ATR, típicamente de 10 días.
En concreto, la estrategia calcula el valor ATR de la línea K actual, y luego multiplica el parámetro de la barra de la barra de la barra de la barra, para obtener la distancia de parada. Si el precio de la acción es superior al precio de la parada, se abre una posición adicional; si el precio de la acción es inferior al precio de la parada, se abre una posición en blanco. De esta manera, la línea de parada se adhiere firmemente al precio de la acción, lo que permite el seguimiento progresivo de la línea de parada.
La estrategia de seguimiento de pérdidas progresiva logra un equilibrio eficaz entre el control de riesgos y la interceptación de paradas mediante el ajuste dinámico de la distancia de pérdidas. La estrategia es simple de operar y es altamente personalizable para el comercio automático de robots. Por supuesto, la selección de parámetros razonables y la combinación de indicadores aún requieren experiencia manual.
/*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)