Estratégia de acompanhamento de tendências com base no cruzamento de média móvel


Data de criação: 2024-01-31 15:17:31 última modificação: 2024-01-31 15:17:31
cópia: 1 Cliques: 597
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências com base no cruzamento de média móvel

Visão geral

Esta estratégia usa diferentes tipos de médias (SMA, EMA, HMA e VWMA) para determinar a tendência e acompanhar a tendência, calculando e encontrando seus pontos de interseção. A média curta gera um sinal de compra quando atravessa a média longa de baixo; e a média curta gera um sinal de venda quando atravessa a média longa de cima para baixo.

Princípio da estratégia

Esta estratégia julga a tendência de mercado principalmente comparando a relação entre duas linhas médias diferentes. Concretamente, define o tipo e a duração das duas linhas médias por meio de parâmetros de entrada. A primeira linha média é mais longa e representa a tendência de longo prazo; a segunda linha média é mais curta e representa a tendência atual de curto prazo.

Quando a média curta atravessa a média longa de baixo, representa um fortalecimento da tendência de curto prazo, o preço entra em uma tendência ascendente e, portanto, emite um sinal de compra neste ponto de cruzamento. Por outro lado, quando a média curta atravessa a média longa de cima, representa um enfraquecimento da tendência de curto prazo e o preço entra em uma tendência de queda e, portanto, emite um sinal de venda neste ponto de cruzamento.

A partir de um julgamento de equilíbrio entre as linhas, é possível negociar seguindo as tendências do mercado.

Vantagens estratégicas

  • A principal tendência é o uso de mediano de cruzamentos, um indicador técnico clássico e prático.
  • Suporte para vários tipos diferentes de combinações lineares, alta flexibilidade
  • A lógica da estratégia é simples, clara e fácil de entender, adequada para a automação de transações quantitativas
  • Parâmetros configuráveis flexíveis para diferentes ambientes de mercado

Análise de Riscos

  • A linha média tem um atraso, quando o sinal de cruzamento é emitido, o movimento de preços pode ter ocorrido ou estar perto de um ponto de reversão, existindo um certo risco de falha de atraso
  • A análise de tendências pode conduzir a um equívoco que pode levar a perdas desnecessárias.
  • Os parâmetros de linha média precisam ser razoavelmente configurados, e os diferentes parâmetros podem causar grandes diferenças nos resultados

A solução para o risco:

  • Reduzir adequadamente os ciclos médios e aumentar a sensibilidade às mudanças do mercado
  • Verificar em conjunto com outros indicadores para evitar erros de avaliação
  • Metodologias de otimização de parâmetros: roteamento, aprendizado de máquina, algoritmos genéticos, etc.
  • Controle adequado do tamanho da posição e do ponto de parada

Direção de otimização da estratégia

  • Adição de filtros de outros indicadores, combinando vários indicadores de julgamento para melhorar a precisão da decisão
  • Ajuste automático dos parâmetros da linha média de acordo com a situação do mercado
  • Parâmetros de busca automática com algoritmos de aprendizagem de máquina
  • Otimização de estratégias de stop loss

Resumir

Esta estratégia é baseada na idéia clássica de julgar as principais tendências de cruzamento de equilíbrio, aplicando-se de forma flexível através de uma combinação de diferentes equilíbrios. A lógica da estratégia é simples, fácil de implementar e adequada para a automação de negociação.

Código-fonte da estratégia
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

f_hma(_src, _length)=>
    _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    if (type1 == "EMA")
        ema(price, ma1)
    else
        if (type1 == "VWMA")
            vwma(price, ma1)
        else
            f_hma(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    if (type2 == "EMA")
        ema(price, ma2)
    else
        if (type2 == "VWMA")
            vwma(price, ma2)
        else
            f_hma(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


longCondition = crossover(price1, price2)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(price1, price2)
if (shortCondition)
    strategy.entry("Short", strategy.short)