Estratégias de negociação baseadas nos indicadores ADX e MACD


Data de criação: 2023-12-13 15:45:24 última modificação: 2023-12-13 15:45:24
cópia: 3 Cliques: 1244
1
focar em
1621
Seguidores

Estratégias de negociação baseadas nos indicadores ADX e MACD

Visão geral

A estratégia é conhecida como a estratégia de acompanhamento de tendências baseada nos indicadores ADX e MACD. Ela usa o indicador de tendências médias ((ADX) para determinar a direção e a força da tendência e, em combinação com o indicador de concentração de médias móveis ((MACD), realiza negociações de acompanhamento de tendências.

Princípio da estratégia

A estratégia determina a direção e a intensidade da tendência do mercado, calculando o ADX e a curva +DI, -DI. Quando a curva +DI atravessa a curva -DI, é um mercado de vários pontos, e quando a curva -DI atravessa a curva +DI, é um mercado de pontos vazios. Isso não é suficiente, quando o ADX é maior que 20, o que indica que a tendência é forte o suficiente.

A lógica do sinal de transação da estratégia é:

Multi-Head: quando a linha de diferença +DI> -DI e MACD atravessa a linha de sinal de baixo para cima Sinal de cabeça vazia: quando -DI> +DI e a linha de diferença do MACD atravessa a linha de sinal de cima para baixo

De acordo com essa lógica, a estratégia é capaz de capturar melhores momentos de entrada em uma forte tendência.

Vantagens estratégicas

A maior vantagem da estratégia é que ela leva em consideração os dois principais fatores de discernimento de tendências e escolha do momento de entrada, permitindo que os comerciantes encontrem melhores pontos de entrada quando há uma forte direção no mercado, o que aumenta consideravelmente a estabilidade e a lucratividade do sistema.

Além disso, a estratégia também introduziu a lógica de stop-loss. Quando a perda de posição excede o preço de stop-loss definido pelo usuário, a estratégia interrompe ativamente a perda e controla efetivamente a perda de cada transação.

Risco estratégico

Embora a estratégia tenha alguns benefícios, há alguns riscos a serem observados:

  1. Os sinais de negociação compostos por ADX e MACD, que podem falhar ou produzir sinais errados em determinadas condições de mercado, resultando em perdas desnecessárias;

  2. O preço de parada definido pelo usuário pode ser ultrapassado, causando perdas maiores do que as esperadas;

  3. Em mercados reversíveis, a estratégia pode gerar muitos negócios inválidos e custar a transação.

Para reduzir esses riscos, recomenda-se otimizar a configuração dos parâmetros do ADX e MACD e implementar estratégias rigorosas de gestão de fundos, ao mesmo tempo em que se ajusta a lógica de stop loss para adaptar-se a diferentes condições de mercado.

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

A estratégia ainda tem espaço para otimização:

  1. Pode-se introduzir mais indicadores para formar um sinal de negociação mais forte, por exemplo, a combinação de indicadores de volatilidade para limitar a negociação;

  2. Parâmetros do ADX e MACD podem ser automaticamente otimizados por métodos de aprendizado de máquina;

  3. Pode-se criar um mecanismo de suspensão de perdas adaptável, permitindo que a dinâmica dos preços de suspensão acompanhe as flutuações do mercado.

Com essas medidas, espera-se que a estratégia seja mais estável e lucrativa.

Resumir

Em geral, uma estratégia de acompanhamento de tendências baseada nos indicadores ADX e MACD, com vantagens como a determinação da direção da tendência, a localização de melhores momentos de entrada e a configuração de lógica de stop-loss, é um sistema de negociação a ser considerado. Com a otimização dos parâmetros e o controle de risco, a estratégia pode obter um bom retorno do investimento.

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

//@version=5
strategy("TUE ADX/MACD Confluence V1.0", overlay=true)

showsignals = input(true, title="Show BUY/SELL Signals")
showcandlecolors = input(true, title="Show Candle Colors")
length = input(14, title="ADX Length")
smoothing = input(10, title="ADX Smoothing")
macdsource = input(close, title="MACD Source")
macdfast = input(12, title="MACD Fast Length")
macdslow = input(26, title="MACD Slow Length")
macdsignal = input(9, title="MACD Signal Length")
colorup = input(color.green, title="Up Candle Color")
colordown = input(color.red, title="Down Candle Color")

/////////////////////////////////////////////////////////////////////////////////////////////// ADX AND MACD CALC
[diplus, diminus, adx] = ta.dmi(length, smoothing)

[macdline, signalline, histline] = ta.macd(macdsource, macdfast, macdslow, macdsignal)

//////////////////////////////////////////////////////////////////////////////////////////////TRADE CALC

longcheck = diplus > diminus and macdline > signalline
shortcheck = diminus > diplus and signalline > macdline

int trade = 0

//Open from nothing

if trade == 0 and longcheck
    trade := 1

else if trade == 0 and shortcheck
    trade := -1
    
//Reversal

else if trade == 1 and shortcheck
    trade := -1
    
else if trade == -1 and longcheck
    trade := 1
    
//Keep status quo until crossover

else
    trade := trade[1]

//////////////////////////////////////////////////////////////////////////////////////////////PLOT 

colors = longcheck ? colorup : shortcheck ? colordown : color.white

plotcandle(open, high, low, close, color = showcandlecolors ? colors : na)

plotshape(trade[1] != 1 and trade == 1 and showsignals, style=shape.labelup, text='BUY', textcolor=color.white, color=color.green, size=size.small, location=location.belowbar)
plotshape(trade[1] != -1 and trade == -1 and showsignals, style=shape.labeldown, text='SELL', textcolor=color.white, color=color.red, size=size.small, location=location.abovebar)

///////////////////////////////////////////////////////////////////////////////////////////// ALERTS

// Add Stop Loss
stopLossPrice = input(100, title="Stop Loss Price")

if trade == 1
    strategy.entry("Long", strategy.long)

if trade == -1
    strategy.entry("Short", strategy.short)

if trade == 1 and close < close[1] - stopLossPrice
    strategy.close("LongExit")

if trade == -1 and close > close[1] + stopLossPrice
    strategy.close("ShortExit")