Estratégia MACD para neutralizar tendências


Data de criação: 2023-10-30 17:08:16 última modificação: 2023-10-30 17:08:16
cópia: 1 Cliques: 641
1
focar em
1617
Seguidores

Estratégia MACD para neutralizar tendências

Visão geral

A estratégia usa a tendência de eliminação do preço das ações para observar com mais clareza a forma do indicador MACD. A estratégia também combina filtros condicionais de mês e data, bem como a lógica de parada de liquidação, para formar um sistema de estratégia mais completo.

Princípio da estratégia

Em primeiro lugar, calcula-se a EMA do preço, para eliminar a tendência do preço, obtendo a EMA do preço após a eliminação da tendência. Em seguida, com base na EMA, calcula-se a DEMA rápida, a DEMA lenta e a linha reta MACD, respectivamente.*EMA1-EMA2) ◦ DEMA de linha lenta e linha de sinal são iguais ◦ Depois de obter a linha reta MACD (DEMA de linha rápida - DEMA de linha lenta) e a linha de sinal, se a linha MACD atravessar a linha de sinal na linha reta, gerará um sinal de compra; se a linha MACD atravessar a linha de sinal abaixo da linha reta, gerará um sinal de venda ◦ Finalmente, filtrar o sinal com a condição de mês e data e configurar a lógica de parada ◦

A lógica central da estratégia é:

  1. Eliminação de tendências de preços e visualização mais clara da forma do MACD

  2. Calcule a linha rápida e a linha lenta do DEMA, obtendo a linha reta e a linha de sinal do MACD

  3. A linha MACD e a linha de sinal cruzada produzem sinais de negociação

  4. Filtração de data e mês

  5. Configurar a lógica de stop loss

Análise de vantagens

As principais vantagens desta estratégia são:

  1. Eliminar as tendências de preços permite ver mais claramente as interseções dos indicadores MACD, evitando ser enganado pelas tendências.

  2. O uso do algoritmo DEMA para calcular os indicadores MACD pode filtrar alguns ruídos e tornar o sinal mais claro.

  3. A combinação de filtragem por data e mês pode reduzir algumas transações desnecessárias.

  4. Configuração de lógica de parada de perda, que pode parar a perda em tempo hábil e controlar o risco.

  5. O uso de cruzamentos para gerar sinais reduz a possibilidade de transações erradas.

  6. Em geral, a estratégia, combinada com a eliminação de tendências, o cálculo DEMA e a filtragem de condições, pode produzir um sinal de negociação mais claro e confiável.

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. Após a eliminação da tendência, os sinais de cruzamento MACD podem aumentar, o que requer verificação em campo para ser possível.

  2. Embora o algoritmo DEMA tenha filtrado parte do ruído, o cálculo do indicador ainda pode apresentar mais falsos sinais.

  3. Os filtros de data e de mês podem ser rígidos demais, perdendo algumas oportunidades de negociação.

  4. A configuração do ponto de parada deve ser considerada como razoável, sendo que um relaxamento excessivo aumenta o risco e um rigoroso pode causar uma parada frequente.

  5. A estratégia baseia-se principalmente no indicador MACD, cuja eficácia pode ser afetada se o mercado não for adequado para o uso do indicador.

  6. O espaço para a otimização dos parâmetros da estratégia ainda é grande e precisa de testes adicionais através de testes de retrospectiva e de disco rígido.

Resposta:

  1. Adicione outros indicadores de confirmação para evitar falsos sinais

  2. Optimizar as condições de filtragem de datas, com a devida flexibilidade.

  3. Testar e otimizar cuidadosamente o ponto de parada.

  4. A partir de agora, os investidores poderão se juntar a um mecanismo de avaliação de tendências para evitar negociações adversas.

  5. A análise e otimização de todos os parâmetros para melhorar a estabilidade.

Direção de otimização

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

  1. Teste diferentes médias de preços para encontrar linhas alternativas mais adequadas para o EMA.

  2. Experimente diferentes combinações de parâmetros para otimizar o comprimento da linha rápida, a linha lenta e a linha de sinal do MACD.

  3. Aumentar os indicadores auxiliares de julgamento, como o indicador de potência, para evitar falsos sinais.

  4. Otimizar a estratégia de stop loss, definindo um stop loss móvel ou um stop loss pendente razoável.

  5. Otimizar as condições de filtragem por data e mês para que seja mais flexível.

  6. Adicionar um juízo de tendência e evitar operações de contra-corrida.

  7. Optimizar todos os parâmetros para melhorar a estabilidade da estratégia.

  8. Refazer a avaliação em períodos mais longos para verificar o efeito a longo prazo da estratégia.

  9. Realizar verificação em tempo real e modificar os parâmetros da estratégia de acordo com a situação em tempo real.

Resumir

Em geral, a estratégia usa a ideia de eliminar a tendência, calcular o indicador MACD na forma de DEMA e, em combinação com o filtro de data para gerar um sinal de negociação, é uma estratégia simples, mas viável. Sua maior vantagem é poder ver claramente o padrão MACD e evitar ser influenciado pela tendência de preços.

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

//@version=2

strategy(title = "Trendless MACD  Strategy",shorttitle="MACD-T Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.01,initial_capital=100000)



maperiod=input(9)
ema=ema(close,maperiod)


fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = ema(ema,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(ema,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )


MACDSignal = MACDLine-SignalLine


colorbar= MACDSignal>0?green:red

plot(MACDSignal,color=colorbar,style=columns,title='Histogram',histbase=0)
p1 = plot(MACDLine,color=blue,title='MACDLine')
p2=plot(SignalLine,color=red,title="SignalLine")
fill(p1,p2,color=blue)


longCond =  crossover(MACDLine,SignalLine) 

shortCond =  crossunder(MACDLine,SignalLine) 




monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)

yearfrom= input(2018)
yearuntil=input(2021)

if (  longCond   ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond  ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
    strategy.cancel(id="SHORT")