Estratégia de média móvel seguindo tendência


Data de criação: 2024-02-04 15:44:54 última modificação: 2024-02-04 15:44:54
cópia: 0 Cliques: 575
1
focar em
1617
Seguidores

Estratégia de média móvel seguindo tendência

Visão geral

A estratégia de acompanhamento de tendências é uma estratégia de acompanhamento de tendências baseada na identificação da direção da tendência por meio de médias móveis de longo prazo, combinadas com filtros de distorções de movimentos reais da média. A estratégia usa médias móveis de índices para determinar a direção da tendência e usa a média de movimentos reais para identificar se há uma falsa ruptura. Isso pode filtrar efetivamente oscilações e reduzir a retração geral da estratégia.

Princípio da estratégia

A estratégia foi concebida de acordo com os seguintes princípios:

  1. Usando a média móvel do índice para determinar a direção da tendência geral. A duração do período é a linha K de 200 por defeito.
  2. Calcule a média real da amplitude de oscilação das 10 últimas linhas K.
  3. Quando o preço de fechamento está acima da média móvel + a média real de variação da margem, é considerado uma tendência ascendente.
  4. Quando o preço de fechamento está abaixo da média móvel do dólar - a média real de variação do dólar - é considerado uma tendência de queda.
  5. Em alta, faça mais; em baixa, faça menos.
  6. A estratégia padrão é a de parar com a média móvel. Também é possível optar por parar com a média móvel inversa ± a média real.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Usando as médias móveis para avaliar grandes tendências, pode-se filtrar eficazmente o ruído do mercado de curto prazo.
  2. Aumentar a média real de variação como condição de filtragem evita a geração de sinais de negociação em situações de turbulência, reduzindo assim as perdas desnecessárias.
  3. A linha de parada perto da média móvel ou seu intervalo inverso pode parar rapidamente e reduzir a retração máxima.
  4. Parâmetros simples, fáceis de entender e ajustar.

Análise de Riscos

A estratégia também apresenta alguns riscos potenciais:

  1. Em um sistema linear, quando a tendência se inverte, geralmente há um certo grau de retração.
  2. A configuração dos parâmetros das médias móveis e dos intervalos de variação real média pode ter um grande impacto no desempenho da estratégia. Se os parâmetros forem mal definidos, as oportunidades de negociação podem ser perdidas ou os prejuízos desnecessários aumentados.
  3. A estratégia em si não leva em conta a relação entre o preço das ações e o volume de transações. Pode gerar alguns sinais falsos.

Direção de otimização

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

  1. Testar diferentes tipos de médias móveis para encontrar os parâmetros de média móvel mais adequados para um determinado estoque ou variedade.
  2. Otimizar os parâmetros de média móvel para que eles sejam mais adequados às características das ações ou variedades negociadas.
  3. Optimizar os parâmetros da média real de variação, procurando a melhor combinação de parâmetros para filtrar oscilações sem perder a tendência.
  4. Aumentar as regras de julgamento de volume de transações para evitar que as transações sejam inoperantes.
  5. Testar e comparar diferentes métodos de redução de prejuízos para determinar o melhor.

Resumir

A estratégia de acompanhamento de tendências é uma estratégia de tendências muito simples e prática no geral. Ao mesmo tempo, ela tem um bom efeito de controle de risco. Embora a estratégia não leve em consideração muitos fatores, os parâmetros e o modo de parada precisam ser cuidadosamente testados e otimizados, ela é, no geral, uma estratégia eficaz que é fácil de dominar e ajustar.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Inkedlau

//@version=5
strategy('Swing Trend Strategy', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, commission_value=0.1)

use_short = input.bool(false, 'Open Short Positions?')
exit_type = input.bool(true, 'Exit trade on Moving Average Cross?')
src = input.source(close, 'Source')
len = input.int(200, 'Trend Length')
ma_type = input.string('ema', 'Moving Average Type', options=['sma', 'ema', 'rma', 'wma', 'vwma'], tooltip='Select the type of Moving Average to use to calculate the Trend')
atr_multiplier = input.float(1., 'ATR Threshold', step=0.5, tooltip='Filter the ranging market using the Average True Range')

// ----------------------- DESCRIPTION -----------------------
// THIS SCRIPT IS A TREND FOLLOWING SYSTEM THAT USES A COMBINATION OF MOVING AVERAGE AND AVERAGE TRUE RANGE
// TO SPOT THE TRENDS AND ENTER THE MARKET ACCODINGLY.
// THE MARKET IS CONSIDERED IN AN UPTREND WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE + THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// THE MARKET IS CONSIDERED IN AN DOWNTREND WHEN THE PRICE CLOSES BLOW THE MOVING AVERAGE - THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// BY DEFAULT, THE STRATEGY WILL ENTER LONG WHEN AN UPTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES BELOW THE MOVING AVERAGE
// THE STRATEGY WILL ENTER SHORT WHEN A DOWNTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE

// ------------------ INDICATORS CALCULATION------------------
my_ma()=>
    ma = close
    if ma_type == 'sma'
        ma := ta.sma(src, len)
    if ma_type == 'ema'
        ma := ta.ema(src, len)
    if ma_type == 'rma'
        ma := ta.rma(src, len)
    if ma_type == 'wma'
        ma := ta.wma(src, len)
    if ma_type == 'vwma'
        ma := ta.vwma(src, len)
    ma

trend = my_ma()
atr = ta.atr(10)
uptrend = trend + atr * atr_multiplier
downtrend = trend - atr * atr_multiplier

// ---------------- ENTRY AND EXIT CONDITIONS ----------------

open_long = strategy.position_size == 0 and src > uptrend
close_long = exit_type ? strategy.position_size > 0 and src < trend : strategy.position_size > 0 and src < downtrend

open_short = use_short and strategy.position_size == 0 and src < downtrend
close_short = exit_type ? strategy.position_size < 0 and src > trend : strategy.position_size < 0 and src > uptrend

strategy.entry('long', strategy.long, when=open_long)
strategy.close('long', when=close_long)

strategy.entry('short', strategy.short, when=open_short)
strategy.close('short', when=close_short)


// ------------------ PLOTTING AND COLORING ------------------
tcolor = src > uptrend ? color.green : src < downtrend ? color.red : na

ptrend = plot(trend, color=color.blue, linewidth=1)
puptrend = plot(uptrend, color=color.green, linewidth=1)
pdowntrend = plot(downtrend, color=color.red, linewidth=1)
pclose = plot(close, color=na)

fill(puptrend, pclose, color=close > uptrend ? color.green : na, transp = 90)
fill(pdowntrend, pclose, color=close < downtrend ? color.red : na, transp = 90)