Estrategia de negociación cuantitativa que combina el RSI, MACD y soporte/resistencia

El autor:¿ Qué pasa?, Fecha: 2024-01-05 16:24:58
Las etiquetas:

img

Resumen general

Esta estrategia se basa en los indicadores RSI y MACD, combinados con los niveles de soporte/resistencia para el juicio de señales comerciales. Su nombre es Panda Sticking Out Tongue estrategia. La estrategia utiliza el indicador RSI para determinar los niveles de sobrecompra/sobreventa, el indicador MACD para determinar tendencias alcistas/bajas, y dibuja los niveles de soporte/resistencia basados en los precios más altos y más bajos en los últimos 100 períodos, generando señales de compra cerca de soporte y señales de venta cerca de resistencia. Pertenece a una estrategia común de seguimiento de tendencias.

Estrategia lógica

La estrategia se basa principalmente en dos indicadores: RSI y MACD. El indicador RSI juzga los estados de sobrecompra/sobreventa, mientras que el indicador MACD determina los estados de tendencia alcista/bajista. Primero calcula el valor del RSI de 14 períodos, y establece el umbral de sobrecompra como 70 y el umbral de sobreventa como 30. Luego calcula el valor del MACD basado en la línea rápida de 12 días, la línea lenta de 26 días y la línea de señal de 9 días. RSI por debajo de 30 se considera sobreventa; RSI por encima de 70 se considera sobreventa.

Además, la estrategia también calcula los precios más altos y más bajos en los últimos 100 períodos como los niveles de soporte / resistencia. Cuando se activa una señal de compra, el precio debe estar cerca del nivel de soporte, es decir, dentro del 1% del nivel de soporte, para emitir realmente una orden de compra. Del mismo modo, cuando se activa una señal de venta, el precio debe estar dentro del 1% por debajo del nivel de resistencia para emitir realmente una orden de venta.

Ventajas de la estrategia

La estrategia combina el análisis de tendencias y la detección de niveles de sobrecompra / sobreventa para evitar señales falsas que dependen solo de un solo indicador. Al introducir el filtro de soporte / resistencia, puede reducir las operaciones incorrectas debido a rebotes cerca de los niveles clave de S / R. La combinación de MACD y RSI puede identificar con precisión los movimientos de precios y los estados OB / OS. En comparación con las estrategias simples de promedio móvil, esta estrategia puede capturar las tendencias de precios a largo plazo de manera más flexible.

Riesgos de la estrategia

Los principales riesgos de esta estrategia incluyen:

  1. Puede perder la mayoría de las ganancias en tendencias fuertes, ya que tiende a entrar después de que finalice la reversión.

  2. Los parámetros de RSI y MACD pueden indicar señales erróneas si no se establecen adecuadamente.

  3. La lógica de detección S/R simple puede sobreestimar o subestimar las zonas S/R reales.

  4. Falta de un mecanismo de stop loss. Incapaz de controlar las pérdidas de manera efectiva en condiciones extremas de mercado.

Para hacer frente a estos riesgos, se pueden utilizar métodos como el MACD adaptativo, el ajuste optimizado de los parámetros del RSI, la mejora de la identificación S/R, el modelado del régimen de mercado, etc., para mejorar la estrategia.

Direcciones para mejorar

La estrategia puede reforzarse a partir de las siguientes dimensiones:

  1. Introducir mecanismos de stop loss, por ejemplo CANVAS stop loss

  2. Utilice el MACD adaptativo para ajustar los parámetros dinámicos

  3. Introducir el reconocimiento de patrones de precios para una identificación S/R más científica

  4. Incorporar más datos para establecer una lógica de detección del estado del mercado para utilizar diferentes parámetros de manera adaptativa

  5. Utilice algoritmos de aprendizaje automático para optimizar la estrategia de extremo a extremo

A través de estas mejoras, podemos reducir aún más la reducción y mejorar la estabilidad de la estrategia.

Conclusión

La estrategia integra los indicadores RSI y MACD para determinar los estados OB/OS, y el comercio alrededor de los niveles de soporte/resistencia, lo que representa un enfoque de seguimiento de tendencias. Al incorporar el filtro de soporte/resistencia, el riesgo se reduce. La ventaja radica en señales estables y riesgo controlable adecuado para la tenencia a largo plazo.


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI + MACD with Support and Resistance", shorttitle="RSI_MACD_SR", overlay=true)

// Input for RSI and MACD values
rsiOverbought = input(70, title="RSI Overbought Threshold")
rsiOversold = input(30, title="RSI Oversold Threshold")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalSmoothing = input(9, title="MACD Signal Smoothing")

// Calculating RSI and MACD
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)

// Support and Resistance
support = ta.lowest(100)
resistance = ta.highest(100)

// Drawing support and resistance lines
// line.new(x1=bar_index[0], y1=support, x2=bar_index[-1], y2=support, color=color.green, width=1)
// line.new(x1=bar_index[0], y1=resistance, x2=bar_index[-1], y2=resistance, color=color.red, width=1)

// Buy Condition: If RSI is oversold and MACD line crosses above the signal line
// Additionally, check if price is near the support line
longCondition = ta.crossover(macdLine, signalLine) and rsiValue < rsiOversold and (close - support) < (close * 0.01)
strategy.entry("Long", strategy.long, when=longCondition, comment="Buy")

// Sell Condition: If RSI is overbought and MACD line crosses below the signal line
// Additionally, check if price is near the resistance line
shortCondition = ta.crossunder(macdLine, signalLine) and rsiValue > rsiOverbought and (resistance - close) < (close * 0.01)
strategy.entry("Short", strategy.short, when=shortCondition, comment="Sell")

// Plot values on the chart for visualization
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

Más.