La idea principal de esta estrategia se basa en el indicador Squeeze Momentum de LazyBear
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.
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.
Aplicación integral de bandas de Bollinger, canales de Keltner e indicadores de impulso para el análisis multidimensional y una mayor precisión.
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.
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.
Las señales emitidas únicamente durante las zonas de presión reducen las falsas señales y mejoran la tasa de rentabilidad.
El gran espacio de optimización de parámetros permite optimizaciones específicas a través de períodos de ajuste, etc.
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.
A pesar de que esta estrategia tiene múltiples indicadores técnicos no agrícolas, todavía existen algunos riesgos:
Oportunidades de compra/venta perdidas cuando las bandas de Bollinger y los canales de Keltner divergen.
Pueden producirse grandes pérdidas durante fuertes subidas o caídas del mercado.
En los mercados de alta volatilidad, las situaciones de presión pueden no ser obvias, lo que resulta en menos señales.
Tendencia a las pérdidas de ajuste durante las transiciones alcista-baja.
Para evitar estos riesgos, podemos tomar las siguientes medidas:
Optimizar los parámetros para sincronizar las bandas de Bollinger y los canales de Keltner tanto como sea posible.
Configurar el stop loss para controlar la pérdida única.
Utilice esta estrategia como parte de una estrategia de cartera, combinada con otras estrategias.
Reducir adecuadamente las posiciones durante los mercados con alta volatilidad.
La estrategia sigue teniendo un amplio margen de mejora, principalmente en las siguientes direcciones:
Optimizar los períodos de bandas de Bollinger y canales de Keltner para sincronizarlos tanto como sea posible.
Prueba diferentes factores multiplicadores para encontrar las combinaciones óptimas de parámetros.
Intente introducir otros indicadores para su confirmación, como el RSI, etc.
Basado en los modelos Wen Hua Five Color Lines, utiliza selectivamente esta estrategia dependiendo de las etapas del mercado.
Adopte el aprendizaje automático, etc., para optimizar dinámicamente los parámetros.
Prueba de retroceso en diferentes monedas para encontrar los productos comerciales más adecuados.
Explorar la eficacia de esta estrategia en períodos de tiempo más largos (diarios, semanales, etc.).
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")