Estratégia de acompanhamento de tendência de média móvel dupla


Data de criação: 2023-12-19 14:49:52 última modificação: 2023-12-19 14:49:52
cópia: 0 Cliques: 580
1
focar em
1621
Seguidores

Estratégia de acompanhamento de tendência de média móvel dupla

Visão geral

A estratégia de seguimento de tendências de média móvel dupla é uma estratégia de negociação quantitativa baseada em médias móveis de dois períodos diferentes para determinar a direção da tendência do mercado. A estratégia usa médias móveis rápidas e médias móveis lentas para determinar a direção da tendência e negociar na direção da tendência.

Princípio da estratégia

A estratégia usa duas médias móveis, incluindo uma média móvel rápida (por exemplo, 10 períodos) e uma média móvel lenta (por exemplo, 30 períodos). Se ambas as médias móveis forem para cima, será considerada uma tendência de várias cabeças; se ambas as médias móveis forem para baixo, será considerada uma tendência de cabeça baixa.

Concretamente, a estratégia primeiro calcula a média móvel rápida e a média móvel lenta. Em seguida, compara a média móvel rápida atual com a relação de tamanho do ciclo anterior, atribuindo um valor de 1 se a grandeza atual for superior ao do ciclo anterior; caso contrário, atribuindo um valor de -1, indicando a baixa. A média móvel lenta faz o mesmo julgamento.

Finalmente, julgue o valor de julgamento de duas médias móveis. Se ambos os valores de julgamento forem 1, o julgamento final será 1, indicando a tendência de várias cabeças; Se ambos os valores de julgamento forem -1, o julgamento final será -1, indicando a tendência de cabeças vazias. Se os valores de julgamento não forem consistentes, mantenha o julgamento de tendência do ciclo anterior.

Depois de determinar a direção da tendência, a estratégia abre mais posições em uma tendência a mais e abre menos posições em uma tendência a menos.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. A estratégia é clara, simples, fácil de entender e de implementar.
  2. Usando a combinação de duas médias móveis, é possível filtrar eficazmente o ruído de um mercado de turbulência, bloqueando a direção da tendência.
  3. Os parâmetros da média móvel podem ser ajustados com flexibilidade para diferentes variedades e períodos de tempo.
  4. Não há necessidade de definir pontos de parada e parada, reduzindo a frequência de negociação, o que é útil para acompanhar a tendência.
  5. A configuração pode ser flexível para fazer apenas mais ou apenas menos, adaptando-se a diferentes preferências de negociação.

Análise de Riscos

A estratégia também tem riscos:

  1. Quando os preços mudam drasticamente, a média móvel fica atrasada, o que pode levar a perder o melhor momento para abrir uma posição.
  2. As médias móveis duplas podem apresentar falsas rupturas e erros de cruzamento, resultando em sinais de negociação errados.
  3. A estratégia em si não estabelece um limite de perda e não pode efetivamente controlar a perda individual.
  4. A estratégia padrão é a negociação de posições completas, que é mais arriscada e precisa ser usada com cautela.

Para reduzir o risco acima, pode-se definir um parâmetro de ciclo de média móvel mais racional, introduzir outros indicadores técnicos como julgamento auxiliar, definir regras de stop loss ou ajustar adequadamente a posição.

Direção de otimização

A estratégia também pode ser melhorada em alguns aspectos:

  1. Aumentar a variedade de opções de tipos de médias móveis, como SMA, EMA e outros, usando indicadores gráficos.
  2. Adicionar outros indicadores de técnicas auxiliares, como MACD, BOLL, etc., para melhorar a precisão do julgamento.
  3. Adição de linhas de tendência e suporte de resistência para tornar os sinais de negociação mais precisos
  4. Configurar um limite de perda para controlar efetivamente os prejuízos.
  5. Optimizar a gestão de posições, ajustando as posições de acordo com a taxa de utilização de fundos, taxa de lucro, etc.

Resumir

A estratégia de acompanhamento de tendências de média móvel dupla é clara e fácil de entender. A estratégia de acompanhamento de tendências típica é a de avaliar a direção da tendência e negociar de acordo com os resultados. A estratégia pode ser apenas mais ou apenas vazia, de acordo com as preferências pessoais, é flexível, simples e fácil de usar.

Código-fonte da estratégia
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 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/
// © noro
// 2020

//@version=4
strategy(title = "Noro's TrendMA Strategy", shorttitle = "TrendMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)

//Settings
needlong = input(true, title = "Long")
needshort = input(true, title = "Short")
fast = input(10, minval = 1, title = "MA Fast (red)")
slow = input(30, minval = 2, title = "MA Slow (blue)")
type = input(defval = "SMA", options = ["SMA", "EMA"], title = "MA Type")
src = input(ohlc4, title = "MA Source")
showma = input(true, title = "Show MAs")
showbg = input(false, title = "Show Background")

//MAs
fastma = type == "EMA" ? ema(src, fast) : sma(src, fast)
slowma = type == "EMA" ? ema(src, slow) : sma(src, slow)

//Lines
colorfast = showma ? color.red : na
colorslow = showma ? color.blue : na
plot(fastma, color = colorfast, title = "MA Fast")
plot(slowma, color = colorslow, title = "MA Slow")

//Trend
trend1 = fastma > fastma[1] ? 1 : -1
trend2 = slowma > slowma[1] ? 1 : -1
trend = 0
trend := trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : trend[1]

//Backgrouns
colbg = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(colbg, transp = 80)

//Trading
if trend == 1
    if needlong
        strategy.entry("Long", strategy.long)
    if needlong == false
        strategy.close_all()

if trend == -1
    if needshort
        strategy.entry("Short", strategy.short)
    if needshort == false
        strategy.close_all()