El nombre de esta estrategia es
Cuando el indicador RSI muestra extremos y aparecen patrones de engulfing, creemos que es una oportunidad para establecer posiciones.
En primer lugar, fijamos los parámetros para el indicador RSI, incluyendo la duración del período de RSI (generalmente 9 o 14), el nivel de sobrecompra (generalmente 70) y el nivel de sobreventa (generalmente 30).
Luego, identificamos patrones de engullidos para determinar si una vela alcista o bajista grande ha engullido la vela anterior.
Después de eso, si el RSI muestra extremos sobrecomprados o sobrevendidos y aparece un engulfing alcista o bajista, se activan señales de compra o venta.
Esta estrategia combina el indicador de tendencia RSI y el indicador de patrón que engloba los patrones para juzgar de manera integral las tendencias del mercado, que tiene una mayor efectividad de confirmación en comparación con las estrategias de indicadores únicos, y puede filtrar las señales comerciales ruidosas de manera efectiva.
El indicador RSI juzga los estados de sobrecompra y sobreventa con mucha precisión y claridad, mientras que las características de precio-volumen implícitas en los patrones de engulfing pueden verificar aún más la fiabilidad de las inversiones de tendencia.
Esta estrategia puede aprovechar oportunamente las oportunidades de reversión derivadas de los extremos de sobrecompra y sobreventa, evitando al mismo tiempo pérdidas comerciales innecesarias durante las consolidaciones.
El mayor riesgo de esta estrategia es que la probabilidad de que el indicador RSI y los patrones de engulfing muestren señales incorrectas no es baja. El indicador RSI es propenso a distorsiones y divergencias.
Además, la posibilidad de oscilación y consolidación no puede descartarse por completo cuando aparecen señales de reversión. El mercado puede tener retrocesos o incluso reversiones a corto plazo después de que se establezcan posiciones.
Para reducir los riesgos, necesitamos optimizar los parámetros del indicador RSI para encontrar la mejor combinación de parámetros. Además, también es muy importante seleccionar instrumentos comerciales con una fuerte representación y liquidez.
Esta estrategia puede optimizarse aún más en los siguientes aspectos:
Incorporar más indicadores como KDJ y MACD para formar un sistema de verificación de múltiples indicadores para mejorar la precisión de la señal.
Considerar factores como la liquidez, la volatilidad y el coste de transacción de los instrumentos de negociación, y seleccionar los óptimos para reducir el coste de negociación y los riesgos de deslizamiento.
Utilice métodos de aprendizaje automático para entrenar y optimizar parámetros.
Añadir estrategias de stop loss y proteger las ganancias a través de movimiento de stop loss, MA stop loss, etc.
Esta estrategia utiliza los puntos fuertes del indicador RSI y los patrones de engulfing, y diseña un sistema de trading cuantitativo que tiene en cuenta tanto el juicio de tendencia como la verificación de características. Puede capturar efectivamente las oportunidades de reversión mientras tiene una alta confiabilidad. A través de la optimización continua, esta estrategia puede convertirse en una estrategia cuantitativa estable y confiable.
/*backtest start: 2023-12-03 00:00:00 end: 2024-01-02 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Lesson 6", shorttitle="RSI Swing Signals", overlay=true) // Get user input rsiSource = input(title="RSI Source", type=input.source, defval=close) rsiLength = input(title="RSI Length", type=input.integer, defval=9) rsiOverbought = input(title="RSI Overbought Level", type=input.integer, defval=60) rsiOversold = input(title="RSI Oversold Level", type=input.integer, defval=25) // Get RSI value rsiValue = rsi(rsiSource, rsiLength) rsiOB = rsiValue >= rsiOverbought rsiOS = rsiValue <= rsiOversold // Identify engulfing candles bullishEC = close > open[1] and close[1] < open[1] bearishEC = close < open[1] and close[1] > open[1] // Define entry and exit conditions longCondition = (rsiOS or rsiOS[1]) and bullishEC shortCondition = (rsiOB or rsiOB[1]) and bearishEC // Plot signals to chart plotshape(longCondition, title="Long", location=location.belowbar, color=color.green, transp=0, style=shape.triangleup, text="Long") plotshape(shortCondition, title="Short", location=location.abovebar, color=color.red, transp=0, style=shape.triangledown, text="Short") // Strategy entry and exit strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Define exit conditions longExitCondition = crossover(rsiValue, 60) // You can customize this exit condition shortExitCondition = crossunder(rsiValue, 40) // You can customize this exit condition // Strategy exit strategy.exit("ExitLong", from_entry="Long", when=longExitCondition) strategy.exit("ExitShort", from_entry="Short", when=shortExitCondition) // Send out an alert if this candle meets our conditions alertcondition(longCondition or shortCondition, title="RSI Trade Alert!", message="RSI Swing Signal for XXX")