Estratégia de cruzamento entre as bandas de Bollinger e o indicador Hull

Autora:ChaoZhang, Data: 2023-12-08 11:58:07
Tags:

img

Resumo

Esta estratégia gera sinais de negociação baseados no cruzamento entre as Bandas de Bollinger e o indicador de Hull. Ele vai longo quando o indicador de Hull cruza acima da faixa inferior das Bandas de Bollinger e vai curto quando o indicador de Hull cruza abaixo da faixa superior das Bandas de Bollinger. A estratégia combina a estratégia de ruptura das Bandas de Bollinger e a estratégia de tendência do indicador de Hull para utilizar as vantagens de ambos.

Princípios

A estratégia utiliza principalmente o cruzamento entre as bandas de Bollinger e o indicador Hull para gerar sinais de negociação.

As bandas de Bollinger contêm três linhas: linha média, linha superior e linha inferior. A linha média é a média móvel de N dias, enquanto as linhas superior e inferior são a linha média ± desvio padrão.

O indicador Hull é um indicador de tendência. Ele usa a diferença entre duas médias móveis ponderadas de períodos diferentes para determinar a tendência atual. Se a média móvel de curto período estiver acima da média móvel de longo período, ele indica uma tendência de alta e vice-versa.

A estratégia combina os pontos fortes de ambos os indicadores. Quando o indicador Hull cruza acima da faixa inferior das Bandas de Bollinger, considera-se que o preço das ações pode entrar em uma tendência de alta, então vá longo. Quando o indicador Hull cruza abaixo da faixa superior, considera-se que o preço das ações pode entrar em uma chamada de retorno para baixo, então vá curto.

Vantagens

  1. Combina os pontos fortes das Bandas de Bollinger e do indicador Hull para tornar os sinais de negociação mais confiáveis.

  2. Utiliza o indicador Hull para determinar a direção da tendência e as Bandas de Bollinger para determinar os níveis de suporte/resistência, gerando sinais cruzados para melhorar a rentabilidade.

  3. Os parâmetros de ambos os indicadores podem ser otimizados para existências de ciclos diferentes, para ampliar a aplicabilidade.

Riscos e soluções

  1. A estratégia pode gerar mais sinais falsos durante os movimentos de alcance, causando perdas.

  2. Os preços podem flutuar violentamente, fazendo com que ambos os indicadores emitam sinais simultaneamente.

  3. A estratégia define o tamanho da posição para 100% diretamente.

Orientações de otimização

  1. Teste e otimize os parâmetros de ambos os indicadores para se adaptar a mais ciclos de acções.

  2. Adicione filtros como volume de negociação ou volatilidade para evitar sinais errados durante a consolidação.

  3. Otimizar as estratégias de stop loss definindo ordens de stop loss ou stop limit.

  4. Ajustar as regras de dimensionamento da posição adicionando condições de reentrada para evitar a ampliação da perda.

Conclusão

Esta estratégia combina a estratégia de ruptura das Bandas de Bollinger e a estratégia de tendência do indicador Hull, usando sinais de cruzamento entre eles para alcançar efeitos de tendência e de ruptura. A estratégia tem forte adaptabilidade a ações de médio e curto prazo, sem grandes mudanças fundamentais.


/*backtest
start: 2023-11-30 00:00:00
end: 2023-12-07 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=3
strategy(title="Strategy Hull Bollinger", shorttitle="Hull bollinger",overlay=true, calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

n=input(title="period",defval=3)


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

i = input(1)
PP = close[i]

length1 = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=10, step=0.2)
basis = sma(src, length1)
dev = mult * stdev(src, length1)
upper = basis + dev
lower = basis - dev


TP = input(500) * 10
SL = input(500) * 10
TS = input(20) * 10
TO = input(10) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na

longCondition = crossover(n1,lower)
if (longCondition)
    strategy.entry("Long", strategy.long)


shortCondition = crossunder(n1,upper)
if (shortCondition)
    strategy.entry("Short", strategy.short)

strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)

Mais.