Estratégia de negociação cruzada de média móvel

Autora:ChaoZhang, Data: 2023-11-27 17:25:36
Tags:

img

Resumo

A estratégia de negociação de cruzamento de média móvel gera sinais de compra e venda quando as médias móveis de curto e longo prazo se cruzam.

Estratégia lógica

Esta estratégia calcula a média móvel exponencial (EMA) de 20 e 50 períodos. Ativa a posição longa quando a EMA de 20 cruza a EMA de 50. Ativa a posição curta quando a EMA de 20 cruza abaixo da EMA de 50.

A EMA dá mais peso aos dados recentes.

EMA hoje = (Preço hoje * k) + EMA ontem * (1-k)

Onde k = 2/(número de períodos + 1)

Quando a EMA de curto prazo cruza a EMA de longo prazo, indica uma mudança de preço de alta para LONG.

Vantagens

Os prós desta estratégia:

  1. Lógica simples, fácil de entender e executar
  2. Menos capital exigido, menores saques
  3. Ajuste flexível dos parâmetros para diferentes mercados
  4. Aplicável a todos os instrumentos de scalping ou de negociação de tendências

Riscos e melhorias

Os riscos incluem:

  1. Sinais de negociação frequentes durante oscilações de preços.
  2. Stop loss necessário para evitar ser preso.
  3. A otimização de parâmetros requer mais dados históricos.

Melhorias:

  1. Adicionando filtros como Bandas de Bollinger para reduzir falsos sinais
  2. Adicionar stop loss/take profit para evitar ficar preso
  3. Encontrar conjuntos de parâmetros ideais para diferentes instrumentos
  4. Combinação com o volume para confirmar sinais

Conclusão

A estratégia de cruzamento da média móvel é uma estratégia técnica simples, mas eficaz, comprovada pelo mercado.


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © brandlabng

//@version=5
//study(title="Holly Grail", overlay = true)
strategy('HG|E15m', overlay=true)
src = input(close, title='Source')

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(20, title='1st MA Length')
type1 = input.string('EMA', '1st MA Type', options=['EMA'])

ma2 = input(50, title='2nd MA Length')
type2 = input.string('EMA', '2nd MA Type', options=['EMA'])

price1 = if type1 == 'EMA'
    ta.ema(price, ma1)

price2 = if type2 == 'EMA'
    ta.ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2)
plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2)


longCondition = ta.crossover(price1, price2)
if longCondition
    strategy.entry('Long', strategy.long)

shortCondition = ta.crossunder(price1, price2)
if shortCondition
    strategy.entry('Short', strategy.short)

Mais.