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

Autora:ChaoZhang, Data: 2024-01-23 15:20:16
Tags:

img

Resumo

Esta é uma estratégia de negociação baseada em sinais cruzados de média móvel.

Estratégia lógica

Quando o preço sobe e rompe acima da linha média móvel de 45 dias, um sinal de compra é gerado. Depois de manter a posição por 8 dias, um sinal de venda é gerado.

Os princípios lógicos específicos são:

  1. Calcule a linha média móvel de 45 dias.
  2. Quando o preço de fechamento rompe abaixo para acima da linha média móvel, um sinal de compra é gerado para ir longo.
  3. Manter a posição durante 8 dias após a entrada no mercado.
  4. Fechar a posição longa após 8 dias e gerar um sinal de venda.
  5. Se, posteriormente, o preço de fechamento romper novamente abaixo para acima da linha da média móvel, regenere um sinal de compra para reabrir uma posição longa.

O que precede constitui a lógica de negociação central desta estratégia.

Vantagens

Esta estratégia tem as seguintes vantagens:

  1. As regras comerciais são simples e claras, fáceis de compreender e de aplicar.
  2. Utiliza o recurso de rastreamento de tendências das médias móveis para capturar efetivamente tendências de médio a longo prazo.
  3. O período de detenção de 8 dias é suficientemente longo para acompanhar as tendências e suficientemente curto para reduzir as perdas a tempo.
  4. As regras para a reentrada no mercado são claras, o que ajuda a restringir a frequência das operações.

Riscos

Há alguns riscos com esta estratégia:

  1. A natureza atrasada das médias móveis pode levar a entradas tardias e saídas prematuras.
  2. O período de detenção fixo e os parâmetros do MA podem não se adaptar às condições de mercado em evolução.
  3. A frequência de negociação pode ser demasiado elevada, aumentando os custos e o deslizamento.
  4. Os sinais de ruptura podem produzir sinais falsos, resultando em alguns whipssaws.

Soluções:

  1. Otimizar os parâmetros de MA para reduzir o atraso.
  2. Aumentar o período de retenção ou utilizar paradas de trail para melhor acompanhar as tendências.
  3. Adicionar filtros usando outros indicadores como MACD ou KDJ para confirmar sinais.
  4. Refine as regras de reentrada para controlar a frequência.

Áreas de melhoria

As principais áreas de reforço são:

  1. Otimizar os parâmetros de MA para encontrar as melhores combinações, por exemplo, MA de 15 dias, 30 dias, 60 dias.

  2. Otimizar o período de retenção para determinar a duração ideal, por exemplo, 5 dias, 10 dias, 15 dias.

  3. Adicionar paradas de atraso para acompanhar as tendências e controlar os riscos, por exemplo, paradas de ensaio ou paradas de ATR.

  4. Adicione filtros usando outros indicadores como MACD, KDJ para reduzir falsos sinais.

  5. Refinar as regras de reentrada para evitar o excesso de negociação, por exemplo, impor períodos de reflexão.

  6. Eficiência dos testes em diferentes mercados e instrumentos.

Resumo

Em resumo, esta estratégia de cruzamento de MA é um sistema simples e prático de acompanhamento de tendências. Ele aproveita a capacidade de rastreamento de tendências de MA e combina quebras de preço para gerar sinais comerciais. Os prós são fáceis de implementar, enquanto os contras são whipssaws ocasionais. A estratégia pode ser melhorada através da otimização de parâmetros e adicionando outros indicadores como filtros.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Calculate the 45-day moving average
ma_length = 45
ma = ta.sma(close, ma_length)

// Track position entry and entry bar
var bool in_long_position = na
var int entry_bar = na
var int exit_bar = na

// Entry condition: Close price crosses above the 45-day moving average to enter the position
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1])
    in_long_position := true
    entry_bar := bar_index

// Exit condition: Close the position after holding for 8 trading days
if (in_long_position and bar_index - entry_bar >= 8)
    in_long_position := false
    exit_bar := bar_index

// Re-entry condition: Wait for price to cross over the 45-day moving average again
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8))
    in_long_position := true
    entry_bar := bar_index

// Execute long entry and exit
if (in_long_position)
    strategy.entry("Long", strategy.long)

if (not in_long_position)
    strategy.close("Long")

Mais.