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.
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:
Parâmetros de entrada: definir o período EMA em 50.
Cálculo do indicador: utilizar a função ta.ema para calcular a EMA de 50 períodos.
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.
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.
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.
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.
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.
A estratégia tem ainda espaço para melhorias:
Combinar com Bandas de Bollinger para filtrar sinais e evitar sinais EMA incorretos.
Melhorar o mecanismo de stop loss com trailing stop loss, swing stop loss etc. para evitar uma saída prematura.
Otimizar os parâmetros da EMA com base em diferentes mercados e instrumentos de negociação para encontrar os períodos mais adequados.
Adicione o módulo de otimização de parâmetros automáticos para encontrar a combinação ideal.
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)