Esta estrategia construye un canal de SuperTrend basado en el indicador Average True Range (ATR) para generar señales de compra y venta cuando el precio rompe el canal.
Las bandas superior e inferior del canal SuperTrend se calculan de la siguiente manera:
Bandas superiores = (Precio más alto + precio más bajo) / 2 + ATR (n) * Factor Bandas inferiores = (Precio más alto + precio más bajo) / 2 - ATR (n) * Factor
Donde ATR(n) es el rango verdadero promedio de n períodos y el factor es un parámetro ajustable, por defecto a 3.
Una señal alcista se genera cuando el precio de cierre cruza por encima de la banda superior. Una señal bajista se genera cuando el precio de cierre cruza por debajo de la banda inferior. La estrategia determina entradas y salidas basadas en estas señales.
Métodos de resolución de riesgos:
Esta estrategia utiliza el canal SuperTrend para el seguimiento de tendencias y la gestión de stop loss. La coincidencia entre el período ATR y los parámetros de factores es crucial.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Backtest", shorttitle="STBT", overlay=true) // Input for ATR Length atrLength = input.int(10, title="ATR Length", minval=1) atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01) // Calculate SuperTrend [supertrend, direction] = ta.supertrend(atrFactor, atrLength) supertrend := barstate.isfirst ? na : supertrend // Define entry and exit conditions longCondition = ta.crossover(close, supertrend) shortCondition = ta.crossunder(close, supertrend) // Plot the SuperTrend plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend") // Plot Buy and Sell signals plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal") // Strategy Entry and Exit strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition)