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

Autora:ChaoZhang, Data: 2023-12-19 14:49:52
Tags:

img

Resumo

A estratégia de rastreamento de tendência de média móvel dupla é uma estratégia quantitativa de negociação que usa duas médias móveis com períodos diferentes para determinar a direção da tendência do mercado.

Princípios

A estratégia emprega duas médias móveis, incluindo uma média móvel rápida (por exemplo, de 10 períodos) e uma média móvel lenta (por exemplo, de 30 períodos).

Especificamente, a estratégia primeiro calcula as médias móveis rápidas e lentas. Em seguida, compara a média móvel rápida atual com o período anterior para ver se a atual é maior que a anterior. Se sim, atribuir valor 1 indicando tendência ascendente. Caso contrário, atribuir -1 para tendência descendente. Faça o mesmo para a média móvel lenta.

Finalmente, determine a tendência pelos valores das duas médias móveis. Se ambos os valores forem 1, a decisão final é 1, indicando tendência de alta. Se ambos forem -1, a decisão final é -1, indicando tendência de queda. Se os valores forem diferentes, mantenha a decisão de tendência anterior.

Após a identificação da direcção da tendência, a estratégia será longa na tendência ascendente e curta na tendência descendente.

Vantagens

A estratégia tem as seguintes vertentes:

  1. A lógica é simples e fácil de entender e implementar.
  2. As médias móveis duplas ajudam a filtrar o ruído do mercado e a identificar a tendência.
  3. Os parâmetros das médias móveis podem ser ajustados para diferentes produtos e prazos.
  4. Não há necessidade de definir stop loss ou take profit, o que diminui a frequência de negociação e ajuda a seguir a tendência.
  5. Pode ser flexível apenas em longo ou curto baseado apenas na preferência.

Riscos

Há também alguns riscos da estratégia:

  1. As médias móveis podem atrasar-se durante a mudança acentuada dos preços, causando a falta do melhor momento de entrada.
  2. Pode ocorrer uma fuga falsa e um cruzamento incorreto, resultando em sinais comerciais errados.
  3. Não é definido nenhum stop loss, incapaz de limitar efetivamente a perda de transações individuais.
  4. Posição completa por defeito traz maior risco, requer operação cautelosa.

Para reduzir os riscos, os parâmetros das médias móveis podem ser definidos de forma mais razoável, podem ser introduzidos outros indicadores, podem ser definidos stop loss e take profit e o tamanho da posição pode ser ajustado em conformidade.

Optimização

A estratégia pode ser ainda melhorada nos seguintes aspectos:

  1. Adicione mais tipos de médias móveis como SMA e EMA para utilizar mais ferramentas de gráficos.
  2. Introduzir outros indicadores auxiliares como o MACD e o BOLL para melhorar a precisão.
  3. Adicionar linha de tendência e análise de suporte/resistência para sinais de negociação mais precisos.
  4. Configure stop loss e take profit para controlar a perda de uma única transação.
  5. Otimizar o dimensionamento das posições com base na utilização dos fundos, no rácio de lucro, etc.

Conclusão

A estratégia de rastreamento de tendência de média móvel dupla tem uma lógica clara de usar médias móveis duplas para filtrar o ruído e identificar a tendência e negociar ao longo da direção da tendência. É uma estratégia típica de tendência. Os comerciantes podem escolher longo ou curto apenas com base na preferência.


/*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()
    

Mais.