Esta estrategia combina el indicador de convergencia media móvil (MACD) y el indicador de fuerza relativa (RSI) para establecer condiciones de compra y venta para aprovechar las oportunidades de reversión.
Calcule el indicador MACD, incluyendo la línea rápida, la línea lenta y la línea de señal.
El indicador RSI puede determinar las condiciones de sobrecompra y sobreventa.
Combine las señales cruzadas del MACD y las lecturas de sobrecompra/sobreventa del RSI para formular las condiciones de compra y venta:
Condición de compra: La línea rápida del MACD cruza por encima de la línea lenta (cruz dorada) mientras que el indicador RSI acaba de caer desde la zona de sobrecompra, lo que indica una reversión.
Condición de venta: la línea rápida del MACD cruza por debajo de la línea lenta (cruz de muerte) mientras que el indicador RSI entra en la zona de sobrecompra, lo que indica una reversión.
Esto permite utilizar los puntos fuertes de ambos indicadores poderosos para comprar y vender con precisión en los puntos de reversión.
El MACD puede identificar tendencias y oportunidades comerciales. El RSI mide las condiciones de sobrecompra/sobreventa. Usar ambos mejora la precisión.
El uso de dos indicadores filtra las señales falsas que pueden ocurrir con un solo indicador.
El MACD combinado con el RSI permite comprar antes de las reversiones y vender después de las reversiones para capturar los giros.
La estrategia tiene una frecuencia moderada, sigue las tendencias y detecta las reversiones de manera flexible.
El MACD puede dar señales falsas en mercados agitados. Los parámetros del RSI necesitan optimización para evitar señales falsas.
La volatilidad a corto plazo puede detener las posiciones, causando pérdidas.
Los parámetros RSI y MACD necesitan optimización para evitar demasiadas o muy pocas señales.
La gestión estricta del riesgo y del dinero es crucial para el comercio en vivo.
Optimizar los parámetros de línea rápida/lenta del MACD para obtener las mejores combinaciones.
Optimizar los umbrales de sobrecompra/sobreventa del RSI para evitar señales falsas.
Añadir un stop loss para controlar el riesgo de una sola operación.
Considere agregar filtros como Bollinger Bands o KDJ para una confirmación adicional.
Prueba varias estrategias de entrada/salida como las rupturas o el seguimiento de tendencias.
Esta estrategia combina los puntos fuertes del MACD y el RSI para las reversiones. Pero el ajuste de parámetros, el control de riesgos y la gestión del dinero son clave para el rendimiento en vivo. La flexibilidad lo hace adecuado para diferentes condiciones de mercado y vale la pena probar y rastrear en vivo.
/*backtest start: 2022-11-13 00:00:00 end: 2023-11-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // © sabirt strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI') //MACD Settings fastMA = input.int(title='Fast moving average', defval=12, minval=1) slowMA = input.int(title='Slow moving average', defval=26, minval=1) signalLength = input.int(9, minval=1) //RSI settings RSIOverSold = input.int(35, minval=1) RSIOverBought = input.int(80, minval=1) src = close len = input.int(14, minval=1, title='Length') up = ta.rma(math.max(ta.change(src), 0), len) down = ta.rma(-math.min(ta.change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought [currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength) [prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength) signal = ta.ema(currMacd, signalLength) avg_1 = math.avg(currMacd, signal) crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na avg_2 = math.avg(currMacd, signal) crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold) strategy.close('buy', when=crossoverBear and wasOverbought)