Desenvolver uma estratégia de média móvel exponencial 2/20

Autora:ChaoZhang, Data: 2023-10-08 15:14:17
Tags:

Resumo

Esta estratégia utiliza uma média móvel exponencial dupla para determinar a direção da tendência com base no preço quebrando a média móvel.

Estratégia lógica

A estratégia é baseada no indicador de média móvel exponencial dupla. O parâmetro de comprimento no indicador define o período de média móvel para 20 dias. O parâmetro xPrice é definido para o fechamento do preço. A média móvel exponencial de 20 dias xXA é então calculada. O nHH mais alto e o nLL mais baixo nos últimos dois dias também são calculados. Se o nLL for maior do que a média móvel ou o nHH for menor do que a média móvel, o menor de nLL e nHH é tomado como o preço chave nXS. Se o preço de fechamento for maior do que a média móvel e o preço chave, ele vai longo. Se o preço de fechamento for menor do que a média móvel e o preço chave, ele vai curto. O parâmetro inverso determina se os negócios são reed.

A estratégia julga a direção do preço quebrando a média móvel e combina a maior alta e a menor baixa em tempo real para determinar a validade da quebra para evitar falsas quebras.

Análise das vantagens

  1. A média móvel exponencial dupla pode determinar com mais precisão a direção da tendência.

  2. A combinação do máximo máximo e do mínimo mínimo para julgar a validade da ruptura evita falsas rupturas causadas por flutuações de preços.

  3. A direção longa/curta pode ser facilmente invertida utilizando o parâmetro inverso para se adaptar a diferentes ambientes de mercado.

  4. Apenas a negociação de breakouts efetivamente filtra o ruído do mercado.

Análise de riscos

  1. A média móvel exponencial dupla às vezes reage lentamente e pode perder oportunidades de negociação de curto prazo.

  2. Os sistemas de médias móveis são propensos a gerar sinais falsos frequentes durante as consolidações de mercado.

  3. A estratégia é adequada para ambientes de mercado com tendências óbvias e não é adequada para mercados voláteis de gama.

  4. O risco de perdas aumentadas não é considerado.

  5. Não estabelece o tamanho das posições e pode conduzir a um controlo de risco inadequado.

Orientações de otimização

  1. Outros indicadores podem ser combinados para avaliar as tendências do mercado e evitar negociações frequentes durante as consolidações.

  2. As paradas dinâmicas podem ser adicionadas para controlar o risco de perdas numa única transação.

  3. Os parâmetros da média móvel podem ser ajustados dinamicamente com base na volatilidade do mercado para otimizar a sensibilidade do indicador.

  4. O dimensionamento das posições pode ser definido para controlar os riscos enquanto aumenta os lucros.

  5. Os parâmetros podem ser otimizados usando a análise Walk Forward.

Resumo

Esta estratégia utiliza um indicador de média móvel exponencial dupla para determinar a direção da tendência do preço, combinando o mais alto máximo e o mais baixo mínimo para evitar falhas. Há espaço para melhorias na otimização de mecanismos de stop loss, controle de dimensionamento de posição, etc. Mas, em geral, a estratégia é simples, prática e adaptável a diferentes ambientes de mercado através de ajustes de parâmetros, tornando-se uma estratégia de tendência confiável.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/12/2016
// Strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Strategy 2/20 Exponential Moving Average", overlay = true)
Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
xPrice = close
xXA = ema(xPrice, Length)
nHH = max(high, high[1])
nLL = min(low, low[1])
nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
pos =  iff(close > xXA and close > nXS , 1,
	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nXS, color=blue, title="XAverage")

Mais.