Estratégia de negociação de cruzamento de sinal de média móvel diária MacD200


Data de criação: 2024-01-03 11:50:56 última modificação: 2024-01-03 11:50:56
cópia: 0 Cliques: 930
1
focar em
1621
Seguidores

Estratégia de negociação de cruzamento de sinal de média móvel diária MacD200

Visão geral

A estratégia de negociação é uma estratégia quantitativa de operação de sinal cruzado com base na média móvel de 200 dias do MACD. Combina a dupla função do MACD de determinar os sinais de compra e venda do mercado e a média móvel de 200 dias de determinar a tendência do mercado, com o objetivo de descobrir o momento de entrada e saída mais precisos.

Princípio da estratégia

A estratégia tem dois pontos centrais:

  1. O cruzamento da linha rápida e lenta do indicador MACD gera sinais de compra e venda. Quando a linha rápida quebra a linha lenta de baixo, gera um sinal de compra; Quando a linha rápida cai de cima para baixo e quebra a linha lenta, gera um sinal de venda.

  2. A média móvel de 200 dias determina a tendência geral do mercado. Os preços acima da média de 200 dias são o mercado de ativos e abaixo o mercado de ativos.

De acordo com esses dois pontos, as regras de negociação específicas da estratégia são:

Quando a linha rápida do MACD quebra a linha lenta do MACD a partir da direção inferior, o gráfico em colunas é negativo e o preço está acima da média móvel de 200 dias, a compra é realizada; Quando a linha rápida do MACD cai da direção superior abaixo da linha lenta do MACD, o gráfico em colunas é positivo e o preço está abaixo da média móvel de 200 dias, a venda é realizada.

Vantagens estratégicas

  1. A dupla determinação aumenta a estabilidade e a taxa de sucesso da estratégia. A MACD determina os sinais de compra e venda e a linha média de 200 dias determina a tendência do mercado. A dupla determinação pode filtrar alguns sinais de negociação de maior incerteza.

  2. Em mercados de tendências fortes, a estratégia pode trazer maiores lucros. Especialmente em mercados de touros, ela pode capturar rapidamente oportunidades de aumento de preços.

  3. O indicador MACD também é mais sensível a sair da fase de correção de choque. A estratégia pode capturar rapidamente a nova direção da tendência quando os preços terminam a longa correção de choque e entram em uma situação de tendência.

Análise de Riscos

  1. Esta estratégia é mais sensível à configuração de parâmetros. Se os parâmetros do indicador MACD forem configurados incorretamente, pode haver erros de entrada e saída.

  2. Os sinais de compra e venda do MACD são mais falhos perto da reviravolta da tendência. É possível que haja uma maior retração dos lucros da estratégia.

  3. Quando os preços estão em um estado de correção horizontal por um longo período, a estratégia não consegue determinar uma direção de tendência clara, o que pode levar a uma maior volatilidade de ganhos e perdas e a um prolongamento do tempo de retirada.

Direção de otimização da estratégia

  1. É possível testar diferentes combinações de parâmetros para encontrar um parâmetro MACD mais preciso para gerar um sinal.

  2. Pode-se considerar a inclusão de outros indicadores técnicos para confirmação, como RSI, KD, etc., formando uma ressonância de vários indicadores para aumentar a confiabilidade da estratégia.

  3. Pode-se configurar um ponto de parada para controlar a retirada máxima. Quando o preço apresenta uma ruptura de reversão mais significativa, a parada imediata pode evitar a expansão da parada.

Resumir

A estratégia de cruzamento de linha média diária do MACD 200 combina a dupla função de julgamento de tendências e julgamento de sinais de negociação, o que pode aumentar efetivamente a probabilidade de lucro. É uma estratégia de negociação quantitativa mais estável e confiável. Mas a estratégia também tem uma certa dependência de parâmetros e estado do mercado.[/

Código-fonte da estratégia
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
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/
// © x11joe

//@version=4
//This strategy is based on a youtube strategy that suggested I do this...so I did!

strategy(title="MacD 200 Day Moving Average Signal Crossover Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

moving_avg_length = input(title="Moving Average Length", type=input.integer, defval=200)
moving_avg = sma(close,moving_avg_length)

moving_avg_normalized = close - moving_avg
plot(moving_avg_normalized, title="Moving Average Normalized", style=plot.style_line, color=color.orange,linewidth=3)

plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)

if(macd>signal and macd<0 and close>moving_avg)
    strategy.entry("buy",strategy.long)

if(close<moving_avg and macd<signal and macd>0)
    strategy.entry("sell",strategy.short)