Tendência de seguir a estratégia da média móvel exponencial

Autora:ChaoZhang, Data: 2023-12-01 13:46:46
Tags:

img

Resumo

A estratégia de média móvel exponencial é uma estratégia quantitativa de negociação baseada em tendências. Ela usa médias móveis exponenciais (EMA) com diferentes períodos para identificar sinais de entrada e saída em potencial no mercado de criptomoedas.

Estratégia lógica

A estratégia emprega quatro EMAs com períodos de 8, 12, 24 e 72 respectivamente. Eles servem como guias visuais no gráfico para a direção da tendência.

Há dois sinais de entrada:

  1. Pullback Entry: O cruzamento do preço de fechamento sobre as EMAs de 12, 24 e 72 períodos constitui um sinal de entrada de pullback.
  2. Entrada de tendência: O cruzamento do preço de fechamento sobre a EMA de 72 períodos, juntamente com a EMA de 8 períodos, cruzando simultaneamente sobre as EMA de 12 e 24 períodos, constitui um sinal de entrada de tendência.

Há três sinais de saída:

  1. Obtenção de lucro fixo: um valor fixo, como 100 pips, definido como meta de lucro.
  2. Trailing Stop Loss: uma parada fixa de trailing, como 50 pips.
  3. Exit de reversão: a passagem da EMA de 24 períodos abaixo da EMA de 12 períodos indica uma reversão da tendência para a saída.

Análise das vantagens

A maior vantagem desta estratégia é a capacidade de capitalizar tanto as oportunidades de retração quanto as de tendência. Usando combinações de EMA mais rápidas e mais lentas evita ser enganado por flutuações de curto prazo.

  1. Forte capacidade de acompanhamento de tendências para captar rapidamente as alterações do mercado.
  2. Alta precisão na identificação da direcção da tendência.
  3. Boa flexibilidade para entrar em tendências e retrações.
  4. Controle de risco sólido com mecânica de stop loss.

Análise de riscos

Alguns riscos devem ser evitados:

  1. Risco decorrente de configurações inadequadas de parâmetros-chave, como períodos de EMA, que afetam o desempenho da estratégia.
  2. Risco de avaliação errada dos sinais de reversão da tendência provenientes de cruzamento da EMA.
  3. Stop loss excessivamente agressivo causando excesso de saída.

As seguintes medidas podem ajudar a controlar os riscos acima referidos:

  1. Otimizar os parâmetros selecionando combinações de períodos EMA adequadas.
  2. Adicionar outros indicadores para confirmar as reversões.
  3. Mecanismo de suspensão de perdas de sintonia fina, relaxando os níveis de suspensão.

Orientações de otimização

Há espaço para uma maior otimização:

  1. Adicione outros filtros como o MACD e as Bandas de Bollinger para melhorar a precisão.
  2. Ajustar dinamicamente os níveis de stop loss para condições de alta volatilidade.
  3. Teste em diferentes símbolos e prazos para encontrar as melhores configurações.
  4. Personalizar metas de lucro e stop loss com base no apetite pelo risco.

Conclusão

Em geral, esta estratégia de rastreamento da EMA capitaliza tanto as oportunidades de tendência quanto de retração por meio de crossovers da EMA para as entradas. Com alta configurabilidade, simplicidade e controle de risco eficaz, ela tem grande potencial para maior desempenho com ajuste de parâmetros e refinamentos incrementais.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © moondevonyt

//@version=5
strategy("Cornoflower Trend Following Crypto", overlay=true)

// Input Settings
lenEma8 = input(8, title="Length of 8 EMA")
lenEma12 = input(12, title="Length of 12 EMA")
lenEma24 = input(24, title="Length of 24 EMA")
lenEma72 = input(72, title="Length of 72 EMA")

// Calculate the EMAs
ema8 = ta.ema(close, lenEma8)
ema12 = ta.ema(close, lenEma12)
ema24 = ta.ema(close, lenEma24)
ema72 = ta.ema(close, lenEma72)

// Entry Conditions
pullbackEntry = ta.crossover(close, ema12) and ta.crossover(close, ema24) and ta.crossover(close, ema72)
initialEntry = ta.crossover(close, ema72) and ta.crossover(ema8, ema12) and ta.crossover(ema8, ema24)

// Exit Conditions
profitTarget = 100 // Example target in pips, adjust according to your preference
trailingStop = 50 // Example trailing stop value in pips, adjust according to your preference
exitCondition = ta.crossunder(ema12, ema24)

// Execute Strategy
if pullbackEntry
    strategy.entry("Pullback Entry", strategy.long)
if initialEntry
    strategy.entry("Initial Entry", strategy.long)

if strategy.position_size > 0
    strategy.exit("Profit Target", "Pullback Entry", limit=close + (profitTarget * syminfo.mintick))
    strategy.exit("Trailing Stop", "Pullback Entry", stop=close - (trailingStop * syminfo.mintick), trail_points=trailingStop)
    strategy.exit("Exit Condition", "Initial Entry", stop=close, when=exitCondition)
    
// Plot EMAs
plot(ema8, color=color.yellow, title="8 EMA", linewidth=1, style=plot.style_line)
plot(ema12, color=color.purple, title="12 EMA", linewidth=1, style=plot.style_line)
plot(ema24, color=color.blue, title="24 EMA", linewidth=1, style=plot.style_line)
plot(ema72, color=color.rgb(235, 255, 59), title="72 EMA", linewidth=1, style=plot.style_line)

Mais.