Estratégia de acompanhamento de tendência da média móvel de Hull


Data de criação: 2023-11-02 14:57:37 última modificação: 2023-12-01 15:02:29
cópia: 0 Cliques: 778
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência da média móvel de Hull

Visão geral

Esta estratégia baseia-se na construção de um sistema de negociação de seguimento de tendências com base no indicador de média móvel de Hull, e a decisão de fazer mais curto prazo de acordo com a direção da curva de Hull é uma estratégia típica de seguimento de tendências.

Princípio da estratégia

Esta estratégia usa a média móvel de Hull como principal indicador técnico. A média móvel de Hull foi proposta em 2005 pelo comerciante norte-americano Alan Hull, e é uma melhoria na base da média móvel, com a utilização de funções de raiz quadrada que reduzem o atraso da média móvel.

Especificamente, a média móvel de Hull contém duas médias, uma é a média móvel MA ((n)) para o período n, e a outra é a média móvel MA ((n/2) para o período n / 2. A diferença entre as duas médias constitui a curva de diferencial de Hull, e a curva de diferencial de Hull é calculada em sua própria média móvel, ou seja, a curva de Hull.

Quando a curva de Hull sobe, o sinal de acionamento é feito com a média móvel de curto prazo em cima da média móvel de curto prazo; quando a curva de Hull desce, o sinal de acionamento é feito com a média móvel de longo prazo em baixo da média móvel de curto prazo em baixo da média móvel de curto prazo.

Esta estratégia define o período de Hull n como 16, calcula n/2 = 8 médias móveis, n = 16 médias móveis, e calcula a curva de Hull para a diferença entre os dois, em seguida, calcula a própria média móvel de n = 4 médias móveis para a curva de Hull (tomando a raiz quadrada de n = 4). Quando a curva de Hull passa, faça mais e quando passa, faça zero.

Análise de vantagens estratégicas

Em comparação com a média móvel comum, a média móvel de Hull tem as seguintes vantagens:

  1. Reduzir o atraso. Utilizando a função raiz quadrada, a curva de Hull está mais próxima do preço, podendo capturar a mudança de preço mais rapidamente.

  2. Reduzir os false crosses. As médias móveis tradicionais tendem a gerar mais false crosses, enquanto a curva de Hull pode filtrar alguns ruídos e evitar transações desnecessárias.

  3. menos parâmetros. A curva de Hull precisa de apenas um parâmetro para ser otimizada, enquanto o sistema de dupla equilíbrio precisa de dois parâmetros.

  4. Customizabilidade: o valor n da curva de Hull pode ser ajustado de acordo com o mercado, com um ciclo personalizado para adaptar-se a diferentes variedades.

  5. Forte sistematização. Forte sistematização da curva do casco, evitando a seleção manual, seguindo a consistência do sistema de negociação mecânica.

Análise de Riscos

Apesar de ter muitos benefícios em comparação com o sistema de média móvel, o Hull apresenta os seguintes riscos:

  1. As próprias limitações da estratégia de acompanhamento de tendências. O sistema Hull, como uma estratégia de acompanhamento de tendências, é suscetível a falhas quando a tendência muda drasticamente.

  2. A curva de Hull tem uma característica de resposta rápida que aumenta a frequência de transações e facilita a transação excessiva.

  3. Parameters são suscetíveis a otimização excessiva. Só há um parâmetro que pode levar a otimização excessiva, o risco de curve fitting.

  4. O efeito varia de acordo com a variedade. O sistema de casco não funciona bem em algumas variedades com alta volatilidade, e é necessário ajustar os parâmetros para a variedade.

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

Com base nas limitações da estratégia de média móvel de Hull acima, pode-se otimizar a partir dos seguintes aspectos:

  1. Combinação de indicadores adicionais para filtrar os sinais de negociação, evitando falsas rupturas. Pode ser adicionado ao MACD, KD e outros indicadores para julgar a tendência.

  2. Aumentar as estratégias de stop loss e controlar as perdas individuais, como a configuração de stop loss móvel ou stop loss pendente.

  3. Optimizar os parâmetros n, evitando o otimização excessiva. A análise de andamento pode ser utilizada para otimizar o rolamento.

  4. Parâmetros de otimização dinâmica em combinação com técnicas de aprendizagem de máquina. Otimais valores de parâmetros de previsão n usando modelos como RNN.

  5. Optimização de parâmetros de sub-variedades. Utilização de aprendizagem de máquina para otimizar a adaptação de parâmetros de diferentes variedades.

  6. Optimizar a gestão de posições e reduzir a frequência de negociação.

Resumir

A estratégia de média móvel de Hull é uma estratégia típica de acompanhamento de tendências. Com relação à média móvel, há vantagens, mas também há problemas de otimização e frequência de negociação. Podemos melhorar a estratégia por meio de métodos de otimização de parâmetros, estratégia de parada e gerenciamento de posição.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
    
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
    strategy.close_all()