Estratégia de ruptura de média móvel dupla

Autora:ChaoZhang, Data: 2024-01-24 14:49:29
Tags:

img

Resumo

A estratégia de ruptura da média móvel dupla é uma estratégia quantitativa de negociação baseada em uma média móvel rápida e uma média móvel lenta. Ela usa duas médias móveis exponenciais (EMA) com períodos diferentes como sinais de negociação. Quando a EMA rápida cruza acima da EMA lenta, um sinal de compra é gerado. Quando a EMA rápida cruza abaixo da EMA lenta, um sinal de venda é gerado.

Estratégia lógica

A lógica central desta estratégia é usar uma média móvel rápida e uma média móvel lenta para formar sinais de negociação. A estratégia define o período EMA rápido como 12 dias e o período EMA lento como 26 dias.

  1. Calcular a média móvel AP exponencial da matriz de preços com um período de 2 dias
  2. Calcular a média móvel rápida baseada em AP, com um período de 12 dias
  3. Calcular a média móvel lenta Slow com base no AP, com um período de 26 dias
  4. Compare as médias móveis rápidas e lentas:
    1. Quando o rápido cruza o lento, é um sinal de alta.
    2. Quando rápido cruza abaixo lento, é um sinal de baixa
  5. Determinar sinais de negociação específicos que combinem a relação entre preço e média móvel:
    1. Sinais de alta: rápido>lento && AP>rápido
    2. Sinais de baixa: Rápido

Usar o cruzamento da média móvel rápida e lenta para determinar as tendências do mercado e gerar sinais de negociação é uma estratégia típica de média móvel dupla.

Análise das vantagens

A estratégia de ruptura da média móvel dupla tem as seguintes vantagens:

  1. A lógica estratégica é simples e clara, fácil de compreender e implementar
  2. O período da média móvel pode ser ajustado para se adaptar aos diferentes ambientes de mercado
  3. Permitir que tanto as posições longas como as curtas obtenham rendimentos mais elevados
  4. Os sinais de negociação mais precisos podem ser gerados combinando preços e médias móveis
  5. A característica de atraso das médias móveis pode efetivamente filtrar o ruído do mercado

Análise de riscos

A estratégia de ruptura da média móvel dupla também apresenta alguns riscos:

  1. Podem ocorrer mais sinais falsos quando o mercado está limitado ao intervalo
  2. A estratégia de média móvel dupla pode provocar ajustamento da curva, ignorando as alterações estruturais do mercado
  3. A utilização exclusiva de indicadores técnicos é vulnerável a fugas falsas, com risco de perdas

Soluções:

  1. Otimizar o período da média móvel para melhor adaptar-se às condições actuais do mercado
  2. Confirme sinais com outros indicadores como volume para evitar falhas falsas
  3. Adotar estratégias de acompanhamento da tendência para controlar o rácio lucro/perda e reduzir o risco

Orientações de otimização

A estratégia de ruptura da média móvel dupla pode ser otimizada nos seguintes aspectos:

  1. Encontrar combinações de períodos de média móvel mais adequadas para se adaptar às alterações do mercado
  2. Adicionar indicadores como volume para filtragem de sinal para garantir a validade
  3. Incorporar indicadores de estrutura de mercado para identificar tendências e ajustar parâmetros
  4. Adotar médias móveis dinâmicas que possam ajustar automaticamente os períodos com base nas alterações do mercado
  5. Incorporar estratégias de stop loss para controlar eficazmente o risco e proteger o capital

Conclusão

A estratégia de ruptura de média móvel dupla é uma estratégia quantitativa simples e prática. Ela tem vantagens como lógica e implementação fáceis, e também tem algumas questões de adaptabilidade ao mercado. Podemos torná-la um sistema de negociação lucrativo estável por meio da otimização de parâmetros, filtragem de sinal, controle de risco, etc. No geral, a estratégia de média móvel dupla é um ótimo protótipo de estratégia que vale a pena pesquisa e aplicação aprofundada para os traders quantitativos.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CDC Action Zone V.2", overlay=true)

// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)


Bullish = Fast>Slow
Bearish = Fast<Slow

Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast

Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]


alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")


//Plot

l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2000, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1921)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


if LSB == "Long only" and Buy and window()
    strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
    strategy.entry("L",true)
if LSB == "Both" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
    strategy.close("S",qty_percent=100,comment="TP Short")

Mais.