
Esta es una estrategia que utiliza precios clave en diferentes ejes temporales para realizar brechas dobles que forman una señal de negociación. Se puede entrar en posiciones de venta o venta libre cuando los precios de tendencia superan puntos clave de soporte o resistencia para capturar tendencias de línea media-larga.
La estrategia analiza el movimiento de los precios simultáneamente en dos ejes de tiempo diferentes (tf y tf2), el eje de tiempo tf es más largo y refleja tendencias de línea media larga; el eje de tiempo tf2 es más corto y refleja movimientos a corto plazo. La estrategia monitorea las siguientes señales de negociación:
Las condiciones para la formación de la señal de negociación son: up1 y up2 son al mismo tiempo verdaderas, lo que significa que la línea media y corta son bajistas, lo que significa que hay más; dn1 y dn2 son al mismo tiempo verdaderas, lo que significa que la línea media y corta son bajistas, lo que significa que hay un vacío.
La estrategia también añade algunas condiciones de filtración, como el filtro inverso y el filtro de línea K de color, para evitar que las rupturas de tendencias no reales formen señales falsas.
En general, la estrategia aprovecha las ventajas del análisis de varios períodos de tiempo para crear una señal de comercio de alta calidad, evitando la interferencia del ruido del mercado a corto plazo, al tiempo que asegura que las tendencias de la línea media y larga cumplen con las expectativas.
La estrategia monitoriza las rupturas de precios clave en dos ejes temporales y puede capturar momentos de entrada claros en las etapas iniciales de la tendencia.
La brecha simultánea en dos ejes de tiempo diferentes puede reducir considerablemente la señal errónea causada por la oscilación aleatoria y mejorar la calidad de la señal.
La adición de un ajuste inverso y la determinación de la línea K de color puede filtrar algunas brechas de baja calidad y evitar pérdidas graves.
La estrategia requiere solo dos parámetros de la línea de tiempo para funcionar, y la selección de los parámetros es flexible y adecuada para diferentes variedades.
La estructura de la estrategia es clara, fácil de entender los principios; también se pueden ajustar los parámetros de acuerdo con las características de la situación, para optimizar la estrategia.
En comparación con las brechas individuales, las brechas dobles pueden causar un cierto retraso en la entrada, perdiendo las ganancias de las fuertes tendencias iniciales.
Es muy importante elegir el precio clave adecuado para las diferentes variedades y el ciclo del mercado, de lo contrario se puede obtener una señal errónea.
Incluso en el caso de una doble ruptura, es posible que se produzca un fracaso de la ruptura y luego una rápida recuperación, lo que conlleva pérdidas.
La entrada tardía en la tendencia puede sufrir una reversión repentina y causar grandes pérdidas por no poder detener la salida a tiempo.
Aunque es simple, encontrar la combinación óptima de parámetros requiere una gran cantidad de pruebas repetidas y es más difícil de optimizar.
Se puede configurar el stop loss móvil o el stop loss temporal para detener el stop loss antes de que se amplíe la pérdida.
Se pueden probar diferentes parámetros de amplitud de ajuste inverso, o probar otros métodos de filtrado.
El precio clave puede cambiar de forma dinámica con los cambios en el mercado, en lugar de una configuración estática.
Se puede optimizar la combinación óptima de parámetros de las diferentes variedades mediante el aprendizaje automático.
Se puede añadir confirmación de volumen de transacciones para evitar una gran cantidad de falsas brechas.
La estrategia en general es una estrategia de seguimiento de tendencias sencilla y práctica. Utiliza análisis de dos ejes de tiempo al mismo tiempo, entra cuando la línea media y larga cumple con las expectativas, y puede filtrar eficazmente parte del ruido. La señal de la estrategia es clara y fácil de leer, la configuración de los parámetros también es relativamente simple e intuitiva.
/*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()