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

Autora:ChaoZhang, Data: 2023-11-21 11:34:09
Tags:

img

Resumo

A estratégia de cruzamento de média móvel dupla é uma estratégia típica de tendência.

Estratégia lógica

A estratégia é baseada principalmente em duas médias móveis. A primeira média móvel tem um período mais curto e pode responder às mudanças de preço mais rapidamente. A segunda média móvel tem um período mais longo e pode filtrar algum ruído. Quando a média móvel de curto prazo cruza a média móvel de longo prazo, ela é considerada um sinal de compra. Quando a média móvel de curto prazo cruza abaixo da média móvel de longo prazo, ela é considerada um sinal de venda.

Especificamente, esta estratégia calcula uma média móvel exponencial de 10 períodos (preço1) e uma média móvel exponencial de 20 períodos (preço2). Se os preços de abertura e fechamento da barra atual forem ambos superiores às duas médias móveis, um sinal de compra é gerado. Se os preços de abertura e fechamento forem ambos inferiores às duas médias móveis, um sinal de venda é gerado.

Este design permite uma entrada mais cedo quando uma tendência começa a se formar e segue a tendência.

Vantagens

  • Determine as tendências cedo e siga as tendências fortes
  • Filtro de ruído para cruzamento duplo MA
  • A dupla confirmação dos preços de abertura e fechamento reduz as transacções ineficazes

Riscos

  • Próprio para trocas e trocas inversas
  • Podem ocorrer sinais de cruzamento frequentes
  • Espaço de ajuste de parâmetros grande pode levar a sobreajuste

Reforço

  • Teste diferentes conjuntos de parâmetros para encontrar o ideal
  • Adicionar stop loss ao tamanho da perda limite
  • Adicionar filtros para reduzir as más negociações
  • Combinar outros indicadores para confirmar sinais

Resumo

A estratégia é relativamente simples e prática, capturando tendências com crossover de MA dupla, tornando-se uma estratégia de quantidade fundamental. Mas também tem alguns riscos e precisa de otimização adicional para diferentes regimes de mercado. Há espaço para melhorar parâmetros, paradas, filtros etc. para torná-lo mais robusto.


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

//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)  
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)    
if(buy_entry)
    strategy.entry("Long", strategy.long)
    
if(sell_entry)
    strategy.entry("Short", strategy.short)

strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)



Mais.