Estratégia de acompanhamento de tendência somente longa baseada em ADX, MA e EMA


Data de criação: 2024-01-29 11:30:15 última modificação: 2024-01-29 11:30:15
cópia: 1 Cliques: 682
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência somente longa baseada em ADX, MA e EMA

Visão geral

Esta estratégia consiste principalmente em usar o indicador ADX para determinar a tendência e construir uma média móvel combinando MA e EMA com duas configurações diferentes de parâmetros. A estratégia de acompanhamento de tendências é apenas fazer mais.

Princípio da estratégia

A estratégia usa principalmente o ADX para determinar a tendência e a força do mercado. O ADX determina a presença e a força de uma tendência calculando o grau e a direção da mudança de preço. Quando o ADX sobe, indica que está em uma tendência ascendente; quando o ADX desce, indica que a tendência está enfraquecendo.

A estratégia usa duas médias móveis de diferentes configurações de parâmetros, MA e EMA, para auxiliar no julgamento. Elas eliminam efetivamente a aleatoriedade dos preços e mostram a direção da tendência principal dos preços.

Combinando as características do ADX e das médias móveis, a estratégia constrói um sinal de negociação para determinar a direção da tendência: o ADX sobe e o preço abre mais posições quando a MA e a EMA sobem, o ADX desce ou o preço cai abaixo da MA / EMA, realizando uma estratégia de acompanhamento de tendência que só faz mais.

Análise de vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. O ADX é usado para avaliar a intensidade de uma tendência, reduzir a ocorrência de transações inválidas e acompanhar a tendência.
  2. A média móvel, combinada com dois parâmetros diferentes, é filtrada para identificar tendências;
  3. Fazer mais, para evitar a perda de pontos de deslizamento causada pela operação de reversão frequente;
  4. A entrada é exigente e os riscos são controlados.
  5. A implementação de uma estratégia de acompanhamento de tendências de linha longa.

Análise de risco estratégico

A estratégia também apresenta alguns riscos:

  1. O ADX está atrasado e pode ter perdido o melhor momento de entrada;
  2. O blogueiro também escreveu sobre o problema da falta de emprego: “A falta de emprego é um problema grave.
  3. Quando a tendência muda, há um certo risco de perdas;
  4. A configuração errada de parâmetros também pode afetar o desempenho da estratégia.

Resolução:

  1. Ajustar adequadamente os parâmetros do ADX para reduzir o atraso;
  2. Pode-se definir uma estratégia de stop loss para controlar perdas individuais;
  3. Optimizar os parâmetros para testes e selecionar os melhores.

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

A estratégia também pode ser melhorada nos seguintes aspectos:

  1. Aumentar as estratégias de prevenção de perdas e controlar melhor os riscos;
  2. Aumentar a gestão de posições, adaptando-as dinamicamente à evolução do mercado;
  3. Testar parâmetros de otimização para encontrar a melhor combinação de parâmetros;
  4. Aumentar os algoritmos de aprendizagem de máquina e os parâmetros de otimização dinâmica;
  5. A construção de um martingale multi-estratégico para reduzir o impacto na taxa de lucro/dívida.

Resumir

A estratégia em geral é uma estratégia de monitorização de tendências que utiliza o ADX para determinar a força da tendência e auxiliar na construção de sinais de filtragem com duas médias móveis. Ela controla efetivamente a ocorrência de negociações ineficazes, alcançando o efeito de acompanhamento de tendências, uma estratégia de monitorização de tendências mais estável.

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

//@version=4
strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
maPeriod = input(50, title="MA Period")
emaPeriod = input(50, title="EMA Period")
dirmov(len) =>
    up = change(high)
    down = -change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = rma(tr, len)
    plus = fixnan(100 * rma(plusDM, len) / truerange)
    minus = fixnan(100 * rma(minusDM, len) / truerange)
    [plus, minus]
adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
maValue = sma(close, maPeriod)
emaValue = ema(close, emaPeriod)
longCondition = sig > sig[1] and close > maValue and close > emaValue
if (longCondition)
    strategy.entry("Long", strategy.long)
exitCondition = sig < sig[1] or  close < maValue or close < emaValue
if (exitCondition)
    strategy.close("Long")
plot(maValue, color=color.blue, title="MA")
plot(emaValue, color=color.orange, title="EMA")
plot(sig, color=color.red, title="ADX")