Esta estrategia genera señales de negociación mediante el cálculo del cruce de los indicadores MACD y RSI. Produce señales de compra y venta cuando el RSI está sobrecomprado o sobrevendido y ocurre el cruce MACD. La estrategia combina las ventajas de dos tipos diferentes de indicadores, teniendo en cuenta tanto la tendencia de los precios como las situaciones de sobrecompra / sobreventa, mejorando así la efectividad de la estrategia.
La estrategia utiliza principalmente la combinación de los indicadores MACD y RSI para generar señales comerciales.
La estrategia primero calcula la línea rápida, la línea lenta y la línea de señal del MACD. Cuando la línea rápida es mayor que la línea lenta, se genera una señal de cruz dorada. Cuando la línea rápida es menor que la línea lenta, se genera una señal de cruz de muerte. Esto indica que la tendencia y el impulso del precio están cambiando.
Al mismo tiempo, la estrategia calcula el indicador RSI y establece líneas de sobrecompra y sobreventa. Cuando el RSI es inferior a la línea de sobreventa, indica sobreventa. Cuando el RSI es superior a la línea de sobrecompra, indica sobrecompra.
Cuando se produce una sobrecompra/superventa del RSI, la estrategia genera señales de compra cuando ocurre el cruce de oro del MACD y genera señales de venta cuando ocurre el cruce de muerte del MACD. Es decir, cuando la tendencia de precios se invierte, el indicador MACD se utiliza para capturar puntos de inflexión debido a su sensibilidad. El indicador RSI evita operaciones incorrectas cuando no ocurre una sobrecompra/superventa.
La estrategia combina las ventajas de los indicadores MACD y RSI para mejorar su eficacia:
El MACD puede capturar sensiblemente los cambios de precios, mientras que el RSI considera situaciones de sobrecompra/sobreventa, que se complementan entre sí.
La combinación de los dos indicadores puede filtrar algunas señales comerciales ruidosas y reducir las operaciones innecesarias.
El MACD mide la diferencia entre las medias móviles, mientras que el RSI mide la proporción de cambios de precios, los dos métodos pueden verificarse entre sí.
El MACD responde rápidamente a los cambios de precios, mientras que las divergencias de sobrecompra/sobreventa del RSI son obvias, un buen efecto combinado.
También existen ciertos riesgos en esta estrategia:
Tanto el MACD como el RSI son vulnerables a eventos repentinos, que pueden generar señales erróneas.
El efecto en las existencias individuales puede no ser ideal, se pueden considerar índices o carteras.
La satisfacción tanto del cruce MACD como del RSI sobrecomprado/sobrevendido puede perder algunas oportunidades.
La estrategia también puede optimizarse en los siguientes aspectos:
Optimizar los parámetros MACD y RSI para adaptarse a las diferentes variedades de operaciones.
Añadir una estrategia de stop loss para detener la pérdida a tiempo cuando las pérdidas alcanzan un cierto porcentaje.
Combinar con otros indicadores como las bandas de Bollinger y KDJ para establecer condiciones de señal de negociación más estrictas.
Ejecutar la estrategia en datos de alta frecuencia para utilizar las propiedades rápido / lento de MACD y mejorar el rendimiento de la estrategia.
De acuerdo con los resultados de las pruebas de retroceso, ajuste las líneas de RSI sobrecompradas/sobrevendidas para encontrar las mejores combinaciones de parámetros.
La estrategia de cruce del MACD y el RSI combina el seguimiento de tendencias y el juicio de sobrecompra / sobreventa, lo que puede capturar efectivamente los puntos de inversión de precios y mejorar el rendimiento de la estrategia.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 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)