Esta estratégia usa Bandas de Bollinger para determinar a direção das tendências do mercado e combina indicadores de impulso para implementar transações de rastreamento de tendências. O
A estratégia pode ser dividida em três partes principais:
A direção das bandas de Bollinger é a média móvel, e as bandas superiores e inferiores representam a faixa de volatilidade. Quando o preço está perto da linha superior, ele é sobrecomprado. Quando está perto da linha inferior, ele é sobrevendido. A direção das bandas de Bollinger representa a direção da tendência do preço.
Calcule o momento. Esta estratégia usa o momento de Hull. O momento de Hull é derivado da média móvel rápida menos a média móvel lenta. Um valor positivo representa uma tendência ascendente e um valor negativo representa uma tendência descendente.
Quando a média móvel rápida cruza a média móvel lenta de baixo, um sinal longo é gerado.
A regra de negociação é: A direção das Bandas de Bollinger representa a tendência principal, e o cruzamento do indicador de impulso representa o momento de entrada no mercado. Um sinal de negociação é gerado quando o cruzamento do impulso é consistente com a direção das Bandas de Bollinger. Ou seja, para rastrear a direção da tendência representada pelas Bandas de Bollinger.
Adotar Bandas de Bollinger para julgar tendências de grande escala e, em seguida, usar indicadores de impulso para determinar pontos de entrada específicos para evitar o risco de perseguir avanços locais.
As bandas de Bollinger fornecem pontos de stop-loss, que são mais eficazes do que as médias móveis simples.
Indicadores de impulso podem garantir poder suficiente para continuar a empurrar os preços na direção original após a entrada no mercado, tornando o rastreamento da tendência mais suave.
Risco de falha na determinação das bandas de Bollinger As bandas de Bollinger nem sempre determinam com total precisão a tendência, o que pode fornecer sinais direcionais incorretos, aumentando assim a taxa de perda.
Risco de reversão da tendência: mesmo que as bandas de Bollinger reflitam corretamente a tendência em larga escala, os preços podem reverter a médio e curto prazo, o que deve ser observado durante a negociação.
Risco de otimização de parâmetros: os parâmetros da estratégia, como o ciclo de cálculo, precisam ser otimizados para diferentes dados de mercado para alcançar o melhor efeito de negociação.
Combine mais indicadores FILTER. Além de Bollinger Bands e Hull Momentum, outros indicadores como MACD e KDJ podem ser adicionados para formar um indicador FILTER para melhorar a precisão do julgamento.
Optimização adaptativa de parâmetros. Junte-se aos algoritmos de aprendizado de máquina para otimizar parâmetros em tempo real de acordo com diferentes variedades e ambientes de mercado para melhorar a estabilidade da estratégia.
Otimização da estratégia de stop loss. Otimize a estratégia de stop loss para maximizar os lucros de bloqueio antes que as principais tendências mudem e pare as perdas mais rapidamente quando as tendências se revertem.
Esta estratégia integra Bandas de Bollinger para determinar tendências em larga escala e indicadores de momento de Hull para determinar pontos de entrada específicos, que rastreiam efetivamente tendências.
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-25 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Hull Moving Average Crossover by SeaSide420 strategy("Hull Moving Average Crossover Strategy", overlay=true) keh=input(title="HullMA cross",defval=10) p=input(ohlc4) n2ma=2*ta.wma(p,math.round(keh/2)) nma=ta.wma(p,keh) diff=n2ma-nma sqn=math.round(math.sqrt(keh)) n2ma1=2*ta.wma(p[1],math.round(keh/2)) nma1=ta.wma(p[1],keh) diff1=n2ma1-nma1 sqn1=math.round(math.sqrt(keh)) n1=ta.wma(diff,sqn) n2=ta.wma(diff1,sqn) hullcross1 = n1 hullcross2 = n2 longcross1=(n1[0]-n1[3])+(n1[0]-n2[4])*100 longcross2=(n2[0]-n2[3])+(n2[0]-n1[4])*100 closelong = n1<n2 and longcross1<longcross2 if (closelong) strategy.close("Long") closeshort = n1>n2 and longcross1>longcross2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and longcross1>longcross2 and strategy.opentrades<1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and longcross1<longcross2 and strategy.opentrades<1 if (shortCondition) strategy.entry("Short",strategy.short) b=hullcross1>hullcross2?color.green:color.red c=hullcross2>hullcross1?color.green:color.red plot(ta.cross(hullcross1, hullcross2) ? hullcross1 : na,color=c, linewidth = 5, offset=3) barcolor(longcross1 < longcross2 ? color.black : color.white) bgcolor(longcross2 < longcross1 ? color.green : color.black, transp=85) plotshape(ta.cross(longcross2, longcross1) ? longcross2 : na, text="X", style=shape.labeldown, location=location.bottom)