Estratégia de tendência adaptativa combinada com múltiplos indicadores


Data de criação: 2023-12-19 11:01:05 última modificação: 2023-12-19 11:01:05
cópia: 1 Cliques: 608
1
focar em
1621
Seguidores

Estratégia de tendência adaptativa combinada com múltiplos indicadores

Visão geral

Esta estratégia permite um julgamento preciso de tendências através da combinação do uso de um duplo indicador de médias móveis de Hull, um indicador de médias móveis ponderadas por capacidade, um indicador de MACD e um indicador de índice de força real. Ela é capaz de se adaptar automaticamente a mudanças no ambiente do mercado e tem uma forte adaptabilidade.

Princípio da estratégia

O indicador central da estratégia é a média móvel dupla de Hull, que é calculada com o controle de dois parâmetros, o keh e o teh. Esses dois parâmetros determinam a periodicidade da linha rápida e da linha lenta, respectivamente.

O indicador de avaliação auxiliar tem uma média móvel ponderada por capacidade meh1 ≠ quando o preço é superior a meh1 significa uma situação de alta; quando o preço é inferior a meh1 significa uma situação de baixa ≠

Outro indicador de julgamento auxiliar é o MACD. É obtido pela média móvel rápida, menos a média móvel lenta, para obter o MACD e, em seguida, a média móvel do MACD para obter a linha de sinal.

O último indicador de julgamento auxiliar é o TSI, que é obtido por meio de um cálculo duplo e suave da taxa de variação de preços. O tamanho do seu valor absoluto representa o impulso da mudança de preço.

A combinação destes indicadores permite avaliar com precisão as tendências e ajustar automaticamente os parâmetros para estar em sintonia com o mercado.

Vantagens estratégicas

  1. O uso de uma média móvel dupla de Hull como principal indicador de julgamento, complementado com o uso de várias outras combinações de indicadores, pode melhorar a precisão de julgamento e reduzir os falsos sinais.

  2. Aplicando os indicadores do TSI para determinar o tempo de entrada e saída do mercado, pode-se controlar o risco.

  3. Os vários parâmetros podem ser ajustados por si mesmos, são adaptáveis e podem se adaptar automaticamente às mudanças do mercado.

  4. A estratégia é baseada em uma combinação de indicadores e parâmetros que se adaptam automaticamente para garantir a estabilidade e a rentabilidade contínua.

Análise de Riscos

  1. Embora tenha sido adicionado o indicador TSI para julgar o momento, o indicador usado pelo algoritmo é o tipo de tendência, que aumenta a oscilação de ganhos e perdas se o mercado de tiras de choque for atingido.

  2. A configuração inadequada dos parâmetros pode levar à falha da estratégia, sendo necessário ajustar os parâmetros de forma razoável com base na própria experiência.

  3. Os portfólios de múltiplos indicadores aumentam a quantidade de cálculos, aumentando a probabilidade de erros em ações e períodos de tempo com grande quantidade de dados, o que requer controle do alcance dos dados.

  4. É necessário monitorar a eficácia do cálculo dos indicadores para evitar a interferência de dados anormais.

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

  1. Pode-se testar a adição de outros indicadores auxiliares, como o indicador BOLL, para tornar o sinal mais preciso e confiável.

  2. Otimizar a lógica de entrada e saída de mercado, configurar as condições de parada de perda e controlar os lucros e perdas individuais.

  3. Treinamento e otimização dos parâmetros das variedades de comércio para melhor adaptação às diferentes variedades.

  4. Adição de um módulo de adaptação de parâmetros para que os parâmetros da estratégia possam ser ajustados automaticamente com base nos resultados das transações mais recentes.

Resumir

A estratégia integra os benefícios de vários indicadores, usa uma combinação de indicadores para determinar a direção da tendência e, ao mesmo tempo, controla o risco. A precisão do julgamento é aumentada. Através da otimização de parâmetros e otimização de lógica, a estratégia pode ser melhor adaptada às mudanças no mercado e obter mais lucros com base na redução de perdas contínuas.

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

//@version=2
//                                                    Quad-HullMA-cross & VWMA & MacD & TSI combination  <<<<< by SeaSide420 >>>>>>
strategy("MultiCross420", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)
keh=input(title="Double HullMA 1",defval=7, minval=1)
teh=input(title="Double HullMA 2",defval=14, minval=1)
meh=input(title="VWMA",defval=1, minval=1)
meh1=vwma(close,round(meh))
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
n2ma3=2*wma(close,round(teh/2))
nma2=wma(close,teh)
diff2=n2ma3-nma2,sqn2=round(sqrt(teh))
n2ma4=2*wma(close[2],round(teh/2))
nma3=wma(close[2],teh)
diff3=n2ma4-nma3,sqn3=round(sqrt(teh))
n3=wma(diff2,sqn2)
n4=wma(diff3,sqn3)
fastLength = input(title="MacD fastLength", defval=7)
slowlength = input(title="MacD slowlength", defval=14)
MACDLength = input(title="MacD Length", defval=3)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
a1=plot(n1,color=c),a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = cross, color=b, linewidth = 3)
a3=plot(n3,color=c),a4=plot(n4,color=c)
plot(cross(n3, n4) ? n1 : na, style = cross, color=b, linewidth = 3)
//a5=plot(meh1,color=c)
long = input(title="TSI Long Length",  defval=5)
short = input(title="TSI Short Length",  defval=3)
signal = input(title="TSI Signal Length",  defval=2)
linebuy = input(title="TSI Upper Line",  defval=4)
linesell = input(title="TSI Lower Line",  defval=-4)
price = close
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)
closelong = n1<n2 and n3<n4 and n1>meh1
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n3>n4 and n1<meh1
if (closeshort)
    strategy.close("Short") 
longCondition = strategy.opentrades<1 and n1>n2 and MACD>aMACD and n1<meh1 and n3>n4 and ema(tsi_value, signal)>linesell
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = strategy.opentrades<1  and n1<n2 and MACD<aMACD and n1>meh1 and n3<n4 and ema(tsi_value, signal)<linebuy
if (shortCondition)
    strategy.entry("Short",strategy.short)