O recurso está a ser carregado... Carregamento...

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

Autora:ChaoZhang, Data: 21 de setembro de 2023 16:40:01
Tags:

Resumo

Esta estratégia é projetada com base na cruz de ouro e cruz de morte de médias móveis duplas. Ela vai longo quando o curto período média móvel cruza acima da média móvel de longo período, e fecha a posição quando o curto período média móvel cruza abaixo da média móvel de longo período. A estratégia é simples e fácil de entender, adequado para iniciantes a aprender.

Estratégia lógica

A estratégia baseia-se principalmente nos indicadores sma (close, 14) e sma (close, 28).

Primeiro, defina as médias móveis curtas e longas:

short_ma = sma(close, 14)  
long_ma = sma(close, 28)

Então determine a entrada e saída com base na cruz de ouro e cruz da morte:

longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma) 

O valor da posição em risco é o valor da posição em risco.

strategy.entry("Buy", strategy.long, when = longCondition)

Posição de fechamento quando o MA curto cruza abaixo do MA longo:

strategy.close_all(when = shortCondition) 

A lógica é simples e clara, utilizando os cruzamentos de MAs duplas para determinar entradas e saídas.

Análise das vantagens

  • Lógica simples, fácil de usar para iniciantes
  • Utiliza cruzamento de MA para determinar tendências
  • Períodos MA personalizáveis para otimização de parâmetros
  • Permite o stop loss para controlar a perda de uma única operação

Análise de riscos

  • Sensível às flutuações do mercado, pode gerar múltiplas operações perdedoras
  • A natureza atrasada dos AMP pode deixar de atingir os pontos de inversão dos preços
  • São propensos a ficarem presos perto dos pontos de travessia da MA
  • Necessidade de otimizar os períodos de MA, diferentes períodos podem levar a resultados diferentes
  • Incapacidade de reduzir rapidamente as perdas quando a tendência muda violentamente

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os períodos de MA para encontrar a melhor combinação

Testar diferentes períodos de MA curtos e longos, tais como (5, 10), (10, 20), (20, 60) etc., para encontrar a combinação ideal.

  1. Adicionar filtros para evitar sinais falsos

Adicionar filtros como o volume de negociação, a diferença de preços, etc. perto de cruzamento de MA para evitar negociações excessivas em mercados variados.

  1. Incorporar stop loss

Defina o preço de stop loss ou use MA como linha de stop loss para controlar a perda de uma única transação.

  1. Combinar com outros indicadores

Adicionar indicadores auxiliares como MACD, KDJ etc. para melhorar o desempenho da estratégia.

  1. Otimizar os pontos de entrada

Encontrar pontos de entrada melhores perto de MA em vez de entrar diretamente no cruzamento.

Resumo

A estratégia de MA dupla é simples de usar para iniciantes. Mas é sensível às flutuações do mercado e tem riscos de perdas. Podemos melhorá-la otimizando parâmetros, adicionando filtros, incorporando stop loss, combinando outros indicadores, etc. Ela pode funcionar bem em tendências fortes, mas deve ser usada com cautela ou stop loss adequado em mercados variados.
[/trans]


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=2
// strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25)

minGainPercent = input(0.6)
gainMultiplier = minGainPercent * 0.01 + 1


longCondition = crossover(sma(close, 14), sma(close, 28))
shortCondition = crossunder(sma(close, 14), sma(close, 28))


avg_protection = input(1)
gain_protection = input(1)


strategy.entry("Buy", strategy.long, when = longCondition    and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition  and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))

Mais.