Esta estrategia utiliza el índice dinámico de comerciantes (TDI) como el principal indicador técnico, combinado con promedios móviles en diferentes marcos de tiempo para generar señales comerciales.
La estrategia primero calcula el RSI de cierre con un período de 13. Luego calcula el promedio móvil simple de 34 períodos del RSI, y utiliza 1.6185 veces la desviación estándar de 34 períodos del RSI como las bandas superior e inferior. La banda superior es el promedio móvil más el desplazamiento, y la banda inferior es el promedio móvil menos el desplazamiento. El promedio móvil es la banda media.
Después de eso, calcula el MA rápido del RSI con un período de 2, y el MA lento del RSI con un período de 7. Luego recupera los valores históricos de estos indicadores de un marco de tiempo más alto. Cuando el MA rápido cruza por debajo del MA lento, se genera una señal de compra. Cuando el MA rápido cruza por encima del MA lento, se genera una señal de venta.
Esta estrategia utiliza la característica de reversión media del RSI y combina indicadores de impulso para implementar el comercio de reversión. Las bandas superior e inferior del RSI reflejan las condiciones de sobrecompra y sobreventa, mientras que la banda media refleja el nivel promedio de precios. El cruce de los MAs rápidos y lentos refleja el cambio de impulso y las oportunidades de reversión.
Específicamente, las bandas del RSI establecen umbrales razonables de sobrecompra y sobreventa para detectar rápidamente anomalías. La banda media capta el nivel de precio de equilibrio. El MA rápido filtra el ruido a corto plazo y el MA lento determina la tendencia a mediano plazo. Trabajando juntos, pueden identificar efectivamente oportunidades de reversión. Además, la combinación de indicadores en diferentes marcos de tiempo permite que la estrategia se confirme en múltiples horizontes de tiempo, reduciendo el riesgo de señales falsas.
Esta estrategia se basa principalmente en la reversión media, que tiene riesgos de tiempo inherentes. Se podrían producir pérdidas consecutivas si el mercado sufre una expansión irracional prolongada, como una compresión corta. Además, no establecer adecuadamente los MAs rápidos y lentos puede causar oportunidades de reversión perdidas o señales falsas.
Para controlar los riesgos anteriores, es aconsejable ajustar razonablemente los períodos de MA o agregar mecanismos de stop loss. Cuando el mercado entra en un régimen irracional, los tamaños de las posiciones deben reducirse o dejarse de operar por completo.
La estrategia se puede optimizar en los siguientes aspectos:
Prueba los períodos de RSI de diferentes longitudes para encontrar ajustes más adecuados para las condiciones actuales del mercado.
Optimizar las longitudes de los MA rápidos y lentos para equilibrar las reversiones de captura y filtrar el ruido.
Se incluyen las pérdidas de detención basadas en la volatilidad para controlar el descenso máximo.
Trate de añadir otros factores como el cambio de volumen en la lógica de entrada para mejorar la precisión.
Prueba el efecto de reutilizar el mismo conjunto de señales comerciales en múltiples plazos.
Desarrollar mecanismos de optimización adaptativa para el ajuste de parámetros dinámicos.
El marco general de esta estrategia de reversión del RSI es razonable con una lógica clara e interpretable. Tiene espacio personalizable y potencial de optimización. Con el ajuste adecuado de parámetros y control de riesgos, su capacidad para capturar reversiones es prometedora. El siguiente paso es optimizar aún más la estrategia a través de más backtesting y ajuste de parámetros, para mejorar su robustez y rentabilidad.
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TDI - Traders Dynamic Index [Mehdi]", shorttitle="TDIMEHDI") rsiPeriod = input(13, minval = 1, title = "RSI Period") bandLength = input(34, minval = 1, title = "Band Length") lengthrsipl = input(7, minval = 0, title = "Fast MA on RSI") lengthtradesl = input(2, minval = 1, title = "Slow MA on RSI") p1 = input("15", title = "Signal Timeframe") src = close // Source of Calculations (Close of Bar) r = rsi(src, rsiPeriod) // RSI of Close ma = sma(r, bandLength) // Moving Average of RSI [current] offs = (1.6185 * stdev(r, bandLength)) // Offset up = ma + offs // Upper Bands dn = ma - offs // Lower Bands mid = (up + dn) / 2 // Average of Upper and Lower Bands fastMA = sma(r, lengthrsipl) // Moving Average of RSI 2 bars back slowMA = sma(r, lengthtradesl) // Moving Average of RSI 7 bars back hline(20) // ExtremelyOversold hline(30) // Oversold hline(50) // Midline hline(70) // Overbought hline(80) // ExtremelyOverbought up1 = request.security(syminfo.tickerid, p1, up) dn1 = request.security(syminfo.tickerid, p1, dn) mid1 = request.security(syminfo.tickerid, p1, mid) slowMA1 = request.security(syminfo.tickerid, p1, slowMA) fastMA1 = request.security(syminfo.tickerid, p1, fastMA) plot(up1, "Upper Band", color = #3286c3, linewidth = 2) // Upper Band plot(dn1, "Lower Band", color = #3286c3, linewidth = 2) // Lower Band plot(mid1, "Middle of Bands", color = yellow, linewidth = 2) // Middle of Bands plot(slowMA1, "Slow MA", color=green, linewidth=2) // Plot Slow MA plot(fastMA1, "Fast MA", color=red, linewidth=1) // Plot Fast MA if (crossover(slowMA1, fastMA1)) strategy.entry("Buy", strategy.long, comment="Buy") if (crossunder(slowMA1, fastMA1)) strategy.entry("Sell", strategy.short, comment="Sell")