Estratégia de cruzamento da média móvel

Autora:ChaoZhang, Data: 14 de setembro de 2023 14:55:49
Tags:

Estratégia lógica

A estratégia de cruzamento da média móvel gera sinais de compra e venda através do cálculo do cruzamento entre duas médias móveis de períodos diferentes. Um sinal longo é gerado quando o MA do período mais curto cruza acima do MA do período mais longo, enquanto um sinal curto é gerado no cruzamento descendente.

Por exemplo, fazer o longo quando a MA de 5 dias ultrapassa a MA de 21 dias e fechar o longo quando a MA de 5 dias ultrapassa novamente a MA de 21 dias.

A lógica de negociação é:

  1. Calcular dois MAs, um a curto prazo, por exemplo, de 5 dias e um a longo prazo, por exemplo, de 21 dias
  2. Caso a variação de valor seja igual ou superior a uma variação de valor, a variação de valor deve ser igual ou superior a uma variação de valor.
  3. Fechar o longo quando a MA de 5 dias cruzar novamente abaixo da MA de 21 dias
  4. Calcular de forma semelhante uma MA de 14 e 28 dias
  5. Caso o valor da posição em curto seja inferior ao valor da posição em curto
  6. Fechar o curto quando a MA de 14 dias cruzar de volta acima da MA de 28 dias

Diferentes combinações de períodos de MA podem corresponder às tendências a curto ou a longo prazo.

Vantagens

  • Simples e fáceis de implementar
  • Os MAs fornecem uma certa filtragem da tendência
  • Os parâmetros podem ser otimizados através de períodos de ajuste

Riscos

  • Preço de atraso da MA, atraso de tempo
  • Longs e shorts podem abrir simultaneamente
  • São propensos a ser esmagados em mercados agitados.

Resumo

A estratégia de cruzamento de MA usa cruzes de MA para gerar sinais, com períodos ajustáveis para se adequar aos ciclos do mercado.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("My Strategy", overlay=true)

longCondition = crossover(sma(close, 5), sma(close, 21))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

Mais.