Espremimento de Impulso na Estratégia de Reversão

Autora:ChaoZhang, Data: 2023-09-09 23: 56:32
Tags:

imgO Squeeze Momentum on Reversal Strategy é uma estratégia de negociação técnica que usa os indicadores Bollinger Bands (BB) e Keltner Channel (KC) para identificar potenciais reversões no mercado.

A estratégia funciona primeiro calculando as bandas BB e KC para o comprimento especificado. O comprimento padrão é de 20 bares. As bandas BB são então multiplicadas pelo multiplicador especificado, que é 2,0 por padrão. As bandas KC são então multiplicadas pelo multiplicador especificado, que é 1,5.

O próximo passo é verificar se as faixas BB e KC estão apertadas. Se estiverem, então a estratégia entrará em uma posição longa se o preço estiver acima da faixa KC e uma posição curta se o preço estiver abaixo da faixa KC. O tamanho da posição será determinado pela força de reversão especificada, que é 0,0018 por padrão.

A estratégia sairá da posição quando as faixas BB e KC se alargarem. O sinal de saída será gerado quando o preço se mover fora da faixa KC.

O Squeeze Momentum on Reversal Strategy é uma estratégia relativamente simples de implementar, mas pode ser eficaz na identificação de potenciais reversões no mercado. No entanto, é importante lembrar que nenhuma estratégia de negociação é garantida para ser lucrativa.

A seguir, uma explicação mais pormenorizada dos diferentes componentes da estratégia:

Bandas de Bollinger (BB): O indicador BB é um indicador de volatilidade que usa uma média móvel e desvio padrão para criar bandas em torno do preço. Canal de Keltner (KC): O indicador KC é semelhante ao indicador BB, mas usa uma média móvel diferente e cálculo do desvio padrão. Força de reversão: A força de reversão é um parâmetro que determina o tamanho da posição que é tomada quando a estratégia entra em um comércio. O Squeeze Momentum on Reversal Strategy é uma estratégia versátil que pode ser usada em uma variedade de prazos e mercados. No entanto, é importante notar que a estratégia é mais eficaz em mercados de tendência.

Aqui estão algumas dicas para usar o Momentum de Espremimento na Estratégia de Reversão:

Use um stop loss para proteger os seus lucros. Use um stop loss para bloquear os lucros à medida que o mercado se move a seu favor. Testar a estratégia em dados históricos antes de usá-la em negociação ao vivo. Utilize uma variedade de outros indicadores para confirmar os sinais gerados pelo Momentum de Espremimento na Estratégia de Reversão. O Squeeze Momentum on Reversal Strategy é uma ferramenta poderosa que pode ser usada para identificar potenciais reversões no mercado. No entanto, é importante usar a estratégia com sabedoria e entender suas limitações. Seguindo as dicas acima, você pode aumentar suas chances de sucesso ao usar essa estratégia.


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

//
// @author Odyssee
// @version=2
//
strategy(shorttitle = "Squeeze MOM", title="Squeeze Momentum on Reversal Strategy", overlay=false)

length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
strength = input(0.0018, title="Reversal Strength")

useTrueRange = input(true, title="Use TrueRange (KC)", type=bool)

// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = (sqzOn == false) and (sqzOff == false)

highest = highest(high, lengthKC)
lowest = lowest(low, lengthKC)
lastsma = sma(close,lengthKC)

valin = linreg(source  -  avg(avg(highest, lowest), lastsma), lengthKC,0)

bcolor = iff( valin > 0, iff( valin > nz(valin[1]), lime, green), iff( valin < nz(valin[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray 
plot(valin, color=bcolor, style=histogram, linewidth=4)
plot(0, color=scolor, style=cross, linewidth=2)

shortcondition = valin > strength and valin < nz(valin[1]) // line become green
longcondition = valin < (strength*-1) and valin > nz(valin[1]) // line become maroon

if(longcondition)
    strategy.entry("BUY", strategy.long)
if(shortcondition)
    strategy.entry("SELL", strategy.short)


Mais.