La Estrategia de Camarilla Pivot Breakout es una estrategia de negociación cuantitativa que utiliza los niveles de pivote de Camarilla para entradas y salidas.
La lógica central de esta estrategia es: calcular el H4 y el L4, dos niveles clave de soporte y resistencia, a partir de la fórmula Camarilla en el marco de tiempo diario; generar señales comerciales cuando el precio rompe estos dos niveles.
Específicamente, la estrategia primero calcula el punto medio de los precios más altos, más bajos y de cierre de la barra actual como el punto de giro. Luego calcula el rango de precios. Basado en el rango, se pueden trazar varios niveles de Camarilla, incluidos H4, H3, H2, H1 y L1, L2, L3, L4. Entre ellos, H4 es la primera resistencia y L4 es el primer soporte.
Para las señales comerciales, si el precio de cierre se rompe por encima del nivel H4, desencadena una señal larga; si el precio de cierre se rompe por debajo de L4, desencadena una señal corta.
Así que la lógica principal es: usar las rupturas de nivel Camarilla para determinar la estructura del mercado y obtener señales comerciales.
Esta estrategia de escape de la Camarilla tiene varias fortalezas clave:
El análisis de Camarilla utiliza conceptos clásicos de soporte/resistencia.
En comparación con los modelos de aprendizaje automático, las reglas de Camarilla son simples con pocas métricas sintonizables, fáciles de entender y ejecutar en el comercio en vivo, especialmente para los principiantes.
El monitoreo de las rupturas H4/L4 se traduce directamente en entradas comerciales. La señal de estrategia es nítida y el código es simple. Esto permite un prototipo rápido de ideas a operaciones en vivo.
La estrategia Camarilla funciona para operaciones de alta frecuencia (bares de segundos, minutos) y baja frecuencia (diaria, semanal).
Sin embargo, tal estrategia de escape simple tiene algunas debilidades inherentes:
El precio puede fallar en la tendencia posterior a la ruptura y revertirse en su lugar. No reducir las pérdidas a tiempo podría conducir a grandes bajadas. Necesitamos salvaguardas contra señales falsas.
El monitoreo solo de los precios de cierre puede hacer que se pierdan posibles rupturas durante los períodos de barras anteriores.
En comparación con los modelos más sofisticados, la dependencia exclusiva de Camarilla puede limitar el margen de ganancia y la amplitud.
Por lo tanto, la gestión del riesgo mediante stop loss, la optimización de la lógica de entrada y el ajuste de los tamaños de las posiciones son necesarios para garantizar la robustez de un método de ruptura tan simple.
Para optimizar aún más esta estrategia de fuga de Camarilla, podemos centrarnos en lo siguiente:
Combinando el volumen, las medias móviles, etc. para medir la autenticidad de la ruptura y evitar señales falsas.
Como relajar la magnitud de la fuga a través de pruebas de retroceso para encontrar puntos favoritos o añadir más reglas basadas en estacionalidades.
Acercar los rangos de stop loss evitando las paradas prematuras o estratos alternativos como los trailing stop loss.
Ajuste adaptativo de las posiciones y de los parámetros de apalancamiento para adaptarse a la evolución de los regímenes de mercado.
Aproveche los modelos LSTM y RNN para predecir las probabilidades de fuga y mejorar la inteligencia.
La Camarilla Pivot Breakout Strategy es una estrategia de negociación cuantitativa simple y directa que es fácil de implementar. Utiliza herramientas de análisis técnico maduras y genera señales comerciales al capturar las rupturas de los niveles clave de soporte y resistencia. Este tipo de estrategia tiene la ventaja de estabilidad y confiabilidad. También es relativamente simple para la ejecución en el mundo real.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Created by CristianD strategy(title="CamarillaStrategy", shorttitle="CD_Camarilla_Strategy", overlay=true) //sd = input(true, title="Show Daily Pivots?") EMA = ema(close,3) //Camarilla pivot = (high + low + close ) / 3.0 range = high - low h5 = (high/low) * close h4 = close + (high - low) * 1.1 / 2.0 h3 = close + (high - low) * 1.1 / 4.0 h2 = close + (high - low) * 1.1 / 6.0 h1 = close + (high - low) * 1.1 / 12.0 l1 = close - (high - low) * 1.1 / 12.0 l2 = close - (high - low) * 1.1 / 6.0 l3 = close - (high - low) * 1.1 / 4.0 l4 = close - (high - low) * 1.1 / 2.0 h6 = h5 + 1.168 * (h5 - h4) l5 = close - (h5 - close) l6 = close - (h6 - close) // Daily line breaks //sopen = request.security(syminfo.tickerid, "D", open [1]) //shigh = request.security(syminfo.tickerid, "D", high [1]) //slow = request.security(syminfo.tickerid, "D", low [1]) //sclose = request.security(syminfo.tickerid, "D", close [1]) // // Color //dcolor=sopen != sopen[1] ? na : black //dcolor1=sopen != sopen[1] ? na : red //dcolor2=sopen != sopen[1] ? na : green //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) //offs_daily = 0 //plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2) //plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2) //plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2) //plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2) //plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3) //plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2) //plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2) //plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2) //plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2) //plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3) //plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2) //plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2) //plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2) longCondition = close >dtime_h4 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = close <dtime_l4 if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)