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.
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.
A média móvel exponencial dupla pode determinar com mais precisão a direção da tendência.
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.
A direção longa/curta pode ser facilmente invertida utilizando o parâmetro inverso para se adaptar a diferentes ambientes de mercado.
Apenas a negociação de breakouts efetivamente filtra o ruído do mercado.
A média móvel exponencial dupla às vezes reage lentamente e pode perder oportunidades de negociação de curto prazo.
Os sistemas de médias móveis são propensos a gerar sinais falsos frequentes durante as consolidações de mercado.
A estratégia é adequada para ambientes de mercado com tendências óbvias e não é adequada para mercados voláteis de gama.
O risco de perdas aumentadas não é considerado.
Não estabelece o tamanho das posições e pode conduzir a um controlo de risco inadequado.
Outros indicadores podem ser combinados para avaliar as tendências do mercado e evitar negociações frequentes durante as consolidações.
As paradas dinâmicas podem ser adicionadas para controlar o risco de perdas numa única transação.
Os parâmetros da média móvel podem ser ajustados dinamicamente com base na volatilidade do mercado para otimizar a sensibilidade do indicador.
O dimensionamento das posições pode ser definido para controlar os riscos enquanto aumenta os lucros.
Os parâmetros podem ser otimizados usando a análise Walk Forward.
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")