Estrategia diaria de alto/bajo

El autor:¿ Qué pasa?, Fecha: 23 de septiembre de 2023 15:07:58
Las etiquetas:

Resumen general

Esta es una estrategia de negociación intradiaria simple que combina puntos altos/bajos diarios, promedio móvil y volumen. La idea principal es utilizar la ruptura de los puntos altos/bajos del día anterior, la dirección de la media móvil y el flujo de fondos como señales de entrada.

Estrategia lógica

La estrategia se basa principalmente en los siguientes indicadores:

  1. Puntos altos/bajos diarios: se registran los precios más altos y más bajos del día de negociación anterior como referencia para el juicio de ruptura.

  2. Promedio móvil: se calcula el promedio móvil de los precios de cierre durante un determinado período como referencia para la tendencia general.

  3. Flujo monetario por volumen: se calcula el valor normalizado largo/corto del volumen durante un período para determinar las entradas y salidas de fondos.

Las reglas específicas para el comercio son:

  1. Condición larga: Cuando el máximo del día rompe el máximo del día anterior, y el cierre está por encima del promedio móvil, y el volumen de flujo de dinero es positivo, vaya largo.

  2. Cierre de posiciones largas: cuando el cierre se rompa por debajo de la media móvil, cierre de posiciones largas.

  3. Condición corta: Cuando el mínimo del día rompe el mínimo del día anterior, y el cierre está por debajo del promedio móvil, y el volumen de flujo de dinero es negativo, vaya corto.

  4. Cierre de posiciones cortas: cuando el cierre se rompa por encima de la media móvil, cierre las posiciones cortas.

La estrategia tiene en cuenta la ruptura, la tendencia y el flujo de capital de manera integral, formando un sistema de juicio completo que puede filtrar eficazmente los ruidos falsos de ruptura.

Análisis de ventajas

Esta estrategia de ruptura alta/baja tiene las siguientes ventajas:

  1. La lógica es simple e intuitiva, fácil de entender e implementar.

  2. Romper los puntos altos/bajos del día anterior puede capturar la dirección de fuerzas más fuertes.

  3. El filtrado con medias móviles evita muchas señales ruidosas.

  4. Los indicadores de flujo de capital ayudan a determinar la distribución de las fuerzas a largo/corto plazo.

  5. El comercio intradiario permite acumular ganancias a través de múltiples operaciones.

  6. No se requiere una optimización de parámetros compleja, relativamente fácil de implementar.

  7. Aplicable a diferentes productos con una gran flexibilidad.

  8. En general, la idea estratégica es simple y clara, con poca dificultad en la aplicación y un potencial de ganancia considerable.

Análisis de riesgos

Aunque la estrategia tiene muchas ventajas, también hay algunos riesgos:

  1. La dependencia de las rupturas altas/bajas puede causar pérdidas por rupturas falsas.

  2. Excesivamente dependiente de la negociación intradiaria, fácilmente afectado por eventos durante la noche.

  3. El retraso de las medias móviles puede perder los puntos de inflexión de la tendencia.

  4. Los indicadores de volumen a veces pueden dar señales erróneas.

  5. Incapacidad para controlar bien el tamaño de la pérdida de las apuestas individuales, con riesgo de pérdidas de gran tamaño.

  6. Las operaciones intradiarias frecuentes se ven afectadas por los costes de negociación.

  7. El espacio de optimización limitado hace que sea difícil lograr alfa persistente.

  8. En general, la estrategia tiene una alta frecuencia de señal, pero no ha demostrado su estabilidad y rentabilidad.

Direcciones de optimización

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

  1. Añadir stop loss para controlar el riesgo de apuesta única.

  2. Optimizar los parámetros de la media móvil para una mayor sensibilidad o suavidad.

  3. Prueba diferentes indicadores de volumen para mejorar el juicio del flujo de capital.

  4. Añadir más filtros para reducir las posibilidades de fuga falsa.

  5. Ejecute la estrategia en plazos más largos para evitar el exceso de operaciones.

  6. Introducir el aprendizaje automático para la generación de señales adaptativas.

  7. Incorporar más datos para la toma de decisiones, por ejemplo, noticias, macros, etc.

  8. Evalúe la estabilidad y el riesgo de forma exhaustiva, sin buscar rendimientos excesivos.

Conclusión

En resumen, esta es una estrategia de ruptura alta/baja simple e intuitiva, centrándose en la relación precio-volumen y el juicio de tendencia. Tiene algunos méritos, pero también riesgos, que requieren una mayor optimización y verificación. Si se gestiona correctamente el riesgo, puede ser una idea estratégica práctica a corto plazo. Pero las estrategias más eficientes y robustas requieren más factores de modelado y pruebas de retroceso rigurosas.


// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5

strategy(title='Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)

////////////////////////////GENERAL INPUTS//////////////////////////////////////
len = input.int(24, minval=1, title='Length MA', group='Optimization paramters')
src = input.source(close, title='Source MA', group='Optimization paramters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization paramters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0


if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, when=barstate.isconfirmed, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, when=barstate.isconfirmed, stop=pricehigh[1])
    strategy.close('long', when=close < out)




Más.