Estratégia de decisão de negociação com base no histograma do indicador MACD


Data de criação: 2024-01-25 14:31:57 última modificação: 2024-01-25 14:31:57
cópia: 3 Cliques: 662
1
focar em
1617
Seguidores

Estratégia de decisão de negociação com base no histograma do indicador MACD

Visão geral

A estratégia baseia-se no histograma do indicador MACD para tomar decisões de negociação. Utiliza a tendência ascendente e a tendência descendente do histograma para gerar sinais de compra e venda.

Princípio da estratégia

A estratégia usa a linha rápida, a linha lenta e o histograma dos indicadores MACD. Primeiro, calcula-se a EMA da linha rápida e a EMA da linha lenta. Em seguida, a linha rápida é subtraída da linha lenta para obter o MACD, e o MACD é subtraído da sua média móvel.

Quando o Histogram continua a subir e atinge o seu ciclo, gera um sinal de compra. Isso indica que o MACD está acelerando para cima e quebrando sua linha de sinal, prevendo que o preço pode subir.

Quando o histograma de tendências de queda contínua atinge um período definido, gera um sinal de venda. Isso significa que o MACD está acelerando para baixo e quebrando sua linha de sinal, prevendo que o preço possa cair.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O MACD Histogram é uma ferramenta de tendência para capturar os pontos de inflexão dos preços e aumentar a probabilidade de lucro.

  2. A combinação de condições de ciclo com um Histogram em ascensão ou descensão contínua pode filtrar parte da transação de ruído e reduzir perdas desnecessárias.

  3. Permite personalizar os parâmetros MACD e o ciclo de tendência do Histograma, que pode ser ajustado para adaptar-se a diferentes variedades e períodos de negociação.

  4. A lógica da estratégia é simples e clara, fácil de entender e modificar, e também é fácil de usar com outros indicadores ou combinações de estratégias.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Quando o preço está na faixa de oscilação, pode produzir sinais errôneos, que necessitam de filtragem em combinação com indicadores de tendência.

  2. Depois que o histograma sobe ou desce, a linha MACD pode não ser capaz de quebrar a linha de sinal, não pode obter lucro para sair, e precisa de um stop loss para controlar o risco.

  3. Os ganhos em tempo real podem ser reduzidos sem considerar os custos de transação e os pontos de deslizamento.

  4. A configuração de parâmetros (como o ciclo MACD, o ciclo de tendência do histograma, etc.) imprópria pode levar a uma falha na eficácia da estratégia, necessitando de otimização para variedades e períodos.

Estes riscos podem ser controlados e reduzidos por meio de combinações com indicadores de tendência, configuração de mecanismos de parada de perdas e parâmetros de otimização.

Direção de otimização

A estratégia pode ser otimizada em várias direções:

  1. Combine com outros indicadores para avaliar a direção geral da tendência, evitando oscilações de negociação. Por exemplo, a linha de 20 dias para avaliar a tendência da linha média e longa.

  2. Aumentar o mecanismo de suspensão. Por exemplo, o MACD é interrompido quando a linha de sinalização cai novamente.

  3. Optimizar os parâmetros MACD para variedades com diferentes ciclos. Por exemplo, os parâmetros de ciclo podem ser reduzidos para dados de alta frequência.

  4. Otimizar o número mínimo de ciclos de ascensão ou descensão contínua do histograma, equilibrando a frequência e a confiabilidade do sinal.

  5. A lógica da estratégia de rastrear o sinal após o fracasso da tentativa de breakout.

  6. Combinação com outros indicadores, como o indicador de energia, o indicador de volatilidade, etc. para avaliar o calor do mercado e filtrar os sinais.

Resumir

A estratégia de Histogram Trend do MACD capta as mudanças de tendência do Histogram e permite o julgamento de pontos de inflexão de mudanças de preço. Combinado com a otimização de parâmetros e o julgamento de indicadores combinados, pode efetivamente eliminar sinais errados. O Histogram do MACD é uma ferramenta auxiliar de julgamento muito importante na negociação quantitativa, a estratégia fornece um pensamento comercial simples e prático.

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

//@version=4
//study(title="Histogram Strategy by Sedkur", shorttitle="Histogram Strategy by Sedkur")
strategy (title="Histogram Trends Strategy by Sedkur", shorttitle="Histogram Trends Strategy by Sedkur")


/// Getting inputs
dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
hist_length = input(title="Trend of Histogram Number", type=input.integer, defval=1, minval=1, maxval=100)
//buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
//sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
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

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)

//bullish = hist[1] <= hist and buyh<=hist?true:false
//bearish = hist[1] >= hist and sellh>=hist?true:false
bull=0
bear=0


for i=0 to hist_length
    if (hist[i+1] <= hist[i])
        bull:=bull+1
bullish = bull==hist_length+1?true:false   

for j=0 to hist_length
    if (hist[j+1] >= hist[j])
        bear:=bear+1
bearish = bear==hist_length+1?true:false 



//bullish = hist[1] <= hist and hist[2] <= hist and hist[3] <= hist and hist[4] <= hist and hist[5] <= hist?true:false
//bearish = hist[1] >= hist and hist[2] >= hist and hist[3] >= hist and hist[4] >= hist and hist[5] >= hist?true:false

strategy.entry("buy", strategy.long, comment="buy", when = bullish and year>=dyear)
strategy.entry("sell", strategy.short, comment="sell", when = bearish and year>=dyear)