Sistema de cruzamento de média móvel tripla

Autora:ChaoZhang, Data: 2023-09-28 15:33:14
Tags:

Resumo

O sistema de cruzamento de média móvel tripla é uma estratégia típica de negociação de ações que segue a tendência. Ele usa o cruzamento de três médias móveis de diferentes comprimentos de tempo como sinais de compra e venda. Quando a média móvel de curto período cruza acima da média móvel de médio período e a média móvel de médio período cruza acima da média móvel de longo período, um sinal de compra é gerado. Quando a média móvel de curto período cruza abaixo da média móvel de médio período e a média móvel de médio período cruza abaixo da média móvel de longo período, um sinal de venda é gerado.

Estratégia lógica

A estratégia baseia-se em três médias móveis: a média móvel de longo período ma1, a média móvel de médio período ma2 e a média móvel de curto período ma3.

length1 = input(18,'长线')  
length2 = input(9,'中线')
length3 = input(4,'短线')

ma1 := sma(close,length1)
ma2 := sma(close,length2) 
ma3 := sma(close,length3)

A função sma calcula a média móvel simples do preço de fechamento ao longo do comprimento correspondente.

Em seguida, utiliza o cruzamento das três médias móveis para determinar entradas e saídas:

if ma2 > ma1 and ma3 > ma3[1]
    strategy.entry("Long", strategy.long)

if ma2 < ma1 and ma3 < ma3[1] 
    strategy.entry("Short", strategy.short)

Quando o médio prazo ma2 cruza acima do longo prazo ma1, e o curto prazo ma3 cruza acima do período anterior s ma3, um sinal longo é acionado.

Vantagens da estratégia

  • Usando três médias móveis pode identificar claramente as mudanças de tendência.
  • A combinação de períodos longos e curtos elimina algum ruído do mercado a curto prazo e bloqueia as tendências a longo prazo.
  • Regras simples tornam-na fácil de implementar.
  • Os parâmetros podem ser ajustados para se adaptarem aos diferentes ambientes de mercado.

Riscos da Estratégia

  • As entradas e saídas são identificadas com retrospectiva e não se pode evitar completamente as perdas.
  • Whipsaws ocorrem quando o preço oscila em torno de médias móveis.
  • A linha de período longo que é muito longa pode perder pontos de virada da tendência. A linha de período curto que é muito curta pode desencadear negociações frequentes devido ao ruído.
  • Não lida muito bem com mercados variados.

Estes riscos podem ser reduzidos através da otimização adequada dos parâmetros, da adição de filtros com outros indicadores, etc.

Orientações para melhorias

  • Testar diferentes combinações de parâmetros para encontrar valores ideais.
  • Adicionar stop loss às perdas de controlo.
  • Adicionar outros indicadores para avaliar a dinâmica e a divergência para evitar sinais falsos, por exemplo MACD, KD, etc.
  • Escolha uma estratégia de lucro adequada de acordo com a situação real.

Resumo

A estratégia de cruzamento de média móvel tripla é uma estratégia simples e prática de seguir tendências. Identifica mudanças na direção da tendência com base no cruzamento de três médias móveis para gerar sinais de negociação. As vantagens desta estratégia são suas regras simples e rastreamento eficaz das tendências, tornando-a adequada para negociação de médio a longo prazo. No entanto, também há riscos de sinais falsos e drawdowns. A estratégia pode ser melhorada por otimização de parâmetros, adição de indicadores de suporte, etc., para se adaptar a diferentes ambientes de mercado.


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun

//@version=4
strategy("三重交叉修正模式系统", overlay=true)
//strategy.risk.allow_entry_in(strategy.direction.long)
length1 = input(18,'长线')
length2 = input(9,'中线')
length3 = input(4,'短线')

ma1 =0.0
ma2 = 0.0
ma3 = 0.0

ma1 := sma(close,length1)
ma2 := sma(close,length2)
ma3 := sma(close,length3)

plot(ma1)
plot(ma2)
plot(ma3)

if ma2 > ma1 and ma3 > ma3[1]
	strategy.entry("Long", strategy.long, when=strategy.position_size <= 0)

if ma2 < ma1 and ma3 < ma3[1]
	strategy.entry("Short", strategy.short, when=strategy.position_size > 0)

Mais.