Estratégia de crossover de média móvel


Data de criação: 2023-11-23 13:38:02 última modificação: 2023-11-23 13:38:02
cópia: 0 Cliques: 631
1
focar em
1617
Seguidores

Estratégia de crossover de média móvel

Visão geral

A estratégia de cruzamento de equilíbrio é uma estratégia de negociação baseada em equilíbrio móvel. Ela usa um cruzamento de equilíbrio móvel rápido e equilíbrio móvel lento como sinais de compra e venda.

Princípio da estratégia

A estratégia usa a função sma para calcular a média móvel simples de um período especificado, como uma média rápida e uma média lenta. A estratégia tem um período de média rápida padrão de 18 dias, que pode ser ajustado por meio de parâmetros.

Quando a linha média rápida quebra a linha média lenta a partir da direção de baixo, a função crossunder é usada para detectar o sinal de cruzamento, gerando um sinal de compra. Quando a linha média rápida cai da direção de cima para baixo, a função crossover é usada para detectar o sinal de cruzamento, gerando um sinal de venda.

A estratégia permite a negociação automática por meio de sinais de trilha e sinais de saída. A entrada de cabeceira múltipla é acionada quando a linha média rápida quebra a linha média lenta de baixo; a entrada de cabeceira vazia é acionada quando a linha média rápida cai de cima para baixo. O sinal de saída correspondente também é gerado quando a linha média rápida se cruza para trás.

Análise de vantagens

  • O uso de cruzamentos de mediano móvel tem uma forte capacidade de rastreamento de tendências, capturando de forma eficaz as tendências de preços
  • A estratégia de linha média é simples, direta, lógica clara e fácil de entender.
  • Pode-se ajustar a estratégia de otimização de parâmetros de linha média para adaptar-se a diferentes circunstâncias de mercado
  • Estratégias para automatizar transações sem a intervenção humana e reduzir custos operacionais

Riscos e soluções

  • Quando o preço está na faixa de oscilação, ocorrem vários sinais de cruzamento ineficazes, trazendo o risco de negociações frequentes. Pode ser evitado adicionando condições de filtragem.
  • É necessário prestar atenção à otimização de parâmetros, pois diferentes parâmetros têm um grande impacto no desempenho da estratégia. Pode-se otimizar os parâmetros por meio do feedback ou introduzir uma linha de média adaptativa.
  • Existe um certo risco de falha, que pode ser combinado com outros indicadores de filtragem ou como condição auxiliar.
  • Pode-se introduzir uma estratégia de parada de perdas para controlar as perdas individuais.

Direção de otimização

  • Pode-se introduzir um parâmetro de linha média adaptativa ou dinâmica de otimização de linha média, para que o parâmetro de linha média seja ajustado dinamicamente e melhor acompanhar o mercado.
  • Pode-se adicionar condições de filtragem, evitando sinais errados quando os preços estão flutuando e a tendência não está clara. Por exemplo, a introdução de filtros de volume de transação.
  • Pode ser combinado com outros indicadores, como a faixa de brinquedo como filtro ou condição auxiliar de entrada, para melhorar o desempenho da estratégia.
  • Pode-se introduzir uma estratégia de stop loss para manter os perdas individuais dentro de limites aceitáveis.

Resumir

A estratégia de cruzamento de equilíbrio é uma estratégia de acompanhamento de tendências mais clássica e simples. Usando principalmente o cruzamento de equilíbrio como sinal de negociação, o princípio é simples e direto, fácil de entender, e pode ser implementado com parâmetros ajustados para se adaptar ao mercado. Mas também há algumas desvantagens, como a vulnerabilidade ao impacto de turbulências e mudanças de tendência, sinalização frequente, etc.

Código-fonte da estratégia
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 04:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

MASource   = input(defval = open, title = "MA Source")
MaLength   = input(defval = 18, title = "MA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)") 

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

MA = sma(MASource,MaLength)

plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(MA, close)
short = crossover(MA, close)

if (long)
    strategy.entry("LongId", strategy.long, when = long)
    strategy.exit("ExitLong", from_entry = "LongId", when = short)

if (short)
    strategy.entry("ShortId", strategy.short, when = short)
    strategy.exit("ExitShort", from_entry = "ShortId", when = long)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)