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

Autora:ChaoZhang, Data: 2024-01-24 14:59:44
Tags:

img

Resumo

A estratégia de negociação da média móvel é uma estratégia de negociação quantitativa relativamente comum. Esta estratégia gera sinais de negociação calculando médias móveis de diferentes períodos e de acordo com suas situações de cruzamento. Especificamente, calcula as médias móveis exponenciais (EMA) de 4 períodos, 8 períodos e 20 períodos. Quando a EMA de curto prazo cruza acima da EMA de longo prazo, vá longo; quando a EMA de curto prazo cruza abaixo da EMA de longo prazo, vá curto.

Estratégia lógica

A lógica central desta estratégia é a seguinte:

  1. Calcular as linhas EMA de 4 períodos, 8 períodos e 20 períodos.
  2. Julgar a relação entre a linha EMA de 4 períodos e a linha EMA de 8 períodos:
    1. Quando a linha EMA de 4 períodos cruza acima da linha EMA de 8 períodos, significa que a tendência de preços está se fortalecendo, o que é um sinal de alta.
    2. Quando a EMA de 4 períodos cruza abaixo da EMA de 8 períodos, significa que a tendência de preços está a enfraquecer, o que é um sinal de baixa.
  3. Ao mesmo tempo, julgue a direcção da linha EMA de 20 períodos:
    1. Se a linha EMA de 20 períodos subir, então entre longo.
    2. Se a linha EMA de 20 períodos for para baixo, entre em curto.
  4. Quando a relação entre a linha EMA de 4 períodos e a linha EMA de 8 períodos se inverter, Prepare Exit.
  5. Quando a direcção da linha EMA de 20 períodos inverter, Exit Now.

Através deste método, aproveitamos o cruzamento entre diferentes médias móveis de período para julgar os sinais de mercado e usar a direção da média móvel do período mais longo para filtrar falsos sinais, construindo uma estratégia de negociação estável.

Vantagens da estratégia

As principais vantagens desta estratégia são:

  1. A lógica estratégica é simples e clara, fácil de compreender e implementar.
  2. A filtragem de dupla condição pode reduzir os falsos sinais.
  3. O impulso da EMA de 20 períodos pode identificar as principais tendências e reforçar a estabilidade.
  4. Parâmetros personalizáveis para ajustar a frequência de negociação.
  5. Fácil de combinar com outros indicadores ou modelos para construir estratégias complexas.

Riscos da Estratégia

Há também alguns riscos com esta estratégia:

  1. As estratégias de média móvel dupla tendem a gerar sinais falsos.
  2. Os períodos fixos não se adaptam às alterações do mercado.
  3. É fácil causar perdas durante as flutuações do mercado.

As principais soluções são:

  1. Redução adequada do período de detenção e suspensão das perdas a tempo.
  2. Otimizar dinamicamente os parâmetros e ajustar os períodos da média móvel.
  3. Combinar com outros indicadores ou modelos para criar estratégias complexas.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Optimização do período: Determinar a combinação óptima de períodos de MA de acordo com diferentes variedades.

  2. Optimização da perda de parada: definir pontos de perda de parada razoavelmente para controlar a perda única.

  3. Optimização de parâmetros: Optimize dinamicamente parâmetros usando algoritmos genéticos, cadeias de Markov, etc.

  4. Fusão do modelo: integrar com LSTM, RNN e outros modelos de aprendizagem profunda para extrair mais Alpha.

  5. Optimização da carteira: Combinar com outras estratégias de indicadores técnicos para construir carteiras de estratégia.

Resumo

Em geral, a estratégia de cruzamento da média móvel é uma estratégia quantitativa relativamente clássica e comumente usada. Esta estratégia tem uma lógica simples e é fácil de entender e implementar, com certa estabilidade. Mas também há alguns problemas, como gerar sinais falsos, incapacidade de se adaptar às mudanças do mercado, etc. Esses problemas podem ser melhorados por meio de otimização de parâmetros, otimização de stop loss, fusão de modelos e outros métodos.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2.05)
//stock strategy
strategy(title = "stub",   overlay = true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true, commission_type=strategy.commission.percent,commission_value=.0,default_qty_value=10000)


testStartYear = input(1900, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12, "Backtest Start Month")
testEndDay = input(1, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() => true

ema1 = ema(close,4)
ema2 = ema(close,8)
ema3 = ema(close,20)

go_long = ema1[0] > ema2[0] and ema3[0] > ema3[1]
exit_long = ema1[0] < ema2[0] or ema3[0] < ema3[1]

go_short = ema1[0] < ema2[0] and ema3[0] < ema3[1]
exit_short = ema1[0] > ema2[0] or ema3[0] > ema3[1]

 
if testPeriod()
    strategy.entry("simpleBuy", strategy.long, when=go_long)
    strategy.exit("simpleBuy", "simpleSell",when=exit_long)
    
    strategy.entry("simpleSell", strategy.short,when=go_short)
    strategy.exit("simpleSell", "simpleSell",when=exit_short)
        
    


Mais.