Estratégia de divergência direcional de momentum


Data de criação: 2023-12-27 15:37:31 última modificação: 2023-12-27 15:37:31
cópia: 0 Cliques: 442
1
focar em
1235
Seguidores

Estratégia de divergência direcional de momentum

Visão geral

A Estratégia de Divergência de Direção de Momento é uma das técnicas descritas por William Blau em seu livro Momentum, Direction and Divergence. A estratégia foca em três aspectos-chave: Momentum, Direction and Divergence. O Sr. Blau, engenheiro elétrico e depois comerciante, estudou profundamente a relação entre preço e volume.

A estratégia traça o índice de dispersação da direção do motor (CSI ergótico) e sua linha de suavização para filtrar o ruído.

Princípio da estratégia

O início do código define uma função fADX, que se adapta ao índice de direção de movimento (((ADX), que aceita o parâmetro Len para representar o ciclo de suavização. Esta função calcula o real range ((TR) da média móvel eletrônica ((RMA) como divisor, calcula o volume de movimento de múltiplos e o volume de movimento de cabeça vazia (RMA) como molécula, e depois subtrai a taxa de obtenção, que representa a intensidade relativa de múltiplos e de cabeça vazia. Finalmente, o valor de ADX é obtido por uma fórmula que combina a intensidade de múltiplos e a intensidade de cabeça vazia.

Em seguida, a definição de parâmetros de estratégia. r representa o parâmetro de alinhamento do ATR, Length representa o comprimento do ADX, BigPointValue representa o valor do ponto grande, SmthLen representa o comprimento do CSI de alinhamento, SellZone e BuyZone representam as áreas de venda e compra qualificadas.

A lógica-chave para calcular o CSI ❚ é primeiro calcular a amplitude de flutuação real ATR e ADX ❚ e depois calcular o coeficiente de penalização K, que inclui o valor do ponto grande, ATR e ADX ❚ e calcular o saldo padronizado nRes, que combina informações sobre ATR, ADX e o preço de encerramento ❚ e, finalmente, calcular o valor do CSI e suavizar o SMA ❚

Determine a direção da negociação com base no valor do SMA do CSI. Se for acima da BuyZone, faça mais e abaixo da SellZone, faça menos. Desenhe a curva do CSI e seu SMA e marque as diferentes áreas de negociação com cores.

Análise de vantagens

A estratégia combina os benefícios do indicador de dinâmica ATR e do indicador de tendência ADX, levando em conta a volatilidade do mercado e o grau de tendência, evitando as limitações de usar apenas o ATR e apenas o ADX. O design do fator de punição K combina habilmente esses indicadores com a relação entre o valor do ponto alto.

O saldo padronizado nRes se junta ao uso de informações sobre o preço, não apenas para a tendência dinâmica, mas também para o nível absoluto do preço, o que, ao contrário do oscilador geral, aumenta a eficácia da estratégia.

O processamento suave e o julgamento de segmentos fornecem sinais de negociação claros para decisões estratégicas, o que favorece a operação em campo.

Análise de Riscos

A estratégia é sensível a configurações de parâmetros, como o comprimento de ciclo do ATR e ADX, a configuração do valor do ponto grande, os parâmetros de suavização do CSI, etc. Isso afeta o desempenho da estratégia. A combinação de parâmetros apropriada precisa ser determinada por uma grande quantidade de retorno.

O CSI é um oscilador recém-proposto, cuja eficácia precisa ser comprovada em mais mercados diferentes. Se o indicador não funcionar bem, isso afetará a rentabilidade da estratégia.

A estratégia em si não possui um mecanismo de parada, fazendo mais curto-circuito diretamente de acordo com os sinais do CSI, existindo um certo grau de risco, que precisa ser usado em combinação com a parada.

Direção de otimização

É possível testar combinações de parâmetros em diferentes mercados para encontrar uma combinação mais comum.

Pode-se introduzir um mecanismo de duração do ciclo ADX dinâmico, ajustando os parâmetros do ADX de acordo com a situação do mercado.

Pode ser combinado com outros indicadores de oscilador para determinar o momento de compra e venda, tornando a estratégia mais estável.

A estratégia de stop loss pode ser adicionada para melhorar a estratégia global.

Resumir

A estratégia de distribuição de direção de movimento integra os benefícios de vários indicadores, usando várias dimensões de preço, movimento e tendência para projetar indicadores de CSI e negociar. A configuração de parâmetros da estratégia é flexível e de alto desempenho, vale a pena testar e otimizar ainda mais e pode ser uma ferramenta vantajosa para a negociação quantitativa.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/06/2018
// This is one of the techniques described by William Blau in his book 
// "Momentum, Direction and Divergence" (1995). If you like to learn more, 
// we advise you to read this book. His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

strategy(title="Ergodic CSI Backtest")
r = input(32, minval=1)
Length = input(1, minval=1)
BigPointValue = input(1.0, minval=0.00001)
SmthLen = input(5, minval=1)
SellZone = input(0.004, minval=0.00001)
BuyZone = input(0.024, minval=0.001)
reverse = input(false, title="Trade reverse")
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
source = close
K = 100 * (BigPointValue / sqrt(r) / (150 + 5))
xTrueRange = atr(1) 
xADX = fADX(Length)
xADXR = (xADX + xADX[1]) * 0.5
nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0)
xCSI = iff(close > 0,  nRes / close, 0)
xSMA_CSI = sma(xCSI, SmthLen)
pos = iff(xSMA_CSI > BuyZone, 1,
       iff(xSMA_CSI <= SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xCSI, color=green, title="Ergodic CSI")
plot(xSMA_CSI, color=red, title="SigLin")