Esta estrategia es un sistema de negociación de superposición de indicadores de varios niveles basado en el índice de fortaleza relativa (RSI). Operando dentro de una ventana de negociación específica, identifica oportunidades comerciales a través de señales de sobrecompra y sobreventa de RSI, combinadas con un mecanismo de ajuste de posición dinámico que emplea un enfoque de entrada escalado durante movimientos adversos del mercado. La estrategia implementa la obtención de ganancias basadas en objetivos de precio de entrada promedio.
La estrategia se basa en los siguientes componentes fundamentales: 1. El cálculo del RSI utiliza 14 períodos estándar con el precio de cierre como datos fuente La ventana de negociación está controlada entre 2-4 horas, ajustable en función de las características del mercado 3. Señales de entrada basadas en el índice de variabilidad por debajo de los niveles de 30 (sobreventa) y por encima de los niveles de 70 (sobrecompra) 4. La construcción de posición incluye la posición inicial y los niveles de ajuste dinámico 5. El mecanismo de escala se activa cuando el precio se mueve negativamente en 1 punto 6. El beneficio se fija en 1,5 puntos del precio de entrada promedio
La estrategia forma un sistema de negociación relativamente completo a través de la combinación de indicadores de RSI y mecanismos de entrada escalados. Sus principales ventajas se encuentran en su mecanismo de filtrado de señales de varios niveles y enfoque flexible de gestión de posiciones, mientras que se debe prestar atención a los riesgos de mercado de tendencia y los problemas de optimización de parámetros. El rendimiento general de la estrategia se puede mejorar aún más mediante mejoras como la adición de filtros de tendencia y la optimización de mecanismos de stop loss.
/*backtest start: 2024-12-10 00:00:00 end: 2025-01-08 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("TonyM RSI", overlay=true) // Input Settings rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") startHour = input.int(2, "Start Hour", minval=0, maxval=23, group="Trading Window") endHour = input.int(4, "End Hour", minval=0, maxval=23, group="Trading Window") // RSI Calculation change = ta.change(rsiSourceInput) up = ta.rma(math.max(change, 0), rsiLengthInput) down = ta.rma(-math.min(change, 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // Time Filter inTradingWindow = (hour >= startHour and hour < endHour) // Strategy Settings buyLevel = 30 sellLevel = 70 scaleDistance = 1.0 // Distance in points to add to the position takeProfitPoints = 1.5 // Profit target from average price initialQty = 1 // Initial trade size scalingQty = 1 // Additional trade size for scaling // Trade Logic if inTradingWindow // Entry Logic if rsi <= buyLevel and strategy.position_size == 0 strategy.entry("Buy", strategy.long, qty=initialQty) if rsi >= sellLevel and strategy.position_size == 0 strategy.entry("Sell", strategy.short, qty=initialQty) // Scaling Logic if strategy.position_size > 0 and close <= strategy.position_avg_price - scaleDistance strategy.entry("Scale Buy", strategy.long, qty=scalingQty) if strategy.position_size < 0 and close >= strategy.position_avg_price + scaleDistance strategy.entry("Scale Sell", strategy.short, qty=scalingQty) // Exit Logic (based on average price) if strategy.position_size > 0 strategy.exit("Take Profit Long", "Buy", limit=strategy.position_avg_price + takeProfitPoints) if strategy.position_size < 0 strategy.exit("Take Profit Short", "Sell", limit=strategy.position_avg_price - takeProfitPoints) // Plot RSI plot(rsi, "RSI", color=color.blue, linewidth=1) rsiUpperBand = hline(70, "RSI Upper Band", color=color.red) rsiLowerBand = hline(30, "RSI Lower Band", color=color.green) fill(rsiUpperBand, rsiLowerBand, color=color.new(color.gray, 90))