Estrategia de impulso basada en la presión de LazyBear

El autor:¿ Qué pasa?, Fecha: 2023-12-21 14:22:49
Las etiquetas:

img

Resumen general

La idea principal de esta estrategia se basa en el indicador Squeeze Momentum de LazyBear para analizar el momento de compra y venta. Analiza los puntos de inflexión en la tendencia de impulso, localizando los picos y los mínimos como señales de venta y compra respectivamente. Como es una estrategia larga, también toma en consideración el promedio móvil exponencial de 50 períodos para identificar tendencias alcistas. Si el precio de cierre de la vela está por encima del 50EMA, y la pendiente del 50EMA está en tendencia alcista, entonces se ejecuta la señal de compra.

Principio de la estrategia

Esta estrategia incorpora bandas de Bollinger y canales de Keltner para identificar tendencias y zonas de compresión. Específicamente, calcula una banda de Bollinger de 20 períodos y canales de Keltner de 20 períodos. Cuando las bandas de Bollinger caen enteramente dentro de los canales de Keltner, se considera una señal de compresión. La zona de compresión se identifica cuando la banda inferior de las bandas de Bollinger va por encima de la banda inferior de los canales de Keltner y la banda superior de las bandas de Bollinger va por debajo de la banda superior de los canales de Keltner.

Además, la estrategia utiliza la regresión lineal para analizar el cambio en la pendiente de impulso. Calcula el valor de regresión lineal del precio en los últimos 20 períodos menos el precio típico. Cuando la pendiente del valor de regresión lineal es positiva, se considera una tendencia ascendente. Cuando la pendiente es negativa, es una tendencia descendente. Dentro de la zona de compresión, si hay una inversión en la pendiente de impulso, indica una compra o venta. Específicamente, cuando dentro de la zona de compresión, un cambio de impulso de positivo a negativo emite una señal de venta. Y cuando dentro de la zona de compresión, un cambio de impulso de negativo a positivo emite una señal de compra.

Para filtrar señales falsas, la estrategia también juzga si el precio de cierre está por encima de la media móvil exponencial de 50 días y si la media móvil exponencial de 50 días está en una pendiente ascendente.

Análisis de ventajas

Esta es una estrategia muy inteligente, que utiliza dos tipos diferentes de indicadores para hacer un juicio multidimensional del mercado, lo que puede evitar eficazmente señales falsas.

  1. Aplicación integral de bandas de Bollinger, canales de Keltner e indicadores de impulso para el análisis multidimensional y una mayor precisión.

  2. Las zonas de compresión pueden identificar con eficacia los picos y mínimos de las inversiones de impulso y capturar con precisión los giros.

  3. El filtrado de tendencias basado en el precio de cierre y la EMA de 50 días evita la apertura repetitiva de posiciones durante las consolidaciones.

  4. Las señales emitidas únicamente durante las zonas de presión reducen las falsas señales y mejoran la tasa de rentabilidad.

  5. El gran espacio de optimización de parámetros permite optimizaciones específicas a través de períodos de ajuste, etc.

  6. Combinando el largo y el corto, se consideran las grandes tendencias del ciclo y se integran los indicadores a mediano plazo, la dirección a largo plazo es clara.

Análisis de riesgos

A pesar de que esta estrategia tiene múltiples indicadores técnicos no agrícolas, todavía existen algunos riesgos:

  1. Oportunidades de compra/venta perdidas cuando las bandas de Bollinger y los canales de Keltner divergen.

  2. Pueden producirse grandes pérdidas durante fuertes subidas o caídas del mercado.

  3. En los mercados de alta volatilidad, las situaciones de presión pueden no ser obvias, lo que resulta en menos señales.

  4. Tendencia a las pérdidas de ajuste durante las transiciones alcista-baja.

Para evitar estos riesgos, podemos tomar las siguientes medidas:

  1. Optimizar los parámetros para sincronizar las bandas de Bollinger y los canales de Keltner tanto como sea posible.

  2. Configurar el stop loss para controlar la pérdida única.

  3. Utilice esta estrategia como parte de una estrategia de cartera, combinada con otras estrategias.

  4. Reducir adecuadamente las posiciones durante los mercados con alta volatilidad.

Direcciones de optimización

La estrategia sigue teniendo un amplio margen de mejora, principalmente en las siguientes direcciones:

  1. Optimizar los períodos de bandas de Bollinger y canales de Keltner para sincronizarlos tanto como sea posible.

  2. Prueba diferentes factores multiplicadores para encontrar las combinaciones óptimas de parámetros.

  3. Intente introducir otros indicadores para su confirmación, como el RSI, etc.

  4. Basado en los modelos Wen Hua Five Color Lines, utiliza selectivamente esta estrategia dependiendo de las etapas del mercado.

  5. Adopte el aprendizaje automático, etc., para optimizar dinámicamente los parámetros.

  6. Prueba de retroceso en diferentes monedas para encontrar los productos comerciales más adecuados.

  7. Explorar la eficacia de esta estrategia en períodos de tiempo más largos (diarios, semanales, etc.).

Conclusión

La estrategia LazyBear Squeeze Momentum emplea ampliamente varios indicadores técnicos, identificando con precisión las reversiones de impulso para el comercio durante las zonas de compresión, evitando la apertura repetitiva de posiciones durante los mercados sin tendencia.


/*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")


Más.