Estratégia de acompanhamento de tendência de média móvel de Hall com base em TSI e CCI


Data de criação: 2023-11-28 15:53:03 última modificação: 2023-11-28 15:53:03
cópia: 0 Cliques: 764
1
focar em
1619
Seguidores

Estratégia de acompanhamento de tendência de média móvel de Hall com base em TSI e CCI

Visão geral

Esta estratégia combina três indicadores: o índice de força relativa (TSI), o índice de caminho de mercadorias (CCI) e a média móvel de Hall (Hull MA) para formar uma estratégia de negociação de seguimento de tendências. Pode ser executada em um período de tempo de 1 hora ou mais, seguindo uma linha longa de negociação em qualquer variedade de negociação.

Princípio da estratégia

A estratégia baseia-se principalmente em dois indicadores, o TSI e o CCI, para determinar a tendência do mercado e a tendência de sobrecompra e sobrevenda, e o Hull MA para determinar a tendência do preço no meio prazo, os três combinados como condições básicas para a construção de posições.

Especificamente, quando a linha rápida do TSI atravessa a linha lenta e o índice CCI sobe +20&&n1, faz mais; quando a linha rápida do TSI atravessa a linha lenta e o índice CCI desce +20&n1, faz vazio. O Hull MA é usado para filtrar a tendência do intervalo de transição e só faz mais quando o preço está abaixo do Hull MA e faz vazio quando o preço está acima do Hull MA.

Assim, através da confirmação de diferentes indicadores periódicos, pode-se efetivamente filtrar falsas rupturas e acompanhar a tendência de linha média longa.

Análise de vantagens

É uma estratégia de acompanhamento de tendências relativamente estável e eficiente, com as seguintes vantagens principais:

  1. O uso do TSI para determinar a direção de tendências de longo prazo é mais confiável, evitando a interferência do ruído do mercado de curto prazo;

  2. A inclusão do índice CCI permite identificar a tendência de sobrecompra e de sobrevenda e filtrar alguns sinais falsos;

  3. O julgamento do Hull MA torna os pontos de entrada mais precisos e aumenta significativamente a probabilidade de lucro;

  4. A integração de diferentes parâmetros pode aumentar a confiabilidade do sinal e reduzir a probabilidade de interferência.

  5. A configuração de parâmetros de estratégia é flexível e pode ser adaptada para a otimização de diferentes ciclos de mercado.

Análise de Riscos

Apesar de ser uma estratégia de alta estabilidade, há alguns riscos a serem observados:

  1. A situação pode virar drasticamente e não conseguir parar rapidamente, causando grandes prejuízos;

  2. Os indicadores TSIDiff e CCI podem apresentar falsos sinais e atraso, e podem perder alguns pontos de entrada;

  3. A configuração inadequada dos parâmetros também pode levar a uma frequência de transação excessiva ou a uma diminuição da qualidade do sinal.

Resposta:

  1. Ajustar adequadamente os pontos de parada e controlar os prejuízos individuais;

  2. Melhorar a precisão do sinal, em combinação com outros indicadores, se necessário;

  3. A estratégia é baseada em parâmetros de ajuste de mercado para garantir estabilidade.

Direção de otimização

A estratégia também pode ser melhorada em alguns aspectos:

  1. Tentar combinar indicadores de diferentes parâmetros para encontrar a melhor correspondência;

  2. A integração de algoritmos de aprendizagem de máquina para a otimização de parâmetros de auto-adaptação;

  3. Aumentar o módulo de gestão de fundos para tornar os lucros mais estáveis;

  4. A combinação de mais filtros aumenta a chance de vitória da estratégia.

O blogueiro diz que o Facebook é um dos principais fatores que levam à melhoria da qualidade de vida das pessoas.

Resumir

A estratégia utiliza três indicadores, TSI, CCI e Hull MA, para formar uma estratégia de acompanhamento de tendências mais estável e eficiente. Aplicou com sucesso os benefícios de vários indicadores de período de tempo, melhorando a qualidade do sinal. O próximo passo será aumentar ainda mais a estabilidade e a lucratividade da estratégia por meio de otimização de parâmetros e reforço de filtros.

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

//@version=4

strategy(title="TSI CCI Hull", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=25)
price=input(title="Source",type=input.source,defval=open)
Period=input(25, minval=1)
lineupper = input(title="Upper Line", type=input.integer, defval=100)
linelower = input(title="Lower Line", type=input.integer, defval=-100)
p=price
length= Period
double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
keh = tsi_value*5 > linelower ? color.red : color.lime
teh = ema(tsi_value*5, signal*5) > lineupper ? color.red : color.lime
meh = ema(tsi_value*5, signal*5) > tsi_value*5 ? color.red : color.lime
i1=plot(tsi_value*5, title="TSI Value", color=color.black, linewidth=1,transp=100)
i2=plot(ema(tsi_value*5, signal*5), title="TSI Signal", color=color.black, linewidth=1,transp=100)
fill(i1,i2,color=meh,transp=85)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.black, linewidth=10)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.white, linewidth=8,transp=0)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=meh, linewidth=5)
n2ma = 2 * wma(p, round(length / 2))
nma = wma(p, length)
diff = n2ma - nma
sqn = round(sqrt(length))
n1 = wma(diff, sqn)
cci = (p - n1) / (0.015 * dev(p, length))
c = cci > 0 ? color.lime : color.red
c1 = cci > 20 ? color.lime : color.silver
c2 = cci < -20 ? color.red : color.silver
cc=plot(cci, color=c, title="CCI Line", linewidth=2)
cc2=plot(cci[1], color=color.gray, linewidth=1,transp=100)
fill(cc,cc2,color=c,transp=85)
plot(cross(20, cci) ? 20 : na, style=plot.style_cross,title="CCI cross UP",  color=c1, linewidth=2,transp=100,offset=-2)
plot(cross(-20, cci) ? -20 : na, style=plot.style_cross,title="CCI cross down",  color=c2, linewidth=2,transp=100,offset=-2)

TSI1=ema(tsi_value*5, signal*5)
TSI2=ema(tsi_value*5, signal*5)[2]

hullma_smoothed = wma(2*wma(n1, Period/2)-wma(n1, Period), round(sqrt(Period)))
//plot(hullma_smoothed*200)

longCondition = TSI1>TSI2 and hullma_smoothed<price and cci>0
if (longCondition and cci>cci[1] and cci > 0 and n1>n1[1])
    strategy.entry("Buy Here", strategy.long)

shortCondition = TSI1<TSI2 and hullma_smoothed>price and cci<0
if (shortCondition and cci<cci[1] and cci < 0 and n1<n1[1])
    strategy.entry("Sell Here", strategy.short)