Estratégia de cruzamento de média móvel e combinação de MACD


Data de criação: 2023-10-24 13:51:02 última modificação: 2023-10-24 13:51:02
cópia: 1 Cliques: 843
1
focar em
1617
Seguidores

Estratégia de cruzamento de média móvel e combinação de MACD

Visão geral

Esta estratégia utiliza um sistema de cruzamento de médias móveis e um indicador MACD para implementar uma estratégia de negociação automática de fazer mais no banco de tendência e parar e parar no ponto de mudança de tendência. A estratégia é chamada de estratégia de combinação de cruzamento de linha de equilíbrio e MACD.

Princípios

A estratégia baseia-se principalmente na combinação do sistema de cruzamento de equilíbrio com o indicador MACD. Concretamente, quando o curto-circuito está acima do médio longo, faça mais; quando o curto-circuito está abaixo do médio longo, faça um espaço. Aqui, a EMA de 21 dias é escolhida como a média de curto prazo e a EMA de 100 dias como a média de longo prazo.

Além disso, o indicador MACD é usado auxiliarmente para confirmar o sinal de negociação. O MACD só é emitido quando o DIFF do MACD atravessa o DEA.

Além disso, a estratégia também usa o RSI para evitar o excesso de curto-circuito, apenas abrindo uma posição de curto-circuito quando o RSI está abaixo de 30%.

Em termos de stop loss, a estratégia usa um método de percentual fixo para rastrear o stop loss, com um ponto de stop loss múltipla reduzido em 1% para o preço de entrada e um ponto de stop loss único em 1% para o preço de entrada. Ao mesmo tempo, a estratégia também permite um stop stop móvel, que é interrompido quando o lucro flutuante múltipla atinge 3% do preço de entrada.

Análise de vantagens

A maior vantagem desta estratégia é a utilização de um sistema de linha média para determinar a direção da grande tendência e, em seguida, usar o indicador MACD para entrar, para filtrar eficazmente as brechas falsas. Em comparação com o uso de um único sistema de cruzamento de linha média, pode reduzir o número de transações ineficazes e aumentar a probabilidade de lucro.

Além disso, a estratégia usa um percentual fixo de stop-loss e um stop-loss móvel, o que permite controlar os perdas dentro do limite aceitável, ao mesmo tempo em que se bloqueia o lucro e bloqueia o lucro o mais cedo possível, garantindo o lucro. Isso pode reduzir a retirada da conta na negociação real e também reduzir as perdas causadas pela ganância.

Análise de Riscos

Os principais riscos desta estratégia são os seguintes:

  1. A existência de atraso no sistema de cruzamento de linha média pode levar a atrasos na entrada e a perda de pontos de entrada ótimos. A redução do atraso pode ser obtida com a otimização dos parâmetros da linha média.

  2. Os indicadores MACD são propensos a produzir falsos sinais e precisam de filtragem auxiliar de outros indicadores. Pode-se considerar a inclusão de indicadores como o KDJ para otimização.

  3. O modo de parada de perda de porcentagem fixa às vezes não é capaz de parar a parada de perda a tempo, pode ser alterado para parar a perda de rastreamento dinâmico.

  4. A estratégia de retração pode ser maior e pode ser considerada como uma estratégia de redução de posições para evitar riscos.

  5. A estratégia de apenas fazer mais e não fazer vazio, existe apenas com tendências multidirecionais limitações, pode considerar a inclusão de um mecanismo de vazio.

Direção de otimização

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

  1. Optimizar os parâmetros de linha média para tornar o sinal de linha média mais preciso. Pode experimentar diferentes tipos de linha média, como EMA, SMA e outros.

  2. Adicionar outros indicadores de filtragem de sinais de cruzamento de linha de equilíbrio, como KDJ, RSI, etc., para reduzir erros de negociação.

  3. Experimente métodos de parada dinâmica para controlar melhor o risco, como parada de rastreamento, parada de ATR, etc.

  4. Adição de um mecanismo de shorting para que a estratégia possa ser lucrativa em um cenário de baixa.

  5. Otimizar o gerenciamento de fundos e ajustar o tamanho da posição para reduzir a retirada máxima.

  6. Teste de desempenho de contratos de diferentes variedades, ampliando o alcance da estratégia.

  7. Aumentar o algoritmo de aprendizagem de máquina, utilizando algoritmos para otimizar automaticamente os parâmetros, reduzindo a intervenção humana.

Resumir

A estratégia integra os benefícios do sistema de equilíbrio linear e do indicador MACD, permitindo uma maior taxa de lucro. A estabilidade da estratégia pode ser aumentada ainda mais e a retração reduzida, através de configurações de parâmetros de otimização, adição de outros indicadores e melhoria do método de stop loss. A adição de mecanismos de arbitragem e aprendizado de máquina pode expandir a aplicabilidade da estratégia.

Código-fonte da estratégia
/*backtest
start: 2023-10-16 00:00:00
end: 2023-10-23 00:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Toxic_Cat_

//@version=5
// strategy("MA_50_200_CROSS", overlay=true, margin_long=100, margin_short=100)

EMA21 = ta.ema(close, 21)
EMA100 = ta.ema(close, 100)
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

plot(EMA21)
plot(EMA100, color = color.orange)

openLong = ta.crossover(EMA21, EMA100) and macdLine > signalLine
openShort = ta.crossunder(EMA21, EMA100) and ta.rsi(close, 14) <= 33

crossunderMACD = ta.crossunder(macdLine, signalLine)


if (strategy.opentrades < 1)
    if openLong 
        strategy.entry("L",strategy.long, 1)

   if openShort
      strategy.entry("S",strategy.short, 1)

// slose long
// if ((strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.03) <= open) 
//     strategy.exit("profit L", "L", limit = close)

// else if strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.01 >= open or crossunderMACD
//     strategy.exit("loss L", "L", stop = close)

// slose short
// if (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03) >= open
//     strategy.exit("profit S", "S", limit = (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03))

// else if strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01 <= open
//    strategy.exit("loss S", "S", stop = (strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01))