Estratégia de acompanhamento de tendências combinadas

Autora:ChaoZhang, Data: 2024-01-02 10:41:30
Tags:

img

Resumo

A estratégia de rastreamento de tendência combinada é uma estratégia de negociação quantitativa que combina indicadores duplos para julgar a tendência.

Princípio da estratégia

A estratégia consiste em duas partes principais:

  1. 123 Indicador de reversão

    O princípio de avaliação do indicador de reversão 123 é o seguinte:

    • Quando o preço de fechamento subir continuamente durante 2 dias e a linha K lenta de 9 dias for inferior a 50, vá long;

    • Quando o preço de fechamento cair continuamente por 2 dias e a linha rápida K de 9 dias for superior a 50, vá curto.

    Isto pode capturar o momento da inversão de preços.

  2. Indice de tendência direcional (DTI)

    O princípio de julgamento do indicador DTI é: calcular a média móvel da flutuação absoluta dos preços ao longo de um período de tempo e, em seguida, dividir pela volatilidade média dos preços.

    • Quando o DTI é superior à linha de sobrecompra, significa que a corrente é uma tendência descendente;

    • Quando a DTI é inferior à linha de sobrevenda, significa que a corrente é uma tendência ascendente.

  3. Combinação

    Em primeiro lugar, use o indicador de reversão 123 para determinar se ocorre um sinal de reversão de preço. em seguida, combinado com o indicador DTI para determinar a direção geral da tendência após a reversão.

    Assim, evita-se o problema da falsa inversão causada por depender apenas de sinais de inversão, melhorando assim a estabilidade e a rentabilidade das estratégias.

Vantagens

  1. A confirmação do duplo indicador evita os riscos causados por falsas inversões

  2. A combinação de reversões e tendências estabelece um equilíbrio entre flexibilidade operacional e estabilidade

  3. Grande espaço de otimização de parâmetros, pode ser ajustado de forma flexível para se adaptar a diferentes variedades

Análise de riscos

  1. Estabelecer parâmetros DTI requer experiência, inadequada irá julgar erroneamente a direção da tendência

  2. A inversão não representa necessariamente uma nova tendência, podendo haver oscilações de faixa

  3. Necessidade de um stop loss eficaz para controlar perdas individuais

    Soluções: Teste de otimização de parâmetros + Perda de parada razoável + Combinação de outros indicadores

Direcção de otimização

  1. Ensaiar parâmetros DTI para encontrar combinações ideais de parâmetros

  2. Usar outros indicadores para filtrar sinais falsos de reversão

  3. Otimizar estratégias de stop loss e encontrar pontos de stop loss ideais

Resumo

A estratégia de rastreamento de tendência combinada determina efetivamente a essencialidade das reversões de preços e capta novas direções de tendência através da confirmação dupla de 123 reversões e DTI, melhorando assim a lucratividade das estratégias. No entanto, as configurações de parâmetros e as estratégias de stop loss ainda exigem testes e otimização contínuos para maximizar o espaço de lucro das estratégias.


/*backtest
start: 2023-12-25 00:00:00
end: 2024-01-01 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/02/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// 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. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

TDI(r,s,u,OS,OB) =>
    pos = 0.0
    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))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Directional Trend Index (DTI)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
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")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posTDI = TDI(r,s,u,OS,OB)
pos = iff(posReversal123 == 1 and posTDI == 1 , 1,
	   iff(posReversal123 == -1 and posTDI == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mais.