Estratégia de Crossover de Média Móvel


Data de criação: 2023-09-21 10:28:27 última modificação: 2023-09-21 10:28:27
cópia: 0 Cliques: 667
1
focar em
1617
Seguidores

Visão geral

Esta estratégia é uma típica estratégia de negociação de cruzamento de médias móveis. Utiliza o cruzamento de médias móveis rápidas e médias móveis lentas como um sinal de compra. Quando a média móvel rápida atravessa a média móvel lenta de baixo, é considerada um sinal de compra; quando a média móvel rápida atravessa a média móvel lenta de cima para baixo, é considerada um sinal de venda.

Princípio da estratégia

A estratégia é executada através das seguintes etapas:

  1. Configure a média móvel rápida (fastMA) e a média móvel lenta (slowMA).

  2. De acordo com o tipo de entrada Type, calcula-se uma média móvel rápida e uma média móvel lenta. Type = 1 é a média móvel simples, Type = 2 é a média móvel exponencial.

  3. Configure o intervalo de tempo de retomada start e finish.

  4. Define a função de cruzamento: quando o fast atravessa o slow de cima para baixo, gera um sinal de compra; quando o fast atravessa o slow de cima para baixo, gera um sinal de venda.

  5. Quando a função de cruzamento é acionada, uma ordem de compra ou venda é emitida, se estiver dentro do intervalo de tempo de retracção.

  6. Ao final da janela de retrospecção ou quando a função de cruzamento é executada, é emitida uma instrução de fechamento.

  7. Traçar um gráfico de tendências de média móvel rápida (fast) e média móvel lenta (slow).

A estratégia julga a tendência no período de detenção através da interseção de médias móveis rápidas e lentas e, com base nisso, gera um sinal de negociação. Ao mesmo tempo, configura uma janela de tempo de retorno para simular a negociação real.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Usando a média móvel para determinar a tendência é muito eficaz e pode filtrar oscilações aleatórias.

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

  3. Pode-se ajustar os parâmetros da média móvel para se adaptar a tendências de diferentes períodos.

  4. Pode-se escolher uma média móvel simples ou uma média móvel indexada.

  5. Os parâmetros da estratégia podem ser testados e otimizados através da função de feedback.

  6. A lógica da estratégia é simples, clara e fácil de entender.

  7. Gravação de gráficos de médias móveis para intuir tendências e efeitos.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. No caso de uma falha na contagem, pode haver um sinal de erro.

  2. A média móvel tem um atraso e pode perder um ponto de viragem.

  3. Dependendo apenas da interseção linear, sem filtragem em combinação com outros indicadores ou condições.

  4. Não tem em conta os custos de transação.

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

  6. Parâmetros impróprios podem afetar a eficácia da estratégia.

  7. A escolha errada do intervalo de tempo de detecção pode ter gerado um excesso de correspondência.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Combinação com outros indicadores como MACD, RSI e outros para verificar o sinal, aumentando a precisão.

  2. Adicionar estratégias de stop loss para controlar as perdas individuais.

  3. Optimizar os parâmetros da média móvel para adaptá-los a diferentes períodos.

  4. Adição de gerenciamento de posições abertas, com diferentes posições em diferentes condições de mercado.

  5. O preço de entrada e saída é alterado para ter em conta os custos de transação.

  6. Teste os dados por um período de tempo mais longo, evitando a sobreconfiguração.

  7. Otimizar continuamente os parâmetros usando a análise de caminhadas adiante.

Resumir

A estratégia de cruzamento de médias móveis é uma estratégia de acompanhamento de tendências simples e práticas. Pode filtrar oscilações aleatórias e identificar a direção da tendência. Mas também há alguns problemas, como atraso, que devem ser usados em combinação com outros indicadores.

Código-fonte da estratégia
/*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