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

Autora:ChaoZhang, Data: 2024-01-31 11:29:45
Tags:

img

Resumo

Esta é uma estratégia de negociação baseada no cruzamento de médias móveis duplas. Ela gera sinais de compra e venda quando duas médias móveis de comprimentos diferentes se cruzam. Especificamente, ela fica longa quando o MA mais rápido cruza acima do MA mais lento e fica curta quando o MA mais rápido cruza abaixo do MA mais lento.

Estratégia lógica

A lógica central desta estratégia está nos princípios de cruzamento entre duas médias móveis. Uma média móvel é o preço médio aritmético durante um período de tempo especificado.

Nesta estratégia, a MA de curto prazo capta tendências de curto prazo, enquanto a MA de longo prazo capta tendências de longo prazo.

Especificamente, a estratégia calcula os MA usando ta.sma sobre o long_period e short_period definidos pelos usuários. Em seguida, usa ta.crossover e ta.crossunder para detectar o crossover dourado e o crossover da morte entre os dois MA. Quando o MA curto cruza acima do MA longo, vá longo. Quando o MA curto cruza abaixo, vá curto.

Vantagens

As principais vantagens desta estratégia incluem:

  1. Lógica simples, fácil de seguir.
  2. Parâmetros personalizáveis adaptáveis a vários mercados.
  3. O cruzamento MA filtra o ruído, capturando a inversão da tendência.
  4. Alta sensibilidade na captura dos pontos de inflexão dos preços.

Riscos

Há também vários riscos:

  1. Uma lacuna muito pequena entre as MAs causa sinais falsos.
  2. Períodos de MA errados perdem tendências importantes.
  3. As reversões nem sempre implicam mudanças de tendência.
  4. Os parâmetros precisam de ser ajustados para evitar sobreajustes.

Para mitigar os riscos, podem ser ajustados parâmetros, incorporados stop loss e take profit ou podem ser adicionados outros indicadores técnicos.

Optimização

Há espaço para uma maior otimização:

  1. Otimizar os períodos de MA adaptativos.
  2. Adicione o filtro de volume para evitar falhas.
  3. Incorporar outros indicadores como MACD, KDJ.
  4. Adicionar stop loss/take profit para limitar a perda.
  5. Melhorar a estrutura do código para uma melhor escalabilidade.

Conclusão

Em conclusão, esta é uma estratégia de início ideal para a negociação algorítmica, graças à sua simplicidade em lógica e parâmetros, enquanto ainda é capaz de capturar efetivamente as reversões do mercado.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])

// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)

// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100

strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))


Mais.