Estratégia longa e curta do indicador de momentum


Data de criação: 2023-11-02 16:34:48 última modificação: 2023-11-02 16:34:48
cópia: 0 Cliques: 644
1
focar em
1617
Seguidores

Estratégia longa e curta do indicador de momentum

Visão geral

A estratégia utiliza indicadores de dinâmica, como o indicador de orientação da média (ADX), o indicador de tendência (DMI) e o indicador de trajetória de mercadorias (CCI), para determinar a direção da tendência e acompanhar a tendência. Quando o ADX e o indicador de tendência confirmam a formação de tendência, estabeleça uma posição no momento da ultrapassagem do CCI.

Princípio da estratégia

  1. Calcular os indicadores ADX, DMI e CCI.

    • O ADX é usado para avaliar a força da tendência, e quando o ADX é superior ao limiar definido, a tendência é considerada forte o suficiente.
    • O DMI é composto por DI+ e DI-, que representam a intensidade de uma tendência ascendente e uma tendência descendente, respectivamente. Quando o DI+ é maior que o DI-, é considerado uma tendência ascendente, ao contrário, é uma tendência descendente.
    • O CCI é usado para julgar sobrecompra e sobrevenda. Quando o CCI está abaixo de 100, é um excesso de venda, e acima de 100, é um excesso de compra.
  2. A tendência é a de julgar.

    • Quando o DI+ se sobrepõe ao DI-, é considerado uma tendência ascendente.
    • Quando o DI- desce o DI+, determina-se uma tendência descendente.
  3. Entrando no campo.

    • Quando a tendência ascendente se forma, o ADX está acima do limiar e o CCI está abaixo de -100, faça mais entrada.
    • Quando a tendência de queda se forma, o ADX está acima do limiar e o CCI está acima de 100, o shorting entra.
  4. Cessação de perdas.

    • Quando você faz mais, quando você usa o DI- sob o DI +, você limpa o estoque.
    • Quando se esvazia, quando se usa o DI+ sobre o DI- para limpar o estoque.

Análise de vantagens estratégicas

  1. Use o ADX para avaliar a força e a fraqueza da tendência, evitando transações inúteis quando não há uma tendência óbvia.

  2. O uso do DMI para determinar a direção da tendência reduz a probabilidade de erro de julgamento.

  3. Entrando no momento em que o CCI ultrapassa, você pode capturar o ponto de mudança de tendência a tempo, reduzindo o risco de entrada.

  4. A combinação de indicadores de potência pode melhorar a precisão de julgamento.

  5. Há um mecanismo de prevenção de perdas que pode limitar cada perda.

Risco e cobertura

  1. Quando o ADX retrocede, há várias transações de ansiedade que causam prejuízos. Pode-se elevar adequadamente o limiar de entrada do ADX para garantir que a tendência seja suficientemente visível.

  2. O indicador DMI está atrasado e pode perder oportunidades no início da tendência. Pode ser combinado com outros indicadores ou análise técnica gráfica para determinar o momento de entrada.

  3. A CCI é suscetível a transações frequentes. A amplitude do limiar da CCI pode ser adequadamente relaxada, filtrando parte do ruído.

  4. Ao fazer mais shorting e manter posições, pode-se considerar a adoção de estratégias neutras no mercado de ações, estabelecer regras de amortização de prazo para reduzir o risco de posição geral.

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

  1. Otimizar os parâmetros do ADX para encontrar o melhor equilíbrio entre o ruído de filtragem e a tendência de captura no tempo.

  2. Otimizar os parâmetros do DMI, equilibrando o atraso e a sensibilidade.

  3. Optimizar os parâmetros do CCI, equilibrar a frequência de negociação e a capacidade de capturar reversões.

  4. Teste adicionando ou modificando outros indicadores em busca de melhores combinações. Como MACD, KDJ, etc.

  5. Teste as variedades de comércio para encontrar as mais adequadas.

  6. Optimizar a estratégia de gestão de posições e controlar os riscos, mantendo a capacidade de acompanhar as tendências.

Resumir

A estratégia utiliza a tendência de julgamento ADX, DMI determinar a direção, CCI localização ponto de reversão do pensamento para a tendência de acompanhamento de negociação, com uma forte lógica. Mas ainda precisa ser otimizado para os parâmetros, e em conjunto com a gestão de posição para controlar o risco.

Código-fonte da estratégia
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ADX Strategy", currency = "USD", initial_capital = 1000, overlay=true)
adxlen = input(9, title="ADX Smoothing")
dilen = input(14, title="DI Length")
ADX_Entry = input(25, title="ADX Entry")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) => 
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]

[sig, up, down] = adx(dilen, adxlen)
cci_length = input(20, minval=1, title="CCI Length")
cci_ma = sma(close, cci_length)
cci = (close - cci_ma) / (0.015 * dev(close, cci_length))

stop_loss = syminfo.mintick * 100


open_longs = strategy.position_size > 0
open_shorts = strategy.position_size < 0

possible_bull = false
possible_bull := not open_longs ? (possible_bull[1] and not crossunder(up,down) ? true : false) : false
possible_bear = false
possible_bear := not open_shorts ? (possible_bear[1] and not crossunder(down,up) ? true : false) : false



bool bull_entry = crossover(up,down)

if(bull_entry and up < ADX_Entry and cci < 0)
	possible_bull := true
	bull_entry := false

if(possible_bull and up > ADX_Entry and cci > -100)
	bull_entry := true

bool bear_entry = crossover(down,up)

if(bear_entry and down < ADX_Entry and cci > 0)
	possible_bear := true
	bear_entry := false

if(possible_bear and down >= ADX_Entry and cci < 100)
	bear_entry := true

strategy.entry("Short", strategy.short, qty = 1,comment="Short", stop=high[1] - stop_loss, when = bear_entry)
strategy.entry("Long", strategy.long, qty = 1, comment="Long", stop=low[1] - stop_loss, when = bull_entry )	

strategy.close_all(when = (open_shorts and (crossover(up,down) or crossover(sig,down))) or (open_longs and ( crossover(down,up) or crossover(sig, up))))