Estratégia de Supertrend

Autora:ChaoZhang, Data: 2023-12-13 14:40:24
Tags:

img

Resumo

A estratégia Sunny Supertrend é uma estratégia de tendência baseada nos indicadores ATR e SuperTrend. Ela pode prever com precisão inversões de tendência e funciona perfeitamente como um indicador de tempo. A estratégia pode aumentar a paciência e ajudar os traders a entrar e sair dos mercados no momento certo.

Estratégia lógica

A estratégia usa o indicador SuperTrend para determinar a direção da tendência atual. Quando o indicador SuperTrend muda de direção, pensamos que uma reversão de tendência pode ocorrer. Além disso, a estratégia também usa a direção dos corpos de velas para julgamento auxiliar. Quando um sinal de reversão potencial aparece e a direção do corpo do velas é consistente com a anterior, o sinal inválido é filtrado.

Especificamente, a estratégia gera sinais de negociação de acordo com a seguinte lógica:

  1. Usar o indicador SuperTrend para determinar a direcção principal da tendência
  2. Quando o indicador SuperTrend muda de direção, é gerado um sinal de reversão potencial
  3. Se a direção do corpo do candelabro é consistente com o anterior neste momento, o sinal de inversão é filtrado para fora
  4. Se a direção do corpo do candelabro mudar, o sinal de reversão é confirmado e um sinal de negociação é gerado

Análise das vantagens

  1. Com base no indicador Supertrend, pode determinar com precisão os pontos de reversão da tendência
  2. Filtrar sinais inválidos combinando as direções do corpo do candelabro para melhorar a qualidade do sinal
  3. Adequado como indicador de calendário para orientar os investidores na escolha de um momento razoável de entrada e saída
  4. Amplamente aplicável a qualquer período de tempo e a diferentes variedades, com forte adaptabilidade

Riscos e soluções

  1. O indicador Supertrend tende a gerar sinais redundantes que precisam ser filtrados Solução: Esta estratégia usa a direção do corpo do candelabro para julgamento auxiliar para filtrar efetivamente sinais inválidos

  2. Os parâmetros da super-tendência são propensos a uma otimização excessiva
    Solução: Use parâmetros padrão para evitar ajustes manuais e otimização excessiva

  3. Incapaz de processar inversões de tendência ultra-rápidas Solução: Ajustar adequadamente o parâmetro do período ATR para fazer face a movimentos mais rápidos do mercado

Orientações de otimização

  1. Tente diferentes combinações de parâmetros do período ATR
  2. Adicionar indicadores de volume ou volatilidade para ajudar a filtrar sinais
  3. Combinar com outros sistemas para melhorar o desempenho da estratégia
  4. Desenvolver mecanismos de stop loss para controlar perdas individuais

Conclusão

A estratégia Sunny Supertrend é uma estratégia de reversão de tendência eficiente baseada no indicador SuperTrend. Combina direções do corpo do velas para julgamento auxiliar, que podem efetivamente filtrar sinais inválidos e melhorar a qualidade do sinal. Esta estratégia é simples de operar, altamente adaptável e pode ser amplamente usada em vários produtos e prazos.


/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Sunny Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

shor= close > open and close[1] > open[1] and close[2] > open[2] 
lon = open > close and open[1] > close[1] and  open[2] > close[2]
tt= ta.change(direction) < 0
ss= ta.change(direction) > 0
long= tt
longexit = lon or ss
short= ss
shortexit = shor or tt

longPosMem = false
longexitPosMem = false
shortPosMem = false
shortexitPosMem = false

longPosMem := long ? true : short ? false : longPosMem[1]
longexitPosMem := longexit ? true : shortexit ? false : longexitPosMem[1]
shortPosMem := short ? true : long ? false : shortPosMem[1]
shortexitPosMem := shortexit ? true : longexit ? false : shortexitPosMem[1]

longy = long and not(longPosMem[1])
longexity = longexit and not(longexitPosMem[1])
shorty = short and not(shortPosMem[1])
shortexity = shortexit and not(shortexitPosMem[1])

//Use this to customize the look of the arrows to suit your needs.
plotshape(longy, location=location.abovebar, color=color.green, style=shape.arrowup, text="Buy")
plotshape(longexity, location=location.top, color=color.green, style=shape.xcross, text="Buy exit")
plotshape(shorty, location=location.belowbar, color=color.red, style=shape.arrowdown, text="Sell")
plotshape(shortexity, location=location.bottom, color=color.red, style=shape.xcross, text="Sell exit")


//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
// STEP 1:
// Make input options that configure backtest date range
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", 
     defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

endDate = input.int(title="End Date",
     defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month",
     defval=2, minval=1, maxval=12)
endYear = input.int(title="End Year",
     defval=2021, minval=1800, maxval=2100)

// STEP 2:
// Look if the close time of the current bar
// falls inside the date range
inDateRange =  true



// STEP 3:
// Submit entry orders, but only when bar is inside date range
if (inDateRange and longy)
    strategy.entry("enter long",strategy.long,when= longy)
    strategy.close("long",when=longexity)


if (inDateRange and shorty)
    strategy.entry("enter short",strategy.short,when = shorty)
    strategy.close("short", when=shortexity)


Mais.