
A estratégia baseia-se no indicador Squeeze Momentum da LazyBear, que analisa o momento de compra e venda. Ela analisa o movimento dos pontos de mudança de tendência, posicionando os altos e baixos como sinais de venda e compra. Como é uma estratégia multifacetada, também se considera a média móvel do índice de 50 ciclos para identificar a tendência ascendente.
A estratégia combina o indicador da faixa de Brin e o indicador do canal de Keltner para identificar os intervalos de tendência e pressão. Concretamente, ele calcula a faixa de Brin de 20 ciclos, e o trajeto ascendente e descendente do canal de Keltner de 20 ciclos. Quando a faixa de Brin cai completamente dentro do canal de Keltner, é considerada um sinal de esmagamento.
Além disso, a estratégia também usa a regressão linear para analisar a tendência e a inclinação de mudanças na dinâmica. Ela calcula a regressão linear de preços nos últimos 20 períodos, menos o preço típico. Quando a inclinação do valor da regressão linear é positiva, é considerada uma tendência ascendente; quando a inclinação é negativa, é considerada uma tendência descendente.
Para filtrar falsos sinais, a estratégia também julga se o preço de fechamento está acima da média móvel de 50 dias do índice e se a média móvel de 50 dias está subindo. O sinal de compra só é executado quando essas duas condições são simultaneamente satisfeitas.
Esta é uma estratégia muito inteligente, que pode ser eficaz para evitar falsos sinais, ao mesmo tempo em que usa dois tipos diferentes de indicadores para fazer um julgamento multidimensional do mercado.
A utilização de banda de Brin, canais de Keltner e indicadores de movimento, para análise multidimensional, aumenta a precisão do julgamento.
O intervalo de compressão pode identificar efetivamente os altos e baixos da inversão do dinamismo, capturando com precisão a inversão.
Filtragem de tendências com base no preço de fechamento e na média móvel de 50 dias do índice pode evitar a abertura de posições repetidas na liquidação.
Emissão de sinais apenas no intervalo de esmagamento, pode reduzir os falsos sinais e aumentar a probabilidade de lucro.
O espaço de otimização dos parâmetros da estratégia é grande e pode ser otimizado de forma direcionada por parâmetros como o ajuste do ciclo.
A análise de longo e curto prazo, que leva em consideração as tendências do grande ciclo e combina indicadores de médio e curto prazo, é clara em várias direções.
Embora a estratégia de Nonfarming tenha sido avaliada em vários indicadores tecnológicos, há alguns riscos:
O que acontece é que, quando o Brin Belt e o Keltner Canal se espalham, as oportunidades de compra/venda são perdidas.
A estratégia pode ser prejudicada quando a tempestade de atividades se precipita.
Em situações de alta volatilidade, a pressão pode não ser visível e os sinais são menores.
A conversão de Ouro e Urso pode gerar prejuízos de ajuste.
Para combater esses riscos, podemos fazer o seguinte:
Parâmetros de otimização para que a faixa de Bryn e o canal Keltner estejam em sincronia.
Estabeleça um limite de perda para controlar a perda individual.
Utilize esta estratégia como parte de uma estratégia de combinação, em conjunto com outras estratégias.
Em situações de alta volatilidade, reduzir adequadamente as posições.
A estratégia ainda tem muito espaço para otimização, e as principais melhorias são:
Otimizar o ciclo de comprimento das faixas Brin e Keltner para que sejam o mais sincronizadas possível.
Teste diferentes fatores de multiplicação para encontrar a melhor combinação de parâmetros.
Tente adicionar outros indicadores para confirmação, como o RSI, etc.
A estratégia é usada seletivamente para avaliar o estágio do mercado com base em modelos como a linha de cores da Shenhua.
Parâmetros de otimização dinâmica de métodos como aprendizado de máquina.
A partir daí, é possível identificar as moedas mais adequadas para a negociação.
Explorar a eficácia da estratégia em períodos mais longos (linhas do sol, linhas do dia, etc.).
A estratégia de quantificação de dinâmica de tensão de LazyBear usa vários indicadores técnicos para identificar com precisão a inversão de dinâmica em intervalos de compressão e evitar a abertura frequente de posições em situações não tendenciais. Ela define sistematicamente as regras de compra e venda quantitativas e tem um excelente desempenho em retrospectivas.
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// @author LazyBear
// List of all my indicators: https://www.tradingview.com/v/4IneGo8h/
//
initialBalance = 8000
strategy("Crypto momentum 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")
useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)
// Calculate BB
source = close
basis = sma(source, length)
ema = ema(source, 50)
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
val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0)
slope = (val - val[2])
emaSlope = (ema - ema[1])
bcolor = iff(slope > 0, color.lime, color.red)
scolor = noSqz ? color.green : sqzOn ? color.black : color.green
squeeze = (noSqz ? 0 : sqzOn ? 1 : 0)
plot(val, color=color.gray, style=plot.style_line, linewidth=1, title="momentum")
plot(slope, color=bcolor, style=plot.style_circles, linewidth=2, title="slope")
plot(0, color=scolor, style=plot.style_line, linewidth=2, title="squeeze-zero")
co = crossover(slope / abs(slope), 0)
cu = crossunder(slope / abs(slope), 0)
if co and source > ema and emaSlope > 0
strategy.entry("long", strategy.long, comment="long")
if cu
strategy.close("long")