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

Autora:ChaoZhang, Data: 21 de setembro de 2023
Tags:

Resumo

Esta é uma estratégia típica de negociação de cruzamento de médias móveis. Ele usa os pontos de cruzamento de médias móveis rápidas e lentas como sinais de negociação. Quando a média móvel rápida cruza acima da média móvel lenta de baixo, ela é considerada um sinal de compra. Quando a média móvel rápida cruza abaixo da média móvel lenta de cima, ela é considerada um sinal de venda. Esta estratégia combina duas médias móveis e pode efetivamente filtrar o ruído do mercado e identificar tendências.

Princípios de estratégia

As principais etapas desta estratégia são:

  1. Defina o período de média móvel rápida (fastMA) e o período de média móvel lenta (slowMA).

  2. Calcule a média móvel rápida e a média móvel lenta com base no tipo de entrada Tipo. Tipo = 1 é a média móvel simples, Tipo = 2 é a média móvel exponencial.

  3. Configure o intervalo de tempo do backtest para início e fim.

  4. Definir a função de cruzamento: quando rápido cruza acima lento, gerar sinal de compra; quando rápido cruza abaixo lento, gerar sinal de venda.

  5. Quando a função de cruzamento for acionada, se estiver dentro do intervalo de tempo do backtest, emitir uma ordem longa aberta ou curta fechada.

  6. Quando a janela de backtest termina ou a função de cruzamento cruza abaixo, emitir ordem de fechamento longa.

  7. Trace a média móvel rápida e a média móvel lenta.

Esta estratégia utiliza o cruzamento de médias móveis rápidas e lentas para determinar a tendência dentro do período de detenção e gerar sinais de negociação em conformidade.

Análise das vantagens

As vantagens desta estratégia:

  1. As médias móveis são eficazes para determinar tendências e filtrar flutuações aleatórias.

  2. A combinação de médias móveis rápidas e lentas pode identificar mudanças de tendência.

  3. Os parâmetros das médias móveis podem ser ajustados para se adaptarem às diferentes tendências de períodos.

  4. Opção flexível entre médias móveis simples e exponenciais.

  5. A funcionalidade de backtest permite testar e otimizar parâmetros de estratégia.

  6. Lógica simples e clara, fácil de entender e implementar.

  7. O desenho de gráficos de médias móveis permite a determinação visual das tendências e efeitos.

Análise de riscos

Alguns riscos desta estratégia:

  1. Pode gerar sinais falsos durante períodos de alcance limitado.

  2. As médias móveis têm um efeito de atraso, podem perder pontos de virada.

  3. Baseia-se exclusivamente no cruzamento da média móvel, sem outros indicadores ou filtros.

  4. Não considera os custos comerciais.

  5. Não há estratégia de stop loss.

  6. Configurações de parâmetros não razoáveis podem afetar o desempenho da estratégia.

  7. A selecção inadequada do intervalo de tempo do backtest pode causar sobreajuste.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicione outros indicadores como MACD, RSI para confirmar sinais e melhorar a precisão.

  2. Adicionar estratégia de stop loss para controlar a perda única.

  3. Otimizar os parâmetros da média móvel para diferentes períodos.

  4. Adicionar o dimensionamento das posições com base nas condições de mercado.

  5. Considere os custos de negociação, ajuste os pontos de entrada e saída.

  6. Teste com um período de tempo mais longo para evitar sobreajuste.

  7. Optimize continuamente os parâmetros usando a análise de avanços.

Resumo

A estratégia de cruzamento de média móvel é uma estratégia simples e prática de tendência. Ela pode filtrar flutuações aleatórias e identificar direções de tendência. Mas também tem alguns problemas como efeito de atraso e deve ser combinada com outros indicadores. A otimização e teste contínuos podem melhorar o desempenho da estratégia e torná-la mais confiável para negociação ao vivo.


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

//@version=2
// strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// Revision:        1
// Author:          @ToS_MavericK

// === INPUT SMA ===
fastMA  = input(defval = 13,  title = "FastMA", minval = 1, step = 1)
slowMA  = input(defval = 144,  title = "SlowMA", minval = 1, step = 1)
Type    = input(defval = 1,  title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1)
SlowMAIsFactor = input(false)

slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA

// === INPUT BACKTEST RANGE ===
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 2020, title = "To Year", minval = 2012)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === MA SETUP ===
fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA)
slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA)

// === EXECUTION ===
strategy.entry("L", strategy.long, when = crossover(fast, slow) and window())   // buy long when "within window of time" AND crossover
strategy.close("L", when = crossunder(fast, slow) or time > finish)             // sell long when window ends OR crossunder         

plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line)  // plot FastMA
plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line)    // plot SlowMA

Mais.