Tendência da média móvel do casco seguindo a estratégia

Autora:ChaoZhang, Data: 2023-11-02 14:57:37
Tags:

img

Resumo

Esta estratégia é baseada no indicador de média móvel Hull para construir uma tendência após o sistema de negociação.

Estratégia lógica

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 pelo comerciante americano Alan Hull em 2005.

Especificamente, a média móvel de Hull contém duas médias - uma é a média móvel MA ((n) do período n, a outra é a média móvel MA ((n/2) do período n/2. A diferença entre as duas médias móveis forma a curva de diferença de Hull.

Quando a curva de Hull desce, a média móvel do período mais curto cruza acima da média móvel do período mais longo, dando um sinal longo.

Esta estratégia define o período n da curva de Hull para 16. Calcula o MA de 8 períodos (n/2=8), o MA de 16 períodos e a diferença entre eles para obter a curva de Hull. Em seguida, leva o MA de 4 períodos (raiz quadrada de n=4) da própria curva de Hull. Quando a curva de Hull cruza para cima, ela vai longa. Quando a curva de Hull cruza para baixo, ela vai curta.

Análise das vantagens

Em comparação com as médias móveis ordinárias, a média móvel Hull tem as seguintes vantagens:

  1. Usando uma função de raiz quadrada, a curva Hull abraça a ação do preço mais perto e é mais rápida para capturar inversões de tendência.

  2. A curva de Hull pode filtrar algum ruído e evitar trocas desnecessárias.

  3. A curva Hull precisa apenas de um parâmetro n, tornando a otimização mais fácil.

  4. O valor n da curva Hull pode ser ajustado para diferentes mercados e personalizado para se adequar a diferentes instrumentos.

  5. O sistema Hull é robusto e evita a selecção manual, aderindo à consistência dos sistemas de negociação mecânicos.

Análise de riscos

Apesar das suas vantagens em relação aos sistemas de médias móveis, o sistema Hull carrega ainda os seguintes riscos:

  1. Como uma estratégia de perseguição de tendências, os sistemas Hull são propensos a parar durante mudanças drásticas de tendência.

  2. A resposta rápida das curvas de Hull pode aumentar a frequência das transacções e conduzir a uma sobrecompra.

  3. Ter apenas um parâmetro n pode levar a riscos de ajustamento da curva devido à otimização excessiva.

  4. O sistema Hull funciona menos bem para instrumentos com elevada volatilidade.

Orientações para melhorias

Com base nas limitações acima referidas, a estratégia da média móvel de Hull pode ser melhorada nos seguintes aspectos:

  1. Adicione filtros com indicadores adicionais para evitar falsos cruzes. MACD, KD etc. pode ajudar a medir a tendência.

  2. Adicionar estratégias de stop loss para controlar a perda de uma única transação, por exemplo, com trailing stops ou take profit stops.

  3. Otimize a seleção de parâmetros n para evitar a otimização excessiva.

  4. Usar modelos de aprendizagem de máquina como RNNs para otimizar dinamicamente os valores dos parâmetros.

  5. Otimizar os parâmetros separadamente para diferentes instrumentos utilizando a adaptação de aprendizado de máquina.

  6. Otimizar o dimensionamento das posições para reduzir a frequência de negociação.

Conclusão

O Hull Moving Average é uma estratégia típica de seguir tendências. Apesar de suas vantagens em relação aos MAs, ele ainda enfrenta problemas como otimização excessiva e overtrading. Podemos melhorar a estratégia por meio da otimização de parâmetros, stop losses, dimensionamento de posições, etc. O sistema Hull é simples e prático. Merece mais pesquisa e aprimoramento incorporando mais indicadores e técnicas para construir um sistema de negociação robusto.


/*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()

Mais.