Supertrend e estratégia de cruzamento da média móvel

Autora:ChaoZhang, Data: 2024-02-19 11:56:52
Tags:

img

Resumo

A estratégia é chamada de Supertrend e Moving Average Crossover Strategy. Combina o indicador Supertrend e médias móveis, indo longo quando a supertrend indica uma tendência de alta e a EMA de 10 dias está acima da SMA de 20 dias, e indo curto quando a supertrend indica uma tendência de queda e a EMA de 10 dias está abaixo da SMA de 20 dias. É uma estratégia típica de tendência.

Estratégia lógica

A estratégia usa o indicador de Supertrend para determinar a direção da tendência do mercado. A Supertrend é calculada com base na faixa média verdadeira e em um fator. Quando o preço está acima da linha Supertrend, é uma tendência de alta; quando o preço está abaixo da linha Supertrend, é uma tendência de queda. Nesta estratégia, o fator é definido em 3,0 e o comprimento ATR é 10.

Além disso, a estratégia usa a EMA de 10 dias e a SMA de 20 dias para construir médias móveis. A EMA (média móvel exponencial) atribui maior peso aos preços recentes, enquanto a SMA (média móvel simples) considera todos os dados com igual peso.

Em resumo, a lógica de geração de sinais comerciais é:

Entrada longa: Supertrend > 0 (uptrend) E EMA de 10 dias > SMA de 20 dias Entrada curta: Supertrend < 0 (downtrend) E EMA de 10 dias < SMA de 20 dias

Assim, determina a direção da tendência com Supertrend e usa o cruzamento da média móvel para confirmação adicional, para construir essa tendência seguindo a estratégia.

Análise das vantagens

A maior vantagem desta estratégia é a combinação de Supertrend e médias móveis, o que melhora a fiabilidade e a sensibilidade.

  1. Supertrend identifica claramente a tendência principal, reduzindo os falsos sinais
  2. O cruzamento EMA+SMA melhora a sensibilidade às alterações de tendência
  3. Julgar vários fatores melhora a confiabilidade
  4. Indicadores simples e claros, fáceis de compreender e otimizar
  5. Alta flexibilidade para ajustar parâmetros de Supertrend e MAs

Análise de riscos

Há alguns riscos nesta estratégia:

  1. Parâmetros Supertrend incorretos podem perder pontos de viragem
  2. Parâmetros MA incorretos podem gerar sinais falsos
  3. A selecção inadequada do período de backtest pode sobreestimar o desempenho
  4. Nenhuma consideração dos custos de negociação

Podemos testar diferentes valores de ATR e Fator para Supertrend, e diferentes valores de comprimento para MAs. Também o período de backtest deve cobrir diferentes ambientes de mercado. Os custos de negociação devem ser adicionados na negociação ao vivo.

Orientações de otimização

Há muito espaço para otimização:

  1. Ajustar o comprimento do ATR e o fator em Supertrend
  2. Ajustar o comprimento da EMA e da SMA
  3. Adicionar outros indicadores como RSI, MACD para filtragem de sinal
  4. Compre quando a Supertrend aparecer e a EMA atravessar a SMA após alguma duração
  5. Adicionar estratégia de stop loss

Isto pode melhorar ainda mais o desempenho e a estabilidade.

Conclusão

A estratégia combina Supertrend para direção de tendência e crossovers EMA+SMA para gerar sinais, um sistema típico de tendência seguinte.


/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend and Moving Averages Strategy", overlay=true)

// Supertrend parameters
atrLength = input.int(10, title="ATR Length", minval=1)
factor = input.float(3.0, title="Factor", minval=0.01, step=0.01)
[supertrend, direction] = ta.supertrend(factor, atrLength)

// Moving Averages parameters
length_ema = input(10, title="Length of EMA")
length_sma = input(20, title="Length of SMA")

// Calculate EMAs and SMAs
ema_10 = ta.ema(close, length_ema)
sma_20 = ta.sma(close, length_sma)

// Strategy logic
longCondition = ema_10 > sma_20 and direction > 0
shortCondition = ema_10 < sma_20 and direction < 0

strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot Supertrend
plot(direction > 0 ? supertrend : na, color=color.green, style=plot.style_line, linewidth=2, title="Up Trend")
plot(direction < 0 ? supertrend : na, color=color.red, style=plot.style_line, linewidth=2, title="Down Trend")

// Plot Moving Averages
plot(ema_10, color=color.blue, title="10 EMA")
plot(sma_20, color=color.red, title="20 SMA")

// Alerts for Supertrend
alertcondition(direction[1] > direction, title='Downtrend to Uptrend', message='The Supertrend value switched from Downtrend to Uptrend ')
alertcondition(direction[1] < direction, title='Uptrend to Downtrend', message='The Supertrend value switched from Uptrend to Downtrend')
alertcondition(direction[1] != direction, title='Trend Change', message='The Supertrend value switched from Uptrend to Downtrend or vice versa')


Mais.