Estratégia de tendência baseada no padrão de nuvem de três indicadores

Autora:ChaoZhang, Data: 2023-09-13 17:38:55
Tags:

Esta estratégia é chamada de Trend Following Strategy Based on Triple Indicator Cloud Pattern. Integra três tipos diferentes de indicadores de tendência para formar um padrão de nuvem, negociando breakouts da nuvem para seguir tendências.

Os três indicadores utilizados são:

Kaufman Adaptive Moving Average, sensível na captura da volatilidade do mercado.

A média móvel do casco, com as suas curvas suaves, filtra sinais falsos.

Mecanismo SuperTrend, formando canais de preços para evitar perseguir altas e vender baixas.

Juntos, eles formam o padrão de nuvens, com a faixa superior sendo os valores mais altos dos três, e a faixa inferior os valores mais baixos.

A lógica de negociação é:

Quando o alto do candelabro quebra acima do topo da nuvem, ele sinaliza quebrar o canal de tendência de alta para um sinal de compra.

Quando o fechamento ou o baixo quebra abaixo do fundo das nuvens, ele sinaliza o início de uma tendência de baixa para fechar compras.

A vantagem desta estratégia é que a combinação de indicadores julga o status da tendência com mais precisão, reduzindo os falsos sinais.

Em resumo, o uso de múltiplos indicadores para determinar tendências é uma abordagem comum e eficaz.


/*backtest
start: 2022-09-12 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SnarkyPuppy

//@version=5
strategy("HKST Cloud", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100)



////////////////nAMA
Lengthkaufman = input(20) 
xPrice = ohlc4
xvnoise = math.abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
nsignal = math.abs(xPrice - xPrice[Lengthkaufman])
nnoise = math.sum(xvnoise, Lengthkaufman)
nefratio = nnoise != 0? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
nAMA =  float(0)
nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//plot(nAMA,color=color.red)
///short=input(true)



///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////

////////hull moving average
hull_len=input(20)
hull= ta.hma(nAMA,hull_len)

///////atr trail
atr_factor=input(2)
atr_period=input(5)
[supertrend, direction] = ta.supertrend(atr_factor,atr_period)

/////////cloud
band1= math.max(supertrend,hull,nAMA)
band2= math.min(supertrend,hull,nAMA)

b1=plot(band1, "band1", color = color.rgb(76, 175, 79, 85), style=plot.style_linebr)
b2=plot(band2, "band2", color = color.rgb(255, 82, 82, 78), style=plot.style_linebr)
fill(b1,b2,color.rgb(12, 50, 186, 75))
longCondition = ta.crossover(high,band1) //or ta.crossover(low,band2)
if (longCondition)
    strategy.entry("Up", strategy.long)

shortCondition =  ta.crossunder(low,band2) or close<band2
if (shortCondition) 
    strategy.close("Up", shortCondition)



Mais.