Estratégia de momentum quantitativa baseada no momento de pressão LazyBear


Data de criação: 2023-12-21 14:22:49 última modificação: 2023-12-21 14:22:49
cópia: 0 Cliques: 926
1
focar em
1621
Seguidores

Estratégia de momentum quantitativa baseada no momento de pressão LazyBear

Visão geral

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.

Princípio da estratégia

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.

Análise de vantagens estratégicas

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.

  1. A utilização de banda de Brin, canais de Keltner e indicadores de movimento, para análise multidimensional, aumenta a precisão do julgamento.

  2. O intervalo de compressão pode identificar efetivamente os altos e baixos da inversão do dinamismo, capturando com precisão a inversão.

  3. 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.

  4. Emissão de sinais apenas no intervalo de esmagamento, pode reduzir os falsos sinais e aumentar a probabilidade de lucro.

  5. 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.

  6. 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.

Análise de Riscos

Embora a estratégia de Nonfarming tenha sido avaliada em vários indicadores tecnológicos, há alguns riscos:

  1. O que acontece é que, quando o Brin Belt e o Keltner Canal se espalham, as oportunidades de compra/venda são perdidas.

  2. A estratégia pode ser prejudicada quando a tempestade de atividades se precipita.

  3. Em situações de alta volatilidade, a pressão pode não ser visível e os sinais são menores.

  4. A conversão de Ouro e Urso pode gerar prejuízos de ajuste.

Para combater esses riscos, podemos fazer o seguinte:

  1. Parâmetros de otimização para que a faixa de Bryn e o canal Keltner estejam em sincronia.

  2. Estabeleça um limite de perda para controlar a perda individual.

  3. Utilize esta estratégia como parte de uma estratégia de combinação, em conjunto com outras estratégias.

  4. Em situações de alta volatilidade, reduzir adequadamente as posições.

Direção de otimização

A estratégia ainda tem muito espaço para otimização, e as principais melhorias são:

  1. Otimizar o ciclo de comprimento das faixas Brin e Keltner para que sejam o mais sincronizadas possível.

  2. Teste diferentes fatores de multiplicação para encontrar a melhor combinação de parâmetros.

  3. Tente adicionar outros indicadores para confirmação, como o RSI, etc.

  4. A estratégia é usada seletivamente para avaliar o estágio do mercado com base em modelos como a linha de cores da Shenhua.

  5. Parâmetros de otimização dinâmica de métodos como aprendizado de máquina.

  6. A partir daí, é possível identificar as moedas mais adequadas para a negociação.

  7. Explorar a eficácia da estratégia em períodos mais longos (linhas do sol, linhas do dia, etc.).

Resumir

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.

Código-fonte da estratégia
/*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")