Una estrategia de ruptura de impulso

El autor:¿ Qué pasa?, Fecha: 2023-10-09 15:15:22
Las etiquetas:

Resumen general

Esta es una estrategia de negociación intradiaria que utiliza indicadores de impulso y niveles clave de soporte / resistencia para el comercio de ruptura.

Estrategia lógica

La estrategia utiliza el índice Choppiness para identificar tendencias. Los valores bajos de Choppiness indican una tendencia clara mientras que los valores altos indican consolidación. La estrategia solo se negocia cuando Choppiness está por debajo de 44.

Para las señales de entrada, calcula los niveles clave de soporte/resistencia intradiarios, incluidos H4, H5 etc. Se hace largo cuando el precio cierra por encima de H4 y corto cuando el precio cierra por debajo de L4.

Específicamente, calcula los siguientes niveles intradiarios:

  • Pivot = (alto + bajo + cerrado) / 3
  • Rango = Alto - Bajo
  • H1-H6 = eje + rango * relación
  • L1-L6 = eje - rango * relación

Después de calcular estos niveles, utiliza H4 y L4 como los niveles clave de ruptura.

Cuando el precio se rompe por encima de H4, indica un aumento del impulso alcista y la estrategia va largo.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Usar Choppiness para identificar tendencias claras evita problemas en la consolidación.

  2. Los niveles de soporte/resistencia calculados suelen ser significativos.

  3. Las rupturas de negociación de H4 y L4 que están cerca del precio de cierre capturan importantes rupturas intradiarias.

  4. Las señales de ruptura tienen una tasa de ganancia muy alta.

  5. Lógica simple y clara, fácil de entender e implementar para principiantes.

Análisis de riesgos

Los riesgos de esta estrategia incluyen:

  1. Confiar en Choppiness para la identificación de tendencias puede fallar y interpretar mal las tendencias.

  2. Los niveles calculados pueden no mantenerse y el precio podría romper, causando paradas.

  3. Las señales de fuga pueden ser falsas y rápidas.

  4. Sin tener en cuenta la tendencia general, las pérdidas pueden acumularse en mercados agitados.

  5. No hay stop loss significa que una gran pérdida de una sola operación es posible en movimientos extremos.

Soluciones:

  1. Añadir otros indicadores para la confirmación cruzada y mejorar la precisión.

  2. Implementar el movimiento de stop loss para controlar la pérdida de una sola operación.

  3. Incorporar un filtro de tendencia a largo plazo para evitar operaciones contra tendencia.

  4. Agregue una señal de reingreso para evitar perseguir falsos escape.

Direcciones de optimización

Esta estrategia se puede optimizar aún más mediante:

  1. Optimización de los parámetros de Choppiness para encontrar mejores valores.

  2. Probando diferentes niveles de escape como H3 y L3 para una mejor eficiencia.

  3. Añadir un stop loss móvil para proteger las ganancias y controlar el riesgo.

  4. Añadiendo señal de reingreso para evitar pérdidas por falsos escapes.

  5. Incorporación de un filtro de tendencia a largo plazo para evitar operaciones contra tendencia.

  6. Optimización de los tiempos de negociación, como las sesiones de negociación solo en Estados Unidos o Europa.

  7. Añadir reglas de tamaño de posición como cantidad fija o porcentaje fijo.

  8. Analizando los datos de las pruebas de retroceso para ajustar los parámetros.

Conclusión

En resumen, la idea central es negociar breakouts después de identificar la tendencia. Tiene una lógica simple y probabilidades de ganar decentes. Pero los riesgos existen y se necesitan más refinamientos para controlar los riesgos y mejorar la rentabilidad. Con el ajuste de parámetros, stop loss, filtro de tendencia, etc. puede convertirse en un sistema de breakout intradiario muy práctico. Proporciona un marco de breakout de impulso que es una estrategia de negociación intradiaria efectiva.


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

//@version=4
//Created by AS
strategy(title="ASH1Strategy", shorttitle="AS_H1_Strategy", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,3)

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)
    


Más.