
La estrategia se denomina estrategia de ruptura basada en el canal de precios de la barra. Su idea principal es utilizar el canal de precios para determinar la tendencia y la dirección del mercado y establecer una posición cuando el precio rompe el canal.
La estrategia calcula los precios más altos y más bajos de un período determinado en el pasado mediante las funciones más alto (en) y más bajo (en) para determinar la trayectoria ascendente y descendente del canal de precios. La línea media del canal se define como el promedio de la trayectoria ascendente y descendente. Luego se calcula el tamaño de las entidades de la línea K y se suaviza a través de SMA para determinar si la última entidad de la línea K es más grande que la mitad de la entidad promedio.
Esta es una estrategia de ruptura que utiliza el canal de precios para determinar tendencias. Tiene las siguientes ventajas:
El uso de canales de precios para determinar la dirección de la tendencia general puede filtrar eficazmente el ruido del mercado.
Las dos líneas K consecutivas simétricamente atraviesan el canal, lo que indica que el motor es más potente y la tasa de éxito de la brecha es más alta.
El juicio de que la entidad de la línea K es más de la mitad de la entidad promedio puede evitar ser engañada por una falsa brecha.
La lógica de la estrategia es simple, fácil de entender y fácil de implementar.
Los parámetros personalizados, como el ciclo de canal, el tipo de transacción y el tiempo de transacción, son muy adaptables.
La estrategia también tiene algunos riesgos potenciales:
La probabilidad de fracaso de la brecha sigue siendo alta y podría causar pérdidas.
El juicio de la vía puede fallar cuando la situación fluctúa.
La ausencia de mecanismos de prevención de pérdidas y la imposibilidad de controlarlas de manera efectiva.
Las reglas de negociación son sencillas y existen riesgos de sobreajuste.
No puede adaptarse a un entorno de mercado más complejo.
La solución es la siguiente:
Optimizar los parámetros para mejorar la tasa de éxito de la brecha.
El índice de fluctuación es un indicador de la volatilidad de los mercados, que evita las fluctuaciones.
Se ha añadido la configuración móvil Stop Loss.
Realizar una prueba de complejidad y comprobar la compatibilidad.
Aumentar los algoritmos de aprendizaje automático para mejorar la adaptabilidad de las estrategias.
La estrategia se ha optimizado en los siguientes aspectos:
Aumentar el mecanismo de stop loss y controlar mejor el riesgo. Se puede establecer un stop loss de retorno del precio o un stop loss móvil utilizando indicadores como el ATR.
Los parámetros de optimización, como el ciclo de la vía, el parámetro de amplitud de ruptura, etc. Se pueden buscar los parámetros óptimos a través de métodos como algoritmos genéticos, búsqueda de redes.
Aumentar las condiciones de filtración para aumentar la certeza de la ruptura. Por ejemplo, se puede combinar el volumen de transacciones para confirmar la ruptura.
La adición de modelos de aprendizaje automático, que utilizan más datos para mejorar la predicción y la adaptabilidad de las estrategias. El aprendizaje profundo, como el LSTM, puede capturar patrones de comportamiento más complejos.
Optimización de la combinación, combinación de diferentes tipos de estrategias de ruptura para lograr la ortodoxia y reducir la similitud.
La estrategia en su conjunto es una estrategia cuantitativa basada en la tendencia de juicio del canal de precios y la detección de señales de ruptura. Tiene una tendencia de juicio y la confirmación de las ventajas de la ruptura, pero también existe un cierto riesgo de falsa ruptura. Podemos mejorar la estrategia mediante métodos como optimización de parámetros, configuración de stop loss, y la adición de filtros de condiciones para reducir el riesgo.
/*backtest
start: 2023-12-16 00:00:00
end: 2024-01-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Price Channel Strategy v1.0", shorttitle = "Price Channel 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")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel")
showcl = input(true, defval = true, title = "Show center-line")
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")
src = close
//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
col = showcl ? blue : na
plot(center, color = col, linewidth = 2)
//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1
//Signals
body = abs(close - open)
abody = sma(body, 10)
up = rbars and close > center and body > abody / 2
dn = gbars and close < center and body > abody / 2
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2
//Trading
if up
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if dn
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if exit
strategy.close_all()