A estratégia de seguimento de tendência da média móvel de Hull utiliza a média móvel de Hull para determinar a direção da tendência do mercado e gerar sinais de compra e venda.
A estratégia usa tanto a média móvel do Hull quanto a média móvel simples para determinar a direção da tendência. Quando o período mais curto do Hull MA cruza acima do período mais longo do Hull MA, ele gera um sinal de compra. Quando o período mais curto do Hull MA cruza abaixo do mais longo, ele gera um sinal de venda.
A média móvel simples determina a direção da tendência em tempo real. Quando a EMA mais curta cruza acima da EMA mais longa, ela indica uma tendência de alta. Quando a EMA mais curta cruza abaixo da EMA mais longa, ela indica uma tendência de queda. As negociações são feitas apenas quando os sinais Hull MA e EMA concordam com o viés de alta ou baixa.
Além disso, a estratégia utiliza canais de corpo de linha K para medir a flutuação do mercado e evitar negociações em consolidação.
O Hull MA é mais sensível na detecção de alterações de preços e mudanças de tendência precoces.
Usando tanto o Hull MA e EMA elimina sinais falsos.
Os canais K-line evitam a troca excessiva em mercados laterais.
Seguir a tendência permite a captura de lucros sustentados à medida que a tendência se estende.
As médias móveis apresentam atrasos e podem perder os pontos de entrada de inversão de tendência ideais.
A detecção imprecisa de uma consolidação pode causar transações erradas.
A baixa frequência de negociação leva a um grande impacto de negociações perdedoras individuais.
Incapaz de capitalizar oscilações de curto prazo.
Otimizar os períodos de MA para gerar sinais de tendência em tempo útil.
Para determinar a consolidação, utilizar outros indicadores como o RSI e o BBANDS.
Exercer uma gestão agressiva do capital para limitar a percentagem de perdas por transacção.
Complementar com outras estratégias para aproveitar os lucros a curto prazo.
A estratégia de seguimento da média móvel de Hull rastreia efetivamente as tendências de médio a longo prazo através do uso combinado de Hull MA e EMA. Ele acumula lucros ao longo das tendências de lucro e sai cedo antes das reversões.
/*backtest start: 2023-08-16 00:00:00 end: 2023-09-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy(title='HULLMiguel 2019/ Strategy v3', shorttitle='HULLMiguel_2019_Strategy', overlay=true, pyramiding=0, default_qty_value=1000, initial_capital=1000, currency=currency.USD) //Candle body resistance Channel-----------------------------// len = 34 src = input(close, title="Candle body resistance Channel") out = sma(src, len) last8h = highest(close, 13) lastl8 = lowest(close, 13) bearish = cross(close,out) == 1 and falling(close, 1) bullish = cross(close,out) == 1 and rising(close, 1) channel2=input(false, title="Bar Channel On/Off") ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0) ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=blue, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0) //fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel") //-----------------Support and Resistance RST = input(title='Support / Resistance length:', defval=15) RSTT = valuewhen(high >= highest(high, RST), high, 0) RSTB = valuewhen(low <= lowest(low, RST), low, 0) RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0) RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0) //--------------------Trend colour ema------------------------------------------------// src0 = close, len0 = input(13, minval=1, title="EMA 1") ema0 = ema(src0, len0) direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0 plot_color = direction > 0 ? lime: direction < 0 ? red : na plot(ema0, title="EMA", style=line, linewidth=3, color = plot_color) //-------------------- ema 2------------------------------------------------// src02 = close, len02 = input(21, minval=1, title="EMA 2") ema02 = ema(src02, len02) direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0 plot_color2 = direction2 > 0 ? green: direction2 < 0 ? red : na plot(ema02, title="EMA Signal 2", style=line, linewidth=2, color = plot_color2) //=============Hull MA// show_hma = input(false, title="Display Hull MA Set:") hma_src = input(close, title="Hull MA's Source:") hma_base_length = input(16, minval=1, title="Hull MA's Base Length:") hma_length_scalar = input(10, minval=0, title="Hull MA's Length Scalar:") hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=5, title="Hull MA") dif_close_hull= (close-hullma(hma_src, hma_base_length+hma_length_scalar*6))/close Percent_dif = (dif_close_hull/(hullma(hma_src, hma_base_length+hma_length_scalar*6))) //direction3 = Percent_dif>0 ? +1 : Percent_dif<0 ? -1 : 0 //plot_color3 = direction3 > 0 ? lime: direction3 < 0 ? red : na //plot(dif_close_hull, title="dif close hull", style=line, linewidth=6, color = plot_color3) //============ signal Generator ==================================// Piriod=input('720') ch1 = security(syminfo.tickerid, Piriod, open) ch2 = security(syminfo.tickerid, Piriod, close) plot(ch1, title="EMA Signal 2", style=line, linewidth=1, color = blue) //longCondition = crossover(security(tickerid, Piriod, close),security(tickerid, Piriod, open)) //plot((close-ema02)/ema02+close) longCondition = direction > 0 and direction2> 0 if (longCondition) strategy.entry("BUY", strategy.long) //shortCondition = crossunder(security(tickerid, Piriod, close),security(tickerid, Piriod, open)) shortCondition = direction < 0 and direction2 < 0 if (shortCondition) strategy.entry("SELL", strategy.short) ///////////////////////////////////////////////////////////////////////////////////////////