Estratégia de negociação de reversão baseada no intervalo da média móvel

Autora:ChaoZhang, Data: 2024-01-25 14:16:28
Tags:

img

Resumo

Esta estratégia é denominada Moving Average Range Reversal. Identifica oportunidades de reversão do mercado calculadora de cruzamento entre médias móveis de diferentes prazos e toma posições longas/cortas apropriadas.

Estratégia lógica

A estratégia calcula 3 médias móveis simultaneamente:

  1. A taxa de variação de preços é a taxa de variação de preços mais elevada do que a taxa de variação de preços.
  2. MA lento (longitude): Refletindo as tendências dos preços a médio prazo
  3. MA mais lento (slength): Refletindo tendências de preços a longo prazo

Quando a MA rápida cruza acima da MA lenta, sinaliza uma inversão de tendência de curto prazo para alta.

Para evitar sinais falsos, um 4o MA é introduzido como o filtro de longo prazo (tlength). Somente acima deste filtro são considerados sinais longos. Somente abaixo deste filtro são considerados sinais curtos.

As regras específicas de negociação são:

  1. Quando o MA rápido cruza acima do MA lento, e o MA lento também cruza acima do MA mais lento (bullish de curto prazo), enquanto o preço está acima do filtro de longo prazo, vá longo.

  2. Quando o MA rápido cruza abaixo do MA lento, e o MA lento também cruza abaixo do MA mais lento (bairismo de curto prazo), enquanto o preço está abaixo do filtro de longo prazo, vá curto.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Utilizando múltiplos prazos para identificar mudanças de tendência com mais precisão e reduzir falsos sinais.
  2. O filtro de longo prazo evita operações mal posicionadas antes de uma grande inversão da tendência.
  3. Regras simples e claras, fáceis de entender e automatizar.
  4. As estratégias de reversão beneficiam de um viés positivo nos retornos e lucros.
  5. Um bom backtest resulta em negociações simuladas ao vivo em relação aos retornos e ao fator de lucro.

Análise de riscos

Os riscos da estratégia incluem:

  1. As estratégias de MA são sensíveis aos parâmetros.
  2. Falhas de sinalização de reversão podem causar perdas.
  3. As reverências prolongadas podem anular os lucros de reversões repetidas.
  4. O preço pode reverter e acelerar com força, falhando no stop loss oportuno.

Soluções:

  1. Otimize os parâmetros para encontrar a melhor combinação.
  2. Aumentar o tempo de confirmação do sinal para evitar sinais falsos.
  3. Aumentar o intervalo de stop loss para controlar o montante da perda.

Orientações de otimização

A estratégia pode ser melhorada nos seguintes aspectos:

  1. Teste mais conjuntos de parâmetros para encontrar valores ideais.
  2. Adicionar um filtro de volume para evitar sinais falsos em condições de baixo volume.
  3. Incorporar outros indicadores para confirmar os sinais de entrada.
  4. Implementar um ajuste dinâmico do stop loss para um melhor controlo da saída.
  5. Otimizar a gestão dos riscos para um controlo mais rigoroso dos mesmos.

Conclusão

Esta estratégia negocia reversões de mercado identificadas por crossovers de MA, com orientação de direção do filtro de longo prazo. Captura efetivamente oportunidades em pontos de virada. Os resultados positivos do backtest mostram boa lucratividade para aplicação ao vivo.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("Moving Average Trap", overlay=true)

flenght = input.int(title="Fast MA Period", minval=1, maxval=2000, defval=3)
llenght = input.int(title="Slower MA Period", minval=1, maxval=2000, defval=5)
sslenght = input.int(title="Slowest MA Period", minval=1, maxval=2000, defval=8)
tlenght = input.int(title="Trend Filter MA Period", minval=1, maxval=2000, defval=200)

ssma = ta.sma(close, sslenght)
fma = ta.sma(close, flenght)
sma = ta.sma(close, llenght)
tma = ta.sma(close, tlenght)

plot(fma, color=color.red)
plot(sma, color=color.white)
plot(ssma, color=color.green)
plot(tma, color=color.maroon, linewidth=2)

short =  (fma > sma and sma > ssma) and close < tma
long = (fma < sma and sma < ssma) and close > tma
closeshort = fma < sma and sma < ssma
closelong = fma > sma and sma > ssma

if long
	strategy.entry("long", strategy.long)
if closelong
	strategy.close("long")
if short
	strategy.entry("short", strategy.short)
if closeshort
	strategy.close("short")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Mais.