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.
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.
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.
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.
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.
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)