
La estrategia se basa en el indicador Squeeze Momentum de LazyBear, que analiza los momentos de compra y venta. Analiza el movimiento de los puntos de inflexión de la tendencia, posicionando los máximos y mínimos como señales de venta y compra. Como es una estrategia multitarea, también se considera la media móvil del índice de 50 períodos para identificar la tendencia alcista.
La estrategia combina el indicador de la banda de Brin con el indicador de la vía de Keltner para identificar la tendencia y el intervalo de presión. En concreto, calcula la banda de Brin de 20 ciclos, y la órbita superior y inferior de la vía de Keltner de 20 ciclos. Cuando la banda de Brin cae completamente dentro de la vía de Keltner, se considera una señal de expansión.
Además, la estrategia también utiliza la regresión lineal para analizar el cambio de tendencia y la inclinación de la dinámica. Calcula el valor de la regresión lineal de los precios de los últimos 20 períodos menos el precio típico. Cuando la inclinación de la regresión lineal es positiva, se considera una tendencia alcista; cuando la inclinación es negativa, se considera una tendencia descendente.
Para filtrar las falsas señales, la estrategia también determina si el precio de cierre está por encima de la media móvil de 50 días y si la media móvil de 50 días está en alza. La señal de compra se ejecuta solo cuando se cumplen ambas condiciones.
Esta es una estrategia muy inteligente que permite tomar decisiones multidimensionales sobre el mercado a través de dos tipos diferentes de indicadores, evitando así las falsas señales. En concreto, tiene las ventajas de:
El uso integrado de la banda de Brin, el canal de Keltner y el indicador de movimiento para el análisis multidimensional mejora la precisión de los juicios.
El intervalo de compresión puede identificar eficazmente los puntos altos y bajos de la inversión de la dinámica, capturando con precisión el giro.
El filtro de tendencias basado en el precio de cierre y el promedio móvil de 50 días del índice puede evitar la repetición de la apertura de posiciones en la liquidación.
La emisión de señales sólo en el intervalo de extinción reduce las falsas señales y aumenta la probabilidad de ganancias.
El espacio de optimización de los parámetros de la estrategia es amplio y se puede optimizar de manera específica mediante parámetros como el ajuste de ciclos.
La combinación de indicadores de corto y medio plazo con las tendencias del ciclo general, hace que el análisis sea multidireccional.
A pesar de que la estrategia Nonfarming se basa en varios indicadores tecnológicos, existen algunos riesgos:
Cuando el cinturón de Brin y el canal de Keltner se difunden, se pierde la oportunidad de comprar/vender.
Cuando las operaciones se desploman, las estrategias pierden más dinero.
En situaciones de alta volatilidad, la expansión puede no ser evidente y la señal es menor.
La conversión de un toro a un oso es propensa a la formación de pérdidas de ajuste.
En respuesta a estos riesgos, podemos evitarlos de la siguiente manera:
Optimización de los parámetros para que el cinturón de Bryn y el canal Keltner estén lo más a la par.
Establezca un límite de pérdidas para controlar las pérdidas individuales.
Utilice esta estrategia como parte de una combinación de estrategias, junto con otras estrategias.
Bajar posiciones adecuadamente en situaciones de alta volatilidad.
La estrategia aún tiene mucho espacio para ser optimizada, y las principales son:
Optimizar los ciclos de longitud de la franja de Brin y el canal de Keltner para que estén lo más en sincronía posible.
Prueba diferentes factores multiplicativos para encontrar la mejor combinación de parámetros.
Intenta agregar otros indicadores para confirmar, como el RSI, etc.
La estrategia se utiliza selectivamente para determinar la etapa del mercado en base a modelos como el de la línea de color de la cultura.
Parámetros de optimización dinámica de métodos como el aprendizaje automático.
En el caso de las monedas, la mayoría de las transacciones se realizan en el mercado de divisas, y la mayoría de las transacciones se realizan en monedas.
Explorar el efecto de la estrategia en períodos más largos (línea solar, meridiano, etc.).
La estrategia de LazyBear para cuantificar la dinámica de la matriz de presión utiliza varios indicadores técnicos para identificar con precisión la inversión de la dinámica en el rango de expansión y evitar la apertura frecuente de posiciones en situaciones de no tendencia. Define sistemáticamente las reglas de compra y venta cuantitativas y tiene un excelente rendimiento en la retroalimentación. La estrategia también tiene un gran espacio de mejora a través de la configuración de parámetros optimizados y la introducción de nuevos indicadores de juicio.
/*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")