Estrategia de niveles de doble ruptura de intervalo de tiempo

El autor:¿ Qué pasa?, Fecha: 2023-11-15 17:27:36
Las etiquetas:

img

Resumen general

Esta es una estrategia que utiliza los niveles clave en diferentes marcos de tiempo para generar señales comerciales de doble ruptura. Puede entrar en posiciones largas o cortas cuando los precios de tendencia rompen los niveles clave de soporte o resistencia para capturar tendencias a medio y largo plazo.

Estrategia lógica

La estrategia analiza la acción del precio simultáneamente en dos marcos de tiempo diferentes (tf y tf2), siendo tf el marco de tiempo más largo que refleja la tendencia a medio y largo plazo, y tf2 el marco de tiempo más corto que refleja los movimientos a corto plazo.

  1. Cuando el precio se rompe por encima del nivel (nivel) en el marco de tiempo tf, registrar up1=true
  2. Cuando el precio se rompe por debajo del nivel en el marco de tiempo tf, registrar dn1=verdadero
  3. Cuando el precio se rompe por encima del nivel (nivel2) en el marco de tiempo tf2, registrar up2=true
  4. Cuando el precio se rompe por debajo del nivel en el marco de tiempo tf2, registro dn2=verdadero

La señal de negociación se forma cuando up1 y up2 son verdaderos juntos, lo que indica que a largo y corto plazo ambos son alcistas, ir largo; cuando dn1 y dn2 son ambos verdaderos, lo que indica que a largo y corto plazo ambos son bajistas, ir corto.

La estrategia también incorpora algunos filtros como el scalping inverso y las velas de color para evitar señales erróneas de las rupturas que no son tendencias.

En general, la estrategia aprovecha al máximo el análisis de marcos de tiempo múltiples, garantizando que la tendencia a medio y largo plazo cumpla con las expectativas, evitando al mismo tiempo la interferencia del ruido del mercado a corto plazo, generando señales comerciales de alta calidad.

Análisis de ventajas

  1. Captar las tendencias a medio y largo plazo mediante la ruptura de los niveles clave

    Al monitorear las rupturas de los niveles clave en dos marcos de tiempo, puede capturar señales de entrada claras en las etapas de inicio de la tendencia.

  2. La doble confirmación reduce significativamente las señales falsas

    Requerir interrupciones simultáneas en dos marcos de tiempo diferentes reduce en gran medida las señales falsas de las fluctuaciones aleatorias, mejorando la calidad de la señal.

  3. Filtros como los escalpes invertidos y los candelabros de color

    Agregar scalping inverso y filtros de velas de color puede eliminar algunas señales de breakout de baja calidad y evitar grandes pérdidas.

  4. Configuración de parámetros sencilla

    La estrategia sólo necesita dos parámetros de tiempo para funcionar, ofrece ajustes flexibles para diferentes productos.

  5. Fácil de entender y optimizar

    La estructura clara facilita la comprensión de la lógica y los parámetros se pueden ajustar en función de las condiciones del mercado para la optimización.

Análisis de riesgos

  1. Entrada retrasada debido a una doble fuga

    En comparación con la ruptura única, la ruptura doble puede causar algún retraso en la entrada, perdiendo las ganancias de tendencia tempranas.

  2. Selección del nivel clave

    Es muy importante seleccionar los niveles clave adecuados para los diferentes productos y ciclos del mercado, de lo contrario puede generar señales falsas.

  3. Fallo de la fuga

    Incluso con una fuga doble, todavía hay una posibilidad de fracaso de la fuga y una rápida retirada, causando pérdidas.

  4. Pérdida por reversión de tendencia

    Las entradas de tendencia tardías pueden enfrentarse a una reversión repentina, no pudiendo salir a tiempo a través del stop loss e incurrir en grandes pérdidas.

  5. Optimización de parámetros difícil

    Aunque simple, encontrar el conjunto óptimo de parámetros todavía requiere pruebas extensas, con alta dificultad de optimización.

Direcciones de optimización

  1. Añadir estrategias de stop loss

    Puede establecer un alto de trailing o tiempo para detener la pérdida antes de que la pérdida sea demasiado grande.

  2. Optimiza los filtros

    Puede probar diferentes parámetros de amplitud inversa del cuero cabelludo u otros métodos de filtrado.

  3. Nivel de clave dinámica

    Hacer que los niveles clave cambien dinámicamente con los cambios del mercado en lugar de niveles estáticos.

  4. Optimización de parámetros de varios productos

    Utilice el aprendizaje automático para optimizar los mejores conjuntos de parámetros para diferentes productos.

  5. Añadir confirmación de volumen

    Incorporar confirmación de volumen para evitar señales falsas de ruptura sin volumen.

Resumen de las actividades

En general, esta es una estrategia de seguimiento de tendencias simple y práctica. Al analizar dos marcos de tiempo, se entra en la conformidad de dirección a medio y largo plazo para filtrar el ruido de manera efectiva. Las señales son claras y fáciles de interpretar, con configuraciones de parámetros intuitivas. Pero también tiene problemas como la entrada incorrecta, la dificultad para seleccionar los niveles clave. En resumen, esta estrategia funciona mejor como una herramienta de validación de tendencias para combinarse con otros factores, pero aún tiene mucho espacio para la optimización como un sistema de negociación independiente.


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

//Noro
//2018

//@version=2
strategy(title = "Noro's Levels Strategy v1.0", shorttitle = "Levels str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W',  title = "timeframe 1")
tf2 = input('D',  title = "timeframe 2")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "antipila")
cf = input(true, defval = true, title = "color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Signals
level = request.security(syminfo.tickerid, tf, src[1])
level2 = request.security(syminfo.tickerid, tf2, src[1])
plot(level, linewidth = 3, color = silver)
plot(level2, linewidth = 3, color = gray)
up1 = close > level and ap == false ? true : low > level ? true : false
dn1 = close < level and ap == false ? true : high < level ? true : false
up2 = close > level2 and ap == false ? true : low > level2 ? true : false
dn2 = close < level2 and ap == false ? true : high < level2 ? true : false

//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if up1 and up2 and (close < open or cf == false)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if dn1 and dn2 and (close > open or cf == false)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Más.