Tendência do EMA na sequência da estratégia

Autora:ChaoZhang, Data: 2023-10-16 15:54:41
Tags:

img

Resumo

A estratégia de seguimento de tendências da EMA é uma estratégia de rastreamento de tendências baseada no indicador EMA. Ela julga a direção da tendência calculadora da linha EMA de um período especificado e segue a tendência. Ela fica curta quando o preço cruza acima da linha EMA e fica longa quando o preço cruza abaixo da linha EMA. Esta é uma estratégia típica de seguimento de tendências.

Estratégia lógica

O núcleo desta estratégia é determinar a tendência usando o indicador EMA. A EMA é uma média móvel exponencial que dá mais peso aos preços recentes e responde mais rapidamente às mudanças de preço. Ao calcular o preço médio durante um período de EMA, produz uma curva suavizada. Quando o preço atravessa acima da linha EMA de baixo, ele sinaliza uma tendência ascendente; quando o preço atravessa abaixo da linha EMA de cima, ele sinaliza uma tendência descendente.

Com base nessa lógica, a estratégia é curta quando o preço ultrapassa a EMA e longa quando o preço ultrapassa a EMA, acompanhando a tendência seguindo a linha EMA. Especificamente, calcula uma EMA de 8 períodos no preço de fechamento - curta quando o fechamento ultrapassa a EMA e longa quando o fechamento ultrapassa a EMA. Também define um stop loss para controlar os riscos.

Vantagens

  • A EMA suaviza as flutuações de preços, filtra o ruído do mercado e acompanha as tendências a médio e longo prazo.

  • Frequência razoável de negociação: em comparação com os indicadores de período mais curto, a EMA apresenta uma frequência de ajustamento média, evitando o excesso de negociação.

  • A estratégia baseia-se apenas num indicador da EMA, mas atinge o objectivo de seguir a tendência.

  • A estratégia pode ser reforçada através da otimização dos parâmetros da EMA ou da adição de outros indicadores.

Riscos e soluções

  • Quando os preços revertem rapidamente, a EMA precisa de tempo para se ajustar e pode perder os melhores pontos de entrada.

  • Aumento das perdas. A EMA segue as tendências e não pode determinar com precisão os pontos de ajuste. As reversões podem levar a grandes perdas. A solução é definir um stop loss razoável.

  • Frequência muito alta ou muito baixa. Diferentes períodos de EMA levam a diferentes freqüências de negociação. Muito curto pode exagerar o comércio, muito longo pode perder oportunidades. A solução é testar diferentes períodos de EMA para encontrar o ideal.

Sugestões de melhoria

  • Otimize os parâmetros da EMA para encontrar o melhor equilíbrio.

  • Adicione outros indicadores para determinar pontos de ajuste. Combine com indicadores como RSI para detectar melhor reversões.

  • Otimizar a estratégia de stop loss para encontrar o melhor nível de stop loss através de backtesting.

  • Otimizar a selecção dos símbolos e ajustar os períodos de EMA com base nas características dos símbolos para obter os melhores resultados.

Resumo

A estratégia de acompanhamento de tendências da EMA é uma estratégia muito típica de acompanhamento de tendências baseada em um indicador. É simples e fácil de implementar, adequado para iniciantes aprenderem. Enquanto isso, tem extensão para melhorar ainda mais a estratégia adicionando indicadores ou otimizando parâmetros. Com melhorias contínuas, pode se tornar uma ferramenta muito prática de acompanhamento de tendências.


/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

EmaSource   = input(defval = close, title = "EMA Source")
EmaLength   = input(defval = 8, title = "EMA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
stopLoss = input(30, title = "Stop loss percentage(0.1%)") 
UseStopLoss = input(true,"UseStopLoss")

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false



EMA = ema(EmaSource,EmaLength)

plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(EMA, close)
short= crossover(EMA, close)

if (long)
    strategy.entry("LongId", strategy.long, when=window())
    
if (short)
    strategy.entry("ShortId", strategy.short, when=window())

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)

Mais.