
La estrategia está basada en un gráfico de ciclo de tiempo de 30 minutos, utiliza el índice de fuerza relativa (RSI) como indicador técnico central, y está estrictamente limitada a la ejecución de operaciones en el horario de negociación normal de los Estados Unidos (08:30-15:00, de lunes a viernes). Cuando el RSI sube por encima del umbral de venta, el sistema ingresa automáticamente en posiciones de más de una cabeza; cuando el RSI baja por encima del umbral de compra, el sistema ingresa automáticamente en posiciones de más de una cabeza.
El principio central de la estrategia se basa en la dinámica de la volatilidad de los índices relativamente fuertes (RSI) y en un riguroso mecanismo de filtración de períodos de negociación:
Generación de señales RSILa estrategia utiliza el indicador RSI estándar, con un ciclo predeterminado de 14, y puede personalizar los umbrales de sobrecompra (70%) y sobreventa (30%). Se genera una señal de entrada mediante la supervisión del RSI y la intersección de estos umbrales.ta.crossover(vrsi, overSold)Se utiliza para detectar que el RSI ha cruzado el umbral de venta por encima de la baja, lo que desencadena una entrada múltiple.ta.crossunder(vrsi, overBought)Se utiliza para detectar que el RSI ha cruzado el umbral de compra hacia abajo, lo que desencadena una entrada en blanco.
Sistema de filtrado de tiempoLa estrategia implementa un mecanismo de control de horario de negociación preciso que solo ejecuta operaciones durante el horario de negociación normal de los Estados Unidos (8:30 a 15:00 hora central, de lunes a viernes). Esto se logra mediante la combinación de las siguientes condiciones:
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.fridayMecanismo de cierre obligatorio: Para evitar el riesgo de la noche a la mañana, la estrategia obliga a cerrar todas las posiciones a las 15:00 horas de cada día de negociación. El código para activar la orden de cierre de posición mediante la comprobación de si la hora actual ha alcanzado o superado la hora de cierre:strategy.close_all(comment="Close All by 15:00 CT")。
Ayuda visualLa estrategia ofrece un colorado de fondo opcional, que muestra un fondo verde cuando se tiene una posición de más de un título, y un fondo rojo cuando se tiene una posición en blanco, lo que mejora la percepción intuitiva del estado de la operación.
Al analizar el código de la estrategia, se pueden resumir las siguientes ventajas destacadas:
Enfoque en el comercio intradiarioLa estrategia evita completamente el riesgo nocturno, reduciendo el riesgo de brecha y el riesgo de volatilidad que pueden enfrentar las posiciones durante la noche, al limitar el tiempo de negociación y el mecanismo de cierre obligatorio.
Adaptarse al ritmo del mercadoEl RSI, como un indicador de reversión, es capaz de capturar de manera efectiva las oportunidades de reversión de precios en el mercado de sobrecompra y sobreventa, especialmente adecuado para capturar las fluctuaciones de precios a corto plazo en el comercio intradiario.
Ajustabilidad de parámetrosLa estrategia proporciona varios parámetros personalizables, incluyendo la longitud del ciclo RSI, el límite de sobreventa y sobreventa, etc., que permiten a los operadores ajustar de manera óptima según las diferentes condiciones del mercado y las preferencias de riesgo personales.
La respuesta visual es clara.La función de color de fondo proporciona una visualización intuitiva del estado de la posición, lo que permite a los operadores conocer a primera vista la posición actual.
Código simple y eficiente: estrategia para lograr una lógica clara, una estructura de código simplificada, una carga computacional baja, adecuada para la ejecución en tiempo real, sin causar retrasos en el sistema o problemas de rendimiento.
El rendimiento de la detección es estable.Según los datos de retroalimentación del marco de tiempo de 30 minutos del contrato de NQ de junio de 2025, la estrategia muestra un alto factor de ganancia (4,61) y una tasa de victoria aceptable (el 57,1%) y un control de retirada máxima dentro de un rango razonable (el 0,22%).
A pesar de las ventajas de esta estrategia, existen los siguientes riesgos potenciales:
La frecuencia de la señal es limitada.La señal de cruce RSI puede ser relativamente escasa durante el período de negociación del día, especialmente cuando la tendencia del mercado es clara, lo que puede conducir a una falta de oportunidades de negociación que afecte a los ingresos generales. Solución: Se puede considerar agregar indicadores complementarios o ajustar los parámetros RSI para aumentar moderadamente la frecuencia de la señal.
Riesgo de una falsa brechaLos indicadores RSI pueden generar falsas señales de ruptura, especialmente cuando el mercado fluctúa fuertemente pero carece de una dirección clara. Solución: Se puede agregar un indicador de confirmación o establecer condiciones de filtrado adicionales, como la confirmación de volumen de transacción o el filtro de dirección de la tendencia.
Ajustes de zona horaria sensiblesLa estrategia depende de la configuración correcta de la zona horaria, y la configuración incorrecta de la zona horaria puede hacer que la función de filtración de la hora de negociación falle. Solución: Verifique y verifique cuidadosamente la configuración de la zona horaria antes del despliegue real para asegurarse de que coincida exactamente con la hora de negociación del mercado objetivo.
La falta de un mecanismo de detención de pérdidas: La estrategia actual no tiene una función de parada dinámica, por lo que puede tener grandes pérdidas en condiciones extremas de mercado. Solución: Implementar un mecanismo de parada basado en la volatilidad o en un número fijo de puntos, limitando la pérdida máxima de una sola operación.
Depende del tiempo de cierre fijoEl cierre forzoso a las 15:00 puede causar la pérdida de una oportunidad potencial de reversión antes del cierre, o una salida prematura en una tendencia favorable. Solución: Se puede considerar implementar una estrategia de cierre más flexible, como decidir si la posición está cerrada o no en función del estado de la tendencia de cola.
Basado en un análisis profundo del código de la estrategia, las siguientes son algunas direcciones de optimización posibles:
El RSI está a la baja.: cambiar el umbral fijo de sobreventa por un umbral que se ajuste dinámicamente en función de la volatilidad histórica o ATR para adaptarse a las características de la volatilidad en diferentes entornos de mercado. De esta manera, se puede usar un umbral más amplio en un mercado de alta volatilidad y un umbral más estrecho en un mercado de baja volatilidad, mejorando la calidad de la señal.
Añadir filtro de tendenciasIntroducción de indicadores de tendencia (como las medias móviles, MACD o ADX) como filtros de dirección, abrir posiciones solo en la dirección de la tendencia principal, evitar el comercio frecuente en el mercado de liquidación y reducir las señales falsas.
Implementación de la lógica parcial de la posición cerradaA diferencia de los actuales mecanismos de posición cerrada total, se puede implementar una estrategia de posición cerrada por lotes, como cerrar una parte de la posición cuando se alcanza un objetivo de ganancias determinado y conservar una parte de la posición para capturar una tendencia más grande.
Adición a las posiciones de ajuste de la volatilidadAjuste dinámico del tamaño de la posición en función de la volatilidad del mercado (por ejemplo, ATR), aumente las posiciones en los mercados de baja volatilidad y reduzca las posiciones en los mercados de alta volatilidad, optimice el riesgo-rendimiento.
Confirmación de tráfico integrado: Basado en la generación de señales RSI, aumenta la condición de confirmación de volumen de transacciones y ejecuta las transacciones solo si el volumen de transacciones es compatible, lo que aumenta la fiabilidad de la señal.
Implementación de un mecanismo inteligente de detención de pérdidasIntroducción de un mecanismo inteligente de stop loss basado en soporte de resistencia o rango de fluctuación reciente, en lugar de una simple posición cerrada a tiempo, para controlar el riesgo de manera más efectiva.
La estrategia de cruce de índices dinámicos de tiempo de negociación relativamente débil es un sistema de negociación intradiario de diseño ingenioso que permite una lógica de negociación eficiente para los futuros de los índices de valores mediante la combinación de indicadores técnicos RSI y un filtro de tiempo de negociación estricto. Las ventajas centrales de la estrategia consisten en evitar el riesgo nocturno, capturar las oportunidades de reversión de sobreventa y sobreventa durante el día y proporcionar una clara retroalimentación visual. A pesar de los riesgos potenciales, como la frecuencia de la señal limitada y la falta de paradas dinámicas, la implementación de medidas como la valoración dinámica del RSI, el aumento de la filtración de tendencias y la optimización de la confirmación de la combinación de intercambiadores puede mejorar significativamente la estabilidad y la rentabilidad de la estrategia.
/*backtest
start: 2024-05-27 00:00:00
end: 2024-12-22 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("Futures Trading Hours RSI Strategy", overlay=true)
// ——— INPUTS ——————————————————————————————
length = input(14, "RSI Length")
overSold = input(30, "RSI Oversold Level")
overBought = input(70, "RSI Overbought Level")
price = close
vrsi = ta.rsi(price, length)
// ——— TIME FILTER (CENTRAL TIME) ——————————————————
startHour = 8
startMinute = 30
endHour = 15
endMinute = 0
// Offset in hours from UTC to CST (not accounting for DST)
var timezoneOffset = 0
adjustedTime = time + (timezoneOffset * 60 * 60 * 1000)
adjustedHour = hour(adjustedTime)
adjustedMinute = minute(adjustedTime)
// Only trade Monday (1) through Friday (5) in the chart’s default time zone.
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.friday
// Determine if the current bar is within the session (08:30–15:00 CT)
inSession = (adjustedHour > startHour or (adjustedHour == startHour and adjustedMinute >= startMinute)) and (adjustedHour < endHour or (adjustedHour == endHour and adjustedMinute < endMinute))
// ——— SIGNALS ————————————————————————————————
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)
// ——— ENTRY LOGIC ————————————————————————————
if not na(vrsi) and inSession and weekdayFilter
if co
strategy.entry("RsiLE", strategy.long, comment="RsiLE")
if cu
strategy.entry("RsiSE", strategy.short, comment="RsiSE")
// ——— EXIT ALL ORDERS AT/AFTER 15:00 CT ——————————————————
// Closes any open positions once the clock hits 15:00 CT or later on weekdays
if weekdayFilter and (adjustedHour > endHour or (adjustedHour == endHour and adjustedMinute >= endMinute))
strategy.close_all(comment="Close All by 15:00 CT")
// ——— (Optional) Plot ————————————————————————————
//plot(strategy.equity, title="Equity", color=color.red, linewidth=2, style=plot.style_areabr)
// ——— BACKGROUND SHADING WHEN POSITION IS OPEN ——————————————————
longOpen = strategy.position_size > 0
shortOpen = strategy.position_size < 0
bgcolor(longOpen ? color.new(color.green, 90) : na, title="Long Position Shading")
bgcolor(shortOpen ? color.new(color.red, 90) : na, title="Short Position Shading")