Esta estrategia es un sistema de negociación de tendencia que combina el índice de fuerza relativa (RSI) con el promedio móvil (MA). El mecanismo principal utiliza el RSI para capturar los cambios en el impulso del precio al tiempo que incorpora un promedio móvil de 90 días como un filtro de tendencia, rastreando efectivamente las tendencias del mercado.
La estrategia se basa en varios componentes fundamentales:
Las señales de compra se activan cuando el RSI cruza por encima de 70, mientras que las señales de venta se generan cuando el RSI cae por debajo de 62.
Recomendaciones para el control de riesgos:
Optimización del sistema de señal:
Optimización de la gestión de la posición:
Optimización del control de riesgos:
Optimización del sistema de pruebas de retroceso:
La estrategia construye un sistema comercial relativamente completo mediante la combinación del indicador de impulso RSI con el filtro de tendencia MA. Sus fortalezas se encuentran en una fuerte adaptabilidad y un control integral del riesgo, pero se debe prestar atención a la sensibilidad de los parámetros y los cambios en el entorno del mercado.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple RSI Strategy - Adjustable Levels with Lookback Limit and 30-Day MA", overlay=true) // Parameters rsi_length = input.int(12, title="RSI Length", minval=1) // RSI period rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1, maxval=100) // Overbought level rsi_oversold = input.int(62, title="RSI Oversold Level", minval=1, maxval=100) // Oversold level ma_length = input.int(90, title="Moving Average Length", minval=1) // Moving Average period // Calculate lookback period (2000 days) lookback_period = 2500 start_date = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - lookback_period) // RSI Calculation rsi_value = ta.rsi(close, rsi_length) // 30-Day Moving Average Calculation ma_value = ta.sma(close, ma_length) // Buy Condition: Buy when RSI is above the overbought level long_condition = rsi_value > rsi_overbought // Sell Condition: Sell when RSI drops below the oversold level sell_condition = rsi_value < rsi_oversold // Check if current time is within the lookback period in_lookback_period = (time >= start_date) // Execute Buy with 100% equity if within lookback period if (long_condition and strategy.position_size == 0 and in_lookback_period) strategy.entry("Buy", strategy.long, qty=strategy.equity / close) if (sell_condition and strategy.position_size > 0) strategy.close("Buy") // Plot RSI on a separate chart for visualization hline(rsi_overbought, "Overbought", color=color.red) hline(rsi_oversold, "Oversold", color=color.green) plot(rsi_value, title="RSI", color=color.blue) // Plot the 30-Day Moving Average on the chart plot(ma_value, title="30-Day MA", color=color.orange, linewidth=2)