Estrategia de fuga basada en canales de Camarilla

El autor:¿ Qué pasa?, Fecha: 2023-10-24 16:18:30
Las etiquetas:

img

Resumen general

Esta estrategia utiliza principalmente los canales Camarilla y las medias móviles para identificar puntos de ruptura en el mercado y, por lo tanto, implementar el seguimiento de tendencias.

Estrategia lógica

  1. Calcular los niveles de soporte y resistencia utilizando los canales Camarilla, incluidos H4, L4 etc.

  2. Identifique si el precio se rompe a través de estas líneas de canal. Por ejemplo, cerrar por encima de H4 y abrir por debajo de H4 indica una señal de ruptura.

  3. Por ejemplo, si la EMA está por debajo del cierre, es una ruptura alcista.

  4. Introduzca una posición larga con stop loss y tome ganancias.

  5. La misma lógica se aplica a las posiciones cortas.

La lógica es sencilla y fácil de entender.

Ventajas

Las ventajas de esta estrategia:

  1. Los canales Camarilla localizan con precisión los posibles apoyos y resistencias.

  2. El filtro de medias móviles ayuda a validar las verdaderas señales de ruptura.

  3. Las pérdidas de parada de seguimiento obtienen ganancias mientras se evitan las paradas de reversión.

  4. Las señales son claras y fáciles de seguir.

  5. No se necesitan ajustes frecuentes para el comercio automatizado.

Riesgos y soluciones

Hay algunos riesgos que hay que tener en cuenta:

  1. Los canales de Camarilla no pueden identificar los puntos de inflexión de manera efectiva.

    • Solución: añadir osciladores para detectar la reversión de tendencia.
  2. La configuración incorrecta de los puntos de stop loss puede llevar a una salida prematura o a pérdidas ampliadas.

    • Solución: Optimice y pruebe diferentes niveles de stop loss.
  3. Las señales de fuga pueden ser falsas.

    • Solución: Añadir más filtros para la confirmación, o relajar los criterios de ruptura.
  4. Muchas faltas falsas pueden ocurrir en mercados variados.

    • Solución: Evite negociar en períodos variados o relaje los criterios.

Sugerencias para mejorar

La estrategia puede mejorarse aún más en los siguientes aspectos:

  1. Añadir más indicadores como filtros para aumentar la precisión de la ruptura, como KDJ, MACD, etc.

  2. Optimizar las salidas, como la parada de pérdida dinámica, la integración de ATR, etc.

  3. Optimizar los parámetros de los diferentes productos para aumentar su robustez.

  4. Añadir un filtro de tendencia de marco de tiempo más alto para evitar el comercio contra tendencia.

  5. Concentrarse en el gran volumen de fuga para la confirmación.

  6. Desarrollar la optimización automática de parámetros para el ajuste dinámico.

  7. Ampliar las estrategias de arbitraje de múltiples productos.

Conclusión

La estrategia tiene una lógica clara y simple con una gran practicidad. Identifica posibles soportes y resistencias usando Camarilla y confirma la dirección de ruptura con promedios móviles. El método de salida también es razonable. También hay un gran potencial de mejora, como agregar más indicadores, expansión de múltiples productos, etc. En general, esta es una estrategia prometedora con buen potencial.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)

//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 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit Long","Long",  trail_points = 140,trail_offset = 1, loss =170) 
    //trail_points = 40, trail_offset = 3, loss =70 and


shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)
    


Más.