Estratégia transversal da EMA

Autora:ChaoZhang, Data: 2023-11-24 13:49:45
Tags:

img

Resumo

Esta estratégia é uma estratégia de negociação baseada no cruzamento da média móvel exponencial (EMA). Ele usa a EMA de 50 períodos como o principal indicador técnico. Quando a linha de preço cruza acima da EMA de baixo, vá longo. Quando a linha de preço cruza abaixo da EMA de cima, vá curto para lucro.

Estratégia lógica

A ideia central é usar a EMA de 50 períodos como uma ferramenta para julgar a tendência dos preços. A linha EMA pode suavizar os dados de preços e remover o ruído do mercado de curto prazo para refletir as tendências de preços de longo prazo. Quando a linha de preço cruza acima da linha EMA de baixo, indica que os preços estão começando a subir, o que é uma chance de ir longo. Quando a linha de preço cruza abaixo da linha EMA de cima, indica que os preços estão começando a cair, o que é uma oportunidade de ir curto.

Em especial, a estratégia inclui principalmente os seguintes aspectos:

  1. Parâmetros de entrada: definir o período EMA em 50.

  2. Cálculo do indicador: utilizar a função ta.ema para calcular a EMA de 50 períodos.

  3. Condições de entrada: um sinal longo é gerado quando o preço cruza acima da EMA e um sinal curto é gerado quando o preço cruza abaixo da EMA.

  4. Condições de saída: registar o preço mais alto/mais baixo ao entrar. Sair quando o preço quebra esse nível mais tarde.

  5. Visualização: traçar a linha EMA e marcar os pontos de entrada e saída para long/short.

Desta forma, podemos negociar ao longo da direção da tendência e parar a perda em tempo hábil quando o preço começa a reverter.

Análise das vantagens

Em comparação com outros indicadores e estratégias, a estratégia de cruzamento da EMA tem várias vantagens significativas:

Simples e intuitivoO único indicador central é a EMA, que é fácil de entender e operar.

Ajuste flexívelO período da EMA pode ser ajustado de forma muito flexível de acordo com os diferentes mercados e produtos.

Apanha a tendênciaA EMA pode efetivamente suavizar os dados de preços e capturar as alterações de tendência a médio e longo prazo.

Controle de extracçãoUsar o novo preço mais alto / mais baixo para parar a perda que pode controlar os drawdowns muito bem.

Riscos e soluções

A estratégia apresenta igualmente alguns riscos, nomeadamente:

Desaparecida tendênciaQuando os preços flutuam violentamente, a EMA pode não capturar pontos de reversão em tempo hábil e perder oportunidades de mudança de tendência.

Previsão de prejuízo. O ponto de stop loss toma diretamente o preço mais alto / mais baixo quando o sinal aparece. Pode ser muito fácil de alcançar e parar a perda prematuramente.

Ajuste de parâmetrosOs parâmetros como o período EMA precisam ser ajustados com base na volatilidade, ciclo etc.

Direcção da melhoria

A estratégia tem ainda espaço para melhorias:

  1. Combinar com Bandas de Bollinger para filtrar sinais e evitar sinais EMA incorretos.

  2. Melhorar o mecanismo de stop loss com trailing stop loss, swing stop loss etc. para evitar uma saída prematura.

  3. Otimizar os parâmetros da EMA com base em diferentes mercados e instrumentos de negociação para encontrar os períodos mais adequados.

  4. Adicione o módulo de otimização de parâmetros automáticos para encontrar a combinação ideal.

Conclusão

A estratégia determina a tendência do preço com base no indicador EMA e vai longo na cruz de ouro e vai curto na cruz de morte. A estratégia é simples de operar e pode negociar ao longo da direção da tendência com controle de stop loss. A estratégia pode ser ainda mais otimizada combinando mais indicadores de filtro, melhorando os mecanismos de stop loss, etc. Em geral, a estratégia de crossover da EMA vale a pena prestar atenção e considerar.


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

//@version=5
strategy("EMA 50 Crossover Strategy", shorttitle="EMA 50 xover", overlay=true)

// Input for EMA length
emaLength = input(50, title="EMA Length")

// Calculate EMA 50
ema50 = ta.ema(close, emaLength)

// Define conditions for long entry
longCondition = ta.crossover(close, ema50)

// Define conditions for short entry
shortCondition = ta.crossunder(close, ema50)

// Calculate the high of the signal candle for long entry
var float longSignalHigh = na
if (longCondition)
    longSignalHigh := high

// Calculate the low of the signal candle for short entry
var float shortSignalLow = na
if (shortCondition)
    shortSignalLow := low

// Long entry
plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Short entry
plotshape(series=shortCondition, title="Short Entry Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Exit conditions
longExitCondition = ta.crossunder(close, longSignalHigh)
shortExitCondition = ta.crossover(close, shortSignalLow)

// Plot exit signals
plotshape(series=longExitCondition, title="Long Exit Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=shortExitCondition, title="Short Exit Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Strategy entry and exit logic
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=longExitCondition)
strategy.close("Short", when=shortExitCondition)

// Plot EMA 50
plot(ema50, title="EMA 50", color=color.blue)


Mais.