Estratégia quantitativa de crossover de média móvel


Data de criação: 2023-12-22 15:05:24 última modificação: 2023-12-22 15:05:24
cópia: 2 Cliques: 561
1
focar em
1621
Seguidores

Estratégia quantitativa de crossover de média móvel

Visão geral

A estratégia determina entradas e saídas através do cálculo da média móvel do índice EMA e do indicador MACD, combinando os sinais cruzados dos dois. Faça mais quando o preço atravessa a linha EMA e a linha MACD atravessa a linha de sinal; faça vazio quando o preço atravessa a linha EMA abaixo e a linha MACD abaixo da linha de sinal.

Princípio da estratégia

A estratégia usa a média móvel do índice EMA para determinar a direção da tendência atual. Ao mesmo tempo, o cruzamento de duas linhas de equilíbrio do indicador MACD é usado para gerar um sinal de compra e venda. O sinal de troca do MACD é julgado somente quando o preço quebra a linha EMA. Isso evita sinais errados.

A estratégia é baseada principalmente nas vantagens da estratégia de negociação de média móvel e da estratégia de negociação MACD. A média móvel é melhor para determinar a direção da tendência. O cruzamento de linhas rápidas e lentas do índice MACD para suavizar a média móvel pode sugerir pontos de compra e venda.

Análise de vantagens

A estratégia combina o julgamento do duplo indicador da EMA e MACD, para filtrar efetivamente alguns sinais errados e melhorar a qualidade do sinal. Ao mesmo tempo, a EMA julga a tendência principal e a MACD julga os pontos de compra e venda específicos, os dois se complementam e podem obter melhores resultados.

Além disso, a estratégia só leva em conta os sinais MACD quando o preço ultrapassa a linha média da EMA, evitando erros de negociação em situações de turbulência. Isso também aumenta a estabilidade da estratégia.

Análise de Riscos

O principal risco da estratégia reside na configuração dos parâmetros. Se os parâmetros do EMA e do MACD forem mal definidos, o sinal será perdido ou um sinal errado será produzido. Além disso, se a tendência do mercado se inverter, a estratégia terá um certo prejuízo.

Para reduzir o risco, os parâmetros devem ser adequadamente ajustados para que os parâmetros do EMA e do MACD correspondam ao ciclo de mercado atual. Ao mesmo tempo, recomenda-se o uso de stop loss para controlar perdas individuais.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Parâmetros de otimização dinâmica, permitindo que os parâmetros do EMA e do MACD sejam ajustados de acordo com a situação e o ciclo em tempo real, garantindo a validade dos parâmetros

  2. Adicionar combinações de outros indicadores, como o canal BOLL ou indicadores KD, para enriquecer o sinal de estratégia

  3. Otimizar automaticamente os parâmetros da estratégia com métodos de aprendizagem de máquina e ajustar os parâmetros de acordo com os resultados do feedback

  4. Ao atravessar a linha média da EMA, julgue a intensidade da direção para evitar falsas rupturas

  5. Aumentar a estratégia de stop loss para bloquear os lucros e cortar os prejuízos

Resumir

Esta estratégia de quantificação de equilíbrio cruzado em combinação com a dupla EMA e MACD pode efetivamente produzir um sinal de alta qualidade. A configuração de parâmetros optimizados, o aumento do stop loss e a adição de outros indicadores podem aumentar ainda mais a estabilidade e a lucratividade da estratégia.

Código-fonte da estratégia
/*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)