Estratégia de negociação do índice de tendência direcional

Autora:ChaoZhang, Data: 2023-09-18 17:07:55
Tags:

Resumo

Esta estratégia usa o Índice de Tendência Direcional (DTI) para determinar a direção da tendência de preços para a tendência após as negociações.

Estratégia lógica

Calcule o valor da mudança de preço a partir das mudanças de preço mais altas e mais baixas durante um período. Aplique múltiplas médias móveis exponenciais para derivar a curva DTI. Defina limiares superiores e inferiores para DTI. Quando o indicador cruza acima do limiar superior, um sinal longo é gerado. Cruzar abaixo do limiar inferior dá um sinal curto. Mantenha a posição até que ocorra o próximo sinal.

Vantagens

  • DTI determina com precisão a direção da tendência com menos sinais
  • Os limiares filtram as rupturas insignificantes, evitando o ruído das operações
  • Seguir continuamente as tendências, sem ser afectado por flutuações a curto prazo
  • Grande espaço de ajuste de parâmetros para equilibrar a capacidade de resposta

Riscos

  • Pontos de inversão da tendência não podem ser determinados com precisão, riscos de perdas
  • Riscos de desajuste de parâmetros DTI
  • A detenção prolongada pode resultar em maiores saques
  • Frequência de negociação baixa inadequada para negociação de alta frequência

Os riscos podem ser mitigados através da redução do período de cálculo, do ajustamento dos limiares ou da adição de indicadores de reversão.

Melhorias

  • Ensaiar diferentes combinações de parâmetros para o cálculo do DTI
  • Otimizar os níveis de limiar longo/curto
  • Considerar a adição de estratégias de stop loss para controlar o risco
  • Ensaiar a robustez em diferentes produtos

Conclusão

A estratégia DTI determina com precisão a direção da tendência a partir de sinais claros, permitindo lucros constantes a longo prazo.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/03/2017
// This technique was described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). 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.
// Directional Trend Index is an indicator similar to DM+ developed by Welles Wilder. 
// The DM+ (a part of Directional Movement System which includes both DM+ and 
// DM- indicators) indicator helps determine if a security is "trending." William 
// Blau added to it a zeroline, relative to which the indicator is deemed positive or 
// negative. A stable uptrend is a period when the DTI value is positive and rising, a 
// downtrend when it is negative and falling. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Directional Trend Index (DTI)", shorttitle="DTI")
r = input(14, minval=1)
s = input(10, minval=1)
u = input(5, minval=1)
OS = input(45, minval=1)
OB = input(-45, maxval=-1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xHMU = iff(high - high[1] > 0, high - high[1], 0)
xLMD = iff(low - low[1] < 0, -(low - low[1]), 0)
xPrice = xHMU - xLMD
xPriceAbs = abs(xPrice)
xuXA = ema(ema(ema(xPrice, r),s),u)
xuXAAbs = ema(ema(ema(xPriceAbs, r),s),u)
Val1 = 100 * xuXA
Val2 = xuXAAbs
DTI = iff(Val2 != 0, Val1 / Val2, 0)
pos = iff(DTI > OS, -1,
	     iff(DTI < OB, 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(DTI, color=maroon, title="DTI")
plot(OB, color=blue, title="OB")
plot(OS, color=red, title="OS")

Mais.