//@version=4 //EU ESCREVI ISSO TUDO, PARA FICAR BEM CLARO strategy("SuperTrend DVD Strategy", overlay=true) //AQUI OS INPUTS PARA A SUPERTREND length = input(title="ATR Period", type=input.integer, defval=7) mult = input(title="ATR Multiplier", type=input.float, step=0.1, defval=7) showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true) //AQUI O CALCULO DO ATR STOPS atr = mult * atr(length) //AQUI A TRANSFORMAÇÃO DO ATR STOPS EM SUPERTREND //- //A LÓGICA PARA LONGSTOP longStop = close - atr longStopPrev = nz(longStop[1], longStop) longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop //A LÓGICA PARA SELLSTOP shortStop = close + atr shortStopPrev = nz(shortStop[1], shortStop) shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop //DIREÇÃO DO INDICADOR dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and close > shortStopPrev ? 1 : dir == 1 and close < longStopPrev ? -1 : dir //DEFININDO AS CORES DAS LINHAS DA SUPERTREND longColor = color.lime shortColor = color.red //PLOTANDO NO GRÁFICO A SUPERTREND E A ESTRATÉGIA plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=3, color=longColor) buySignal = dir == 1 and dir[1] == -1 plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=3, color=shortColor) sellSignal = dir == -1 and dir[1] == 1 //DEFININDO AS FUNÇÕES DE COMPRA E VENDA strategy.entry("long", strategy.long, when = buySignal) strategy.entry("short", strategy.short, when = sellSignal)