Estratégia de cruzamento da média móvel

Autora:ChaoZhang, Data: 2023-12-08 12:20:42
Tags:

img

Resumo

A estratégia gera sinais de negociação calculando duas médias móveis de períodos diferentes e traçando seus pontos de cruzamento.

Estratégia lógica

A estratégia baseia-se na vantagem das médias móveis - elas eliminam a aleatoriedade nas sequências de preços e extraem a tendência principal.

Quando a média móvel de curto prazo cruza acima da média móvel de longo prazo, ele sinaliza que os preços estão entrando em uma tendência de alta. Quando cruza abaixo, ele sinaliza que os preços estão entrando em uma tendência de queda. De acordo com essa lógica, vamos longos ou curtos, respectivamente.

Especificamente, a estratégia calcula a média móvel simples de 7 dias (SMA) e a média móvel simples de 20 dias. Quando as duas médias se cruzam, ela julga uma inversão de tendência e desencadeia um sinal comercial. Para diferenciar entre os tipos de cruzamento, definimos a linha de curto prazo acima da linha de longo prazo como uma tendência de preço ascendente e vice-versa para uma tendência descendente. Quando a linha de curto prazo cruza acima da linha de longo prazo, ou seja, o início de uma tendência ascendente, uma posição longa é inserida. Quando a linha de curto prazo cruza abaixo, ou seja, o início de uma tendência descendente, uma posição curta é inserida.

Análise das vantagens

(1) A lógica da estratégia é simples, fácil de compreender e de aplicar.

(2) As médias móveis como indicadores de acompanhamento da tendência podem efetivamente filtrar algum ruído nos preços.

(3) Configurações de parâmetros flexíveis para satisfazer diferentes condições de mercado e requisitos comerciais.

(4) A utilização de dois períodos de média móvel comumente utilizados facilita a determinação de sinais comerciais claros.

(5) Visualização poderosa para tendência intuitiva, identificação de níveis-chave, etc.

(6) Os parâmetros podem ser otimizados através de backtesting para melhorar o retorno da estratégia.

Análise de riscos

(1) A estratégia é bastante sensível às flutuações do mercado.

(2) Os crossovers podem não identificar com precisão os níveis de reversão da tendência e podem desencadear sinais errados.

(3) As regras rígidas não podem adaptar-se a acontecimentos drásticos que afectam os mercados, podendo causar perdas enormes.

(4) Os parâmetros inadequados podem também levar a sinais imprecisos e a trocas perdidas.

Para mitigar esses riscos, os parâmetros podem ser ajustados em conformidade. Outros indicadores podem ser adicionados para confirmação. Estratégias de stop loss podem controlar as perdas. Parâmetros ou estratégias podem ser ajustados por regimes de mercado.

Orientações para a melhoria

(1) A incorporação de outros indicadores técnicos para formar uma estratégia combinada poderia aumentar a precisão do sinal.

(2) Adicionar estratégias de stop loss para controlar eficazmente a perda de uma única transacção.

(3) Teste e otimização de períodos de média móvel. Tente diferentes combinações rápidas e lentas para encontrar os melhores parâmetros. Outras médias móveis como EMA, WMA também podem ser testadas.

(4) Ajuste dos parâmetros com base em diferentes produtos e condições de mercado.

Conclusão

A estratégia de cruzamento da média móvel é uma estratégia de tendência muito típica e básica. Ao calcular duas médias móveis de períodos diferentes e observar seus cruzamento, ele julga as mudanças na tendência de preço. Os sinais de negociação são gerados quando o período mais curto cruza a média móvel acima ou abaixo da mais longa. Esta lógica simples é fácil de implementar e flexível de ajustar, tornando-se uma estratégia quantitativa introdutória. Mas também tem defeitos como sensibilidade às flutuações do mercado e sinais potenciais imprecisos. Combinando com outros indicadores, adicionando paradas e otimização de parâmetros, a estratégia pode ser aprimorada em uma estratégia muito prática para negociação quantitativa.


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

//@version=3
strategy("Ma stratégie", overlay=true)

// Multi-timeframe and price input
pricetype = input(close, title="Price Source For The Moving Averages")
useCurrentRes = input(true, title="Use Current Timeframe As Resolution?")
resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above",  defval="W")
res = useCurrentRes ? timeframe.period : resCustom
price = request.security(syminfo.tickerid, res, pricetype)

// MA period input
shortperiod = input(7, title="Short Period Moving Average")
longperiod = input(20, title="Long Period Moving Average")



short = ema(price, shortperiod) 
long = ema(price, longperiod) 
   
// MA trend direction color
shortcolor = short > short[1] ? lime : short < short[1] ? red : blue
longcolor = long > long[1] ? lime : long < long[1] ? red : blue

// MA output
MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor)
MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor)
fill(MA1, MA2, color=silver, transp=50)

// MA trend bar color
TrendingUp() => short > long 
TrendingDown() => short < long 
barcolor(TrendingUp() ? green : TrendingDown() ? red : blue)

// MA cross alert
MAcrossing = cross(short, long) ? short : na
plot(MAcrossing, style = cross, linewidth = 4,color=black)

// MA cross background color alert
Uptrend() => TrendingUp() and TrendingDown()[1]
Downtrend() => TrendingDown() and TrendingUp()[1]
bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50)

// Buy and sell alert
Buy = Uptrend() and close > close[1]
Sell = Downtrend() and close < close[1]
plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom)
plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top)



if (Buy)
    strategy.entry("My Long Entry Id", strategy.long)


if (Sell)
    strategy.entry("My Short Entry Id", strategy.short)

Mais.