Impulso Médio Índice de Movimento Direcional Médio Movente Estratégia de Crossover

Autora:ChaoZhang, Data: 2024-02-29 11:50:49
Tags:

img

Resumo

A estratégia de cruzamento de média móvel combina dois poderosos indicadores técnicos, média móvel (MA) e índice direcional médio (ADX), para fornecer aos traders maior precisão técnica.

Estratégia lógica

A estratégia usa o cruzamento dos indicadores MA e ADX como base para as decisões de negociação. Quando o ADX está acima do limiar e o DIdiff (DI+ - DI-) é maior que 0, ele vai longo. Quando o ADX está acima do limiar e o DIdiff é menor que 0, ele sai das posições.

Análise das vantagens

Combinando as vantagens da média móvel e do índice ADX, esta estratégia pode identificar efetivamente a existência e a direção das tendências e reduzir os sinais falsos.

Além disso, esta estratégia é uma estratégia totalmente quantitativa baseada em cálculos de parâmetros com bons resultados de backtesting e desempenho vivo estável, tornando-a adequada para negociação algorítmica.

Análise de riscos

Esta estratégia é propensa a riscos de negociação durante flutuações significativas do mercado. Quando os preços se movem violentamente e os indicadores não reagem, pode trazer perdas para a conta. Além disso, configurações de parâmetros inadequadas também podem afetar o desempenho da estratégia.

Os parâmetros podem ser otimizados e combinados com outros indicadores de filtragem para reduzir os sinais falsos.

Orientações de otimização

Os seguintes aspectos desta estratégia podem ser otimizados:

  1. Combinar com outros indicadores de filtragem, tais como Bandas de Bollinger, RSI, etc., para melhorar a qualidade do sinal

  2. Otimizar os parâmetros de comprimento da média móvel e ADX para encontrar a combinação de parâmetros ideal

  3. Adicionar mecanismos de stop loss para controlar perdas individuais

  4. Teste diferentes períodos de espera para encontrar o ciclo de espera ideal

Conclusão


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Julien_Eche

//@version=5
strategy("MA ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)

start_date = input(timestamp("1975-01-01T00:00:00"), title="Start Date")
end_date = input(timestamp("2099-01-01T00:00:00"), title="End Date")

// Indicator Inputs
group1 = "MA Parameters"
lengthMA = input.int(50, title="MA Length", minval=1, group=group1)
sourceMA = input(close, title="MA Source", group=group1)

group2 = "ADX Parameters"
diLength = input.int(14, title="DI Length", minval=1, group=group2)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1, maxval=50, group=group2)
adxMAActive = input.int(15, title="ADX MA Active", minval=1, group=group2)

// Directional Movement calculations
upwardMovement = ta.change(high)
downwardMovement = -ta.change(low)
trueRangeSmoothed = ta.rma(ta.atr(diLength), diLength)
positiveDM = fixnan(100 * ta.rma(upwardMovement > downwardMovement and upwardMovement > 0 ? upwardMovement : 0, diLength) / trueRangeSmoothed)
negativeDM = fixnan(100 * ta.rma(downwardMovement > upwardMovement and downwardMovement > 0 ? downwardMovement : 0, diLength) / trueRangeSmoothed)
dmSum = positiveDM + negativeDM 

// Average Directional Index (ADX) calculation
averageDX = 100 * ta.rma(math.abs(positiveDM - negativeDM) / math.max(dmSum, 1), adxSmoothing)

// Line color determination
lineColor = averageDX > adxMAActive and positiveDM > negativeDM ? color.teal : averageDX > adxMAActive and positiveDM < negativeDM ? color.red : color.gray

// Moving Average (MA) calculation
maResult = ta.wma(sourceMA, lengthMA)

// Plotting the Moving Average with color
plot(maResult, color=lineColor, title="MA", linewidth=3)

// Strategy logic
if (averageDX > adxMAActive and positiveDM > negativeDM)
    strategy.entry("Buy", strategy.long)

if (averageDX > adxMAActive and positiveDM < negativeDM)
    strategy.close("Buy")


Mais.