Esta estratégia constrói um canal SuperTrend baseado no indicador Average True Range (ATR) para gerar sinais de compra e venda quando o preço atravessa o canal.
As bandas superior e inferior do canal SuperTrend são calculadas como:
Faixa superior = (Preço mais alto + Preço mais baixo) / 2 + ATR ((n) * Fator Faixa inferior = (Preço mais alto + Preço mais baixo) / 2 - ATR (n) * Fator
Onde ATR(n) é a faixa média verdadeira de n períodos e o fator é um parâmetro ajustável, por defeito para 3.
Um sinal de alta é gerado quando o preço de fechamento cruza acima da faixa superior. Um sinal de baixa é gerado quando o preço de fechamento cruza abaixo da faixa inferior. A estratégia determina entradas e saídas com base nesses sinais.
Métodos de resolução de riscos:
Esta estratégia usa o canal SuperTrend para rastreamento de tendências e gerenciamento de stop loss. A correspondência entre o período ATR e os parâmetros do fator é crucial. O próximo passo é otimizar ainda mais a estratégia por meio de ajuste de parâmetros, filtragem de sinal etc., tornando-a adaptável a ambientes de mercado mais complexos.
/*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)