
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.
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 é:
Eliminação de tendências de preços e visualização mais clara da forma do MACD
Calcule a linha rápida e a linha lenta do DEMA, obtendo a linha reta e a linha de sinal do MACD
A linha MACD e a linha de sinal cruzada produzem sinais de negociação
Filtração de data e mês
Configurar a lógica de stop loss
As principais vantagens desta estratégia são:
Eliminar as tendências de preços permite ver mais claramente as interseções dos indicadores MACD, evitando ser enganado pelas tendências.
O uso do algoritmo DEMA para calcular os indicadores MACD pode filtrar alguns ruídos e tornar o sinal mais claro.
A combinação de filtragem por data e mês pode reduzir algumas transações desnecessárias.
Configuração de lógica de parada de perda, que pode parar a perda em tempo hábil e controlar o risco.
O uso de cruzamentos para gerar sinais reduz a possibilidade de transações erradas.
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.
A estratégia também apresenta alguns riscos que devem ser lembrados:
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.
Embora o algoritmo DEMA tenha filtrado parte do ruído, o cálculo do indicador ainda pode apresentar mais falsos sinais.
Os filtros de data e de mês podem ser rígidos demais, perdendo algumas oportunidades de negociação.
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.
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.
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:
Adicione outros indicadores de confirmação para evitar falsos sinais
Optimizar as condições de filtragem de datas, com a devida flexibilidade.
Testar e otimizar cuidadosamente o ponto de parada.
A partir de agora, os investidores poderão se juntar a um mecanismo de avaliação de tendências para evitar negociações adversas.
A análise e otimização de todos os parâmetros para melhorar a estabilidade.
A estratégia pode ser melhorada em vários aspectos:
Teste diferentes médias de preços para encontrar linhas alternativas mais adequadas para o EMA.
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.
Aumentar os indicadores auxiliares de julgamento, como o indicador de potência, para evitar falsos sinais.
Otimizar a estratégia de stop loss, definindo um stop loss móvel ou um stop loss pendente razoável.
Otimizar as condições de filtragem por data e mês para que seja mais flexível.
Adicionar um juízo de tendência e evitar operações de contra-corrida.
Optimizar todos os parâmetros para melhorar a estabilidade da estratégia.
Refazer a avaliação em períodos mais longos para verificar o efeito a longo prazo da estratégia.
Realizar verificação em tempo real e modificar os parâmetros da estratégia de acordo com a situação em tempo real.
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.
/*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")