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

Autora:ChaoZhang, Data: 22-12-2023 às 15:05:24
Tags:

img

Resumo

Esta estratégia gera sinais de entrada e saída, calculando a média móvel exponencial da EMA e o indicador MACD e combinando os sinais de cruzamento de ambos.

Estratégia lógica

Esta estratégia usa a média móvel exponencial da EMA para determinar a direção da tendência atual. Ao mesmo tempo, usa o cruzamento da média móvel do indicador MACD para gerar sinais de negociação. Somente quando o preço atravessa a linha EMA, os sinais de cruz de ouro e cruz de morte da MACD serão considerados. Isso evita sinais falsos.

A estratégia baseia-se principalmente nas vantagens das estratégias de negociação de média móvel e estratégias de negociação MACD. A média móvel pode julgar a direção da tendência muito bem. Os cruzamentos de linha rápidos e lentos da média móvel exponencial MACD podem indicar pontos de compra e venda. Usar ambos em combinação pode melhorar a precisão dos sinais.

Análise das vantagens

Esta estratégia combina os indicadores duplos EMA e MACD para efetivamente filtrar alguns sinais falsos e melhorar a qualidade do sinal. Ao mesmo tempo, a EMA julga a tendência principal e o MACD julga pontos de entrada e saída específicos. Os dois se complementam e podem alcançar bons retornos.

Além disso, esta estratégia só considera o sinal MACD quando o preço atravessa a linha EMA, evitando negociações erradas em mercados instáveis.

Análise de riscos

O principal risco desta estratégia reside nas configurações dos parâmetros. Se os parâmetros da EMA e MACD forem definidos incorretamente, os sinais podem ser perdidos ou falsos sinais podem ser gerados. Além disso, se a tendência do mercado se inverter, a estratégia incorrerá em algumas perdas.

Para reduzir os riscos, os parâmetros devem ser ajustados adequadamente para corresponder ao ciclo de mercado atual da EMA e MACD. Ao mesmo tempo, recomenda-se usar stop loss para controlar perdas únicas.

Orientações de otimização

Os seguintes aspectos da estratégia podem ser otimizados:

  1. Optimização dinâmica dos parâmetros para ajustar os parâmetros EMA e MACD de acordo com as condições e ciclos de mercado em tempo real para garantir a validade dos parâmetros

  2. Adicionar outros indicadores em combinação, tais como canais BOLL ou indicadores KD, para enriquecer os sinais de estratégia

  3. Usar métodos de aprendizagem de máquina para otimizar automaticamente os parâmetros da estratégia e ajustar os parâmetros com base nos resultados dos backtests

  4. Ao atravessar a linha EMA, julgue a força da direcção para evitar falsas rupturas

  5. Adicionar estratégias de captação de lucros e stop loss para bloquear lucros e cortar perdas

Resumo

A estratégia quantitativa de cruzamento de média móvel combina indicadores EMA e MACD duplos para gerar sinais de alta qualidade de forma eficaz. A otimização de configurações de parâmetros, a adição de stop loss / take profit, a adição de outros indicadores, etc., podem melhorar ainda mais a estabilidade e lucratividade da estratégia. Esta estratégia eficaz e simples tem um grande valor de referência e aplicação para os traders quantitativos.


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

//@version=5
strategy("LONERTESTV2", overlay=true)

// Input definitions
fastLength = input(12, title="Fast Length")
slowlength = input(26, title="Slow Length")
MACDLength = input(9, title="MACD Length")
emaLength = input(13, title="EMA Length")
//smaLength = input(200, title="SMA Length")

// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
//SMA = ta.ema(close, smaLength)

// EMA Indicator - Are we in a rally or not?
EMA = ta.ema(close, emaLength)

// MACD Indicator - Is the MACD bullish or bearish?
MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions
buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5
sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5

if buy_entry
    strategy.entry(id='EL', direction=strategy.long)

if sell_entry
    strategy.entry(id='ES', direction=strategy.short)

// strategy.entry("Buy", strategy.long)
// strategy.entry("Sell", strategy.short)


Mais.