Noro
La estrategia primero calcula el promedio de los precios más altos y más bajos durante un cierto período para construir un canal de precios medio. Cuando el precio se rompe por encima del canal desde abajo, se considera una señal larga. Cuando el precio se rompe por debajo del canal desde arriba, se considera una señal corta.
Al mismo tiempo, la estrategia incorpora dos reglas auxiliares: RSI rápido y color de la vela. Cuando el RSI rápido está por debajo del 25%, indica un estado de sobreventa y los precios pueden rebotar. Junto con una ruptura por encima del canal, esto produce una señal larga más fuerte. En contraste, cuando el RSI rápido está por encima del 75%, indica un estado de sobrecompra y los precios pueden caer. Junto con una ruptura por debajo del canal, esto produce una señal corta más fuerte. Además, la estrategia realiza un seguimiento de los cambios de color de la vela en las dos velas más recientes. Dos velas rojas consecutivas mejoran la señal corta, mientras que dos velas verdes consecutivas mejoran la señal larga.
Al combinar estos tres indicadores de señal, la estrategia puede identificar efectivamente las tendencias a medio y largo plazo y establecer posiciones en consecuencia.
La mayor ventaja de esta estrategia es la incorporación de múltiples indicadores para determinar la dirección de la tendencia y evitar el ruido de las fluctuaciones del mercado a corto plazo.
El canal de precios identifica claramente la dirección y la fuerza de la tendencia. Las rupturas de las bandas de canal representan una nueva etapa de la tendencia con fuertes señales.
El RSI rápido evalúa las condiciones de sobrecompra/sobreventa para evitar perseguir tendencias en los puntos de inflexión.
La validación del color de la vela verifica además la persistencia de la tendencia.
La estrategia solo entra en dos velas consecutivas del mismo color rompiendo el canal, evitando señales falsas de oscilaciones a corto plazo.
El stop loss promedio simple cierra las posiciones una vez que el color de la vela cambia, minimizando las pérdidas de manera efectiva.
También hay algunos riesgos a tener en cuenta para esta estrategia:
La configuración incorrecta de los parámetros del canal de precios puede dar lugar a que los canales sean demasiado anchos o demasiado estrechos, pierdan los puntos de cambio de tendencia o generen señales falsas excesivas.
El valor de las inversiones en el valor de las inversiones en el valor de las inversiones en el valor de las inversiones en el valor de las inversiones en el valor de las inversiones.
El simple mecanismo de stop loss puede ser demasiado sensible en tendencias agitadas, causando una apertura y cierre excesivos de la posición.
No puede predecir la continuación de la tendencia real después de romper el canal de precios, lo que conduce a pérdidas amplificadas.
No puede adaptarse a eventos de cisne negro con impactos repentinos en el mercado, lo que resulta en enormes pérdidas.
Algunas oportunidades importantes para mejorar la estrategia incluyen:
Ajustar dinámicamente los parámetros del canal de precios para adaptarse mejor a la volatilidad en diferentes períodos y mercados.
Incorporar medidas de volatilidad para ajustar los parámetros del RSI, reduciendo la sensibilidad durante la alta volatilidad y aumentando la sensibilidad durante la baja volatilidad.
Se añadirán mecanismos de detención posterior con niveles de detención basados en la volatilidad de la tendencia para evitar detenciones demasiado sensibles.
Mejorar la identificación de la fuerza de la ruptura y las divergencias bajista/bullista para evitar falsas rupturas.
Incorporar modelos de entrenamiento de datos históricos para ayudar a estimar los puntos de inflexión de tendencias de alta probabilidad y mejorar la precisión de la entrada.
Optimizar los modelos de posicionamiento para ajustar dinámicamente las asignaciones en función de las condiciones de riesgo.
En general, Noro
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 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.1", shorttitle = "Price Channel str 1.1", 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") usecol = input(true, defval = true, title = "Use color strategy") usersi = input(true, defval = true, title = "Use RSI strategy") lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage") 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 trend = low > center ? 1 : high < center ? -1 : trend[1] 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 //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Signals body = abs(close - open) abody = sma(body, 10) up1 = rbars and close > center and usecol dn1 = gbars and close < center and usecol up2 = fastrsi < 25 and close > center and usersi dn2 = fastrsi > 75 and close < center and usersi exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2) lot = strategy.equity / close * lev //Trading if up1 or up2 if strategy.position_size < 0 strategy.close_all() 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 or dn2 if strategy.position_size > 0 strategy.close_all() 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) or exit strategy.close_all()