Estratégias de acompanhamento de tendências baseadas em médias móveis


Data de criação: 2024-01-22 17:26:04 última modificação: 2024-01-22 17:26:04
cópia: 0 Cliques: 575
1
focar em
1617
Seguidores

Estratégias de acompanhamento de tendências baseadas em médias móveis

Visão geral

Esta estratégia utiliza a média móvel rápida e a média móvel lenta para construir sinais de negociação, permitindo a identificação e o acompanhamento de tendências. Quando a linha rápida atravessa a linha lenta, gera um sinal de compra; Quando a linha rápida atravessa a linha lenta, gera um sinal de venda.

Princípio da estratégia

Esta estratégia usa a média móvel exponencial de dois períodos diferentes como base para decisões de negociação. O parâmetro da média móvel rápida é de 30 dias, para capturar mudanças de preços de curto prazo; o parâmetro da média móvel lenta é de 100 dias, para determinar a direção da tendência de longo prazo nos preços.

Quando a linha rápida atravessa a linha lenta de baixo para cima, o mercado entra em uma tendência ascendente, gerando um sinal de compra. Quando a linha rápida atravessa a linha lenta de cima para baixo, o mercado entra em uma tendência descendente, gerando um sinal de venda.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. A construção baseada na linha de equilíbrio pode efetivamente eliminar o ruído do mercado de curto prazo, o que significa que a tendência é a seguinte:
  2. A estratégia de dupla equilíbrio permite determinar claramente a direção da tendência.
  3. Otimizando os parâmetros, pode-se personalizar o ciclo de linha média rápida e lenta.
  4. Compatível com o rastreamento de tendências médias e longas e ajustes de curto prazo.
  5. As regras são simples, claras, fáceis de entender e apropriadas para os iniciantes.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Quando os preços são alinhados horizontalmente, é fácil gerar um sinal de negociação de erro. O risco pode ser reduzido através da otimização dos parâmetros da linha média.
  2. Não é possível avaliar e lidar de forma eficaz com situações excepcionais de forte flutuação de preços. Pode-se definir um stop loss para controlar o risco.
  3. O sistema de linha média tem um atraso em si e pode perder o ponto de inflexão do preço. Pode ser otimizado em combinação com outros indicadores.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros de ciclo da linha média para aumentar a eficácia do lucro.
  2. Adicionar outros critérios de avaliação, como indicadores de volume de transação, para evitar falsas rupturas.
  3. Aumentar as estratégias de stop loss e controlar as perdas individuais.
  4. Combinado com indicadores de tendência, para avaliar a força da tendência e evitar a reversão da tendência.
  5. Aperfeiçoamento de parâmetros para tornar a estratégia mais universal.

Resumir

Esta estratégia baseia-se em um sistema de tomada de decisão de negociação de duas equilíbrios, para julgar a tendência do mercado através da relação de preços de equilíbrio rápido e lento, a geração de sinais é simples e clara. A estratégia filtra parte do ruído e é adequada para a negociação de tendências de linha média e longa.

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

//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 30, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 100, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 0, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 0, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)