Esta estrategia combina los niveles dinámicos de soporte/resistencia y el indicador de índice de fuerza relativa (RSI). Establece umbrales de sobrecompra/sobreventa para el RSI y genera señales de compra/venta cuando el precio rompe los niveles dinámicos de soporte/resistencia mientras el RSI no está en el área de sobrecompra/sobreventa.
1. Apoyo/resistencia dinámico
Utilice la función de seguridad para obtener el precio de cierre como niveles dinámicos de soporte/resistencia.
2. Indicador del RSI
Calcular la ganancia promedio y la pérdida promedio durante un determinado período para generar valores del RSI y determinar si el RSI alcanza el área de sobrecompra/sobreventa.
3. Señales comerciales
Cuando el precio rompe los niveles dinámicos, si el RSI no está en el área de sobrecompra/sobreventa, se generan señales de compra/venta.
4. Señales de salida
Cierre posiciones cuando el precio vuelva a caer al nivel dinámico, o cuando el RSI regrese al rango normal.
Utilice soporte/resistencia dinámico para determinar la dirección de la tendencia para una mayor tasa de ganancia.
El RSI filtra las fugas falsas y evita las entradas falsas.
La combinación de tendencia e indicador hace que la estrategia sea adaptable a las diferentes condiciones del mercado.
Las reglas simples y claras hacen que sea fácil de aplicar.
Las pruebas múltiples de niveles dinámicos pueden generar señales falsas.
Solo RSI puede causar un error de juicio. Añadir otros indicadores para el filtrado de combinación.
Las operaciones frecuentes en el mercado de rango limitado conducen a costes más altos.
La configuración incorrecta de parámetros conduce a señales faltantes o falsas.
Utilice el aprendizaje automático para optimizar automáticamente los parámetros de RSI.
Agregue una estrategia de stop loss / taking profit para asegurar las ganancias y reducir las pérdidas.
Incorporar más indicadores para el filtrado combinado para mejorar la estabilidad.
Se añadirá el indicador de volatilidad al tamaño de posición más bajo cuando la volatilidad sea baja.
Optimizar el algoritmo de posicionamiento para ajustar dinámicamente las posiciones para diferentes entornos de mercado.
Esta estrategia combina el juicio de tendencia y el filtrado de indicadores para identificar efectivamente la inversión de tendencia alrededor de los niveles clave mientras se controlan los riesgos.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Levels+RSI Strategy v1.0", shorttitle = "Levels+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //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") src = input(ohlc4, "Source") ap = input(true, defval = true, title = "antipila") cf = input(true, defval = true, title = "color filter") rsiperiod = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI Period") rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit") 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") //Level level = request.security(syminfo.tickerid, tf, src[1]) plot(level, linewidth = 3, color = silver) //RSI uprsi = rma(max(change(close), 0), rsiperiod) dnrsi = rma(-min(change(close), 0), rsiperiod) rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi)) //Level Signals ls = close > level and ap == false ? true : low > level ? true : false up1 = strategy.position_size == 0 and ls and (close < open or cf == false) exit1 = close < level and ap == false ? true : high < level ? true : false //RSI Signal up2 = rsi < rsilimit and (close < open or cf == false) exit2 = rsi > rsilimit and ls == false //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if up1 or up2 strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if (exit1 and rsi > rsilimit) or exit2 strategy.close_all()