Estratégia de conversão de média móvel MACD de alta para baixa


Data de criação: 2023-12-08 15:29:41 última modificação: 2023-12-08 15:29:41
cópia: 0 Cliques: 772
1
focar em
1621
Seguidores

Estratégia de conversão de média móvel MACD de alta para baixa

Visão geral

A estratégia de conversão de touros e ursos do MACD calcula o DIFF e o DEA do indicador MACD para determinar se a tendência do mercado está sendo reversada, gerando assim um sinal de negociação. Quando o DIFF atravessa o DEA, faça mais; Quando o DIFF atravessa o DEA, faça um vazio. A estratégia combina simultaneamente com o filtro do EMA do preço para evitar falsas rupturas.

Princípio da estratégia

A estratégia baseia-se principalmente no DIFF e na média DEA do indicador MACD. A MACD representa a diferença entre a média móvel do índice e é composta por linhas DIFF, DEA e MACD. Dentre elas, a linha DIFF representa a diferença entre a média EMA de curto prazo e a média EMA de longo prazo.

Quando o DIFF sobe para cima, significa que a média de curto prazo começa a se fortalecer e o mercado entra em alta. Quando o DIFF desce para baixo, significa que a média de curto prazo começa a enfraquecer e o mercado entra em baixa.

Ao mesmo tempo, a estratégia também combina a linha média do EMA com o preço para filtrar brechas falsas. Apenas faça mais quando o DIFF forçar a ruptura do DEA para cima e o preço estiver abaixo do preço de compra anterior; apenas faça mais quando o DIFF forçar a ruptura do DEA para baixo e o preço estiver acima do preço de compra anterior.

Análise de vantagens

A estratégia de troca de bulls e bears do MACD combina o indicador MACD com a linha média do preço EMA, evitando falsos sinais produzidos apenas pelo indicador MACD e aumentando a eficácia da negociação. A estratégia julga que a tendência do mercado muda rapidamente e é adequada para operações de linha curta.

As principais vantagens são:

  1. Utilizando o MACD para determinar pontos de mudança de tendência e capturar o momento da mudança de mercado
  2. Filtragem em combinação com a linha média do preço EMA para reduzir a chance de falsas rupturas
  3. Os sinais de negociação são produzidos rapidamente e são adequados para operações de linha curta
  4. A implementação do acompanhamento de tendências permite obter ganhos de tendências a médio prazo
  5. A utilização de uma estratégia de operação de mudança de tendência que corresponde ao modelo de pensamento da maioria dos traders

Análise de Riscos

A estratégia de troca de ações para a linha média do MACD também tem alguns riscos, como:

  1. Os indicadores MACD são propensos a falsos sinais que requerem o filtro de preços EMA para verificação, mas também podem perder parte do movimento
  2. Observe de perto a linha média entre DIFF e DEA, se os parâmetros forem ajustados de forma inadequada, o sinal de erro aumentará
  3. O sinal de ruptura determina apenas uma linha K, podendo ocorrer ação de substituição.
  4. A estratégia usa o cruzamento DIFF e DEA como principal sinal de negociação. Se o mercado estiver incerto, o cruzamento é produzido com frequência, aumentando a frequência de negociação.

Os riscos podem ser otimizados em vários aspectos:

  1. Ajustar os parâmetros MACD para reduzir os sinais errados
  2. Aumentar a intensidade do filtro e reduzir a probabilidade de encurralamento
  3. Aumentar a filtragem de posições e limitar a frequência de negociação

Direção de otimização

A estratégia de conversão de linha média de ação do MACD também tem espaço para otimização e pode ser otimizada a partir das seguintes dimensões:

  1. Optimizar os parâmetros MACD, DIFF e DEA;
  2. Aumentar a filtragem de tempo de detenção e reduzir a frequência de negociação;
  3. Aumentar as estratégias de suspensão de prejuízos e controlar as perdas individuais;
  4. Filtragem em combinação com outros indicadores, como BOLL para cima e para baixo, KD, etc.;
  5. Aumentar o discernimento de tendências e evitar negociações adversas;
  6. Pode-se desenvolver uma estratégia de saída ou um modelo de estratégia de parada com base na estrutura da estratégia.

Resumir

A estratégia de conversão de touros e ursos de linha média do MACD determina rapidamente a mudança de tendência do mercado através do DIFF, DEA e o tempo de entrada do mercado em vários pontos e pontos vazios, e em combinação com o preço EMA, permite determinar rapidamente a mudança de tendência do mercado. A estratégia usa uma lógica de negociação simples e clara, determina o ponto de conversão rapidamente e é adequada para a linha curta e a linha média.

Código-fonte da estratégia
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("macd_strategy", 
          shorttitle="macd", 
          overlay=true, 
          pyramiding=1, 
          max_bars_back=5000, 
          calc_on_order_fills = false, 
          calc_on_every_tick=true, 
          default_qty_type=strategy.percent_of_equity, 
          default_qty_value=100, 
          commission_type =strategy.commission.percent, 
          commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]

cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
    cross_over_price := price[1]
    cross_over_signal := diff
if (crossunder(diff,dea))
    cross_under_price := price[1]
    cross_under_signal := diff
if dea > 0
    cross_over_price = na
    cross_over_signal = na
else
    cross_under_price = na
    cross_under_signal = na
if diff > 0
    if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
        strategy.entry("S", strategy.short,  comment="S")
else
    if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
        strategy.entry("B", strategy.long,  comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))