Estrategia de negociación basada en las señales cruzadas MACD y RSI

El autor:¿ Qué pasa?, Fecha: 2023-12-18 17:19:03
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el indicador MACD para juzgar las tendencias del mercado e identificar puntos de negociación potenciales, al tiempo que combina el indicador RSI para confirmar las condiciones de sobrecompra / sobreventa. Las señales de negociación solo se generan cuando el MACD da una señal de compra / venta y el RSI confirma simultáneamente que el mercado está sobrevendido / sobrecomprado. Esto puede filtrar eficazmente las señales falsas y mejorar la estabilidad de la estrategia.

Principios de estrategia

Calculación del indicador MACD

El indicador MACD consiste en la diferencia entre la EMA rápida y la EMA lenta, que refleja la diferencia entre las tendencias de precios promedio a corto y largo plazo.

Cuando la línea rápida cruza por encima de la línea lenta, es una señal de cruz dorada que indica una tendencia alcista.

Calculación del indicador RSI

El indicador RSI refleja las condiciones de sobrecompra/sobreventa en el mercado.

RSI por debajo de 30 sugiere que el activo fue sobrevendido ya que los compradores superaron a los vendedores durante un período prolongado.

RSI por encima de 70 sugiere que el activo estaba sobreabastecido ya que la presión de venta superó la presión de compra en la línea de tiempo rastreada.

Las lecturas por debajo de 30 indican condiciones de sobreventa, mientras que las lecturas por encima de 70 indican condiciones de sobrecompra.

Señales de estrategia

Esta estrategia utiliza el RSI para filtrar las señales, generando solo señales comerciales reales cuando el MACD da una señal y el RSI confirma simultáneamente los extremos de sobrecompra / sobreventa.

Específicamente, cuando el MACD genera una cruz de oro, si el RSI <= 34 al mismo tiempo, confirmando un mercado sobreventa, se genera una señal de compra.

Este mecanismo de doble confirmación puede filtrar muchas señales comerciales poco confiables, mejorando así la estabilidad y fiabilidad de la estrategia.

Análisis de ventajas

El filtro de indicadores dobles mejora la fiabilidad de la señal

Esta estrategia combina los indicadores MACD y RSI para una doble confirmación, lo que puede reducir eficazmente la interferencia de las señales falsas y filtrar algunas señales comerciales poco confiables, mejorando así la fiabilidad y estabilidad de la señal.

Un juicio claro de la tendencia

Como indicador de precio y volumen, el MACD puede determinar claramente las tendencias alcistas y bajistas del mercado. Combinado con el juicio sobrecomprado/sobrevendido del RSI, puede capturar con precisión los puntos de inversión importantes en el mercado. Las señales de entrada y salida son claras.

Espacio de optimización de parámetros grandes

Los parámetros de los componentes MACD y RSI de esta estrategia se pueden optimizar y ajustar para adaptarse a diferentes ciclos e instrumentos comerciales.

Fácil de entender y aplicar

El MACD, RSI y otros indicadores utilizados en esta estrategia son indicadores técnicos muy típicos y comúnmente utilizados que son fáciles de entender.

Análisis de riesgos

Puede perderse algunas oportunidades comerciales

Esta estrategia adopta un enfoque de doble confirmación relativamente conservador que, al filtrar las señales falsas, puede causar algunas oportunidades comerciales perdidas que podrían haber dado lugar a ganancias basadas en un solo indicador.

  • Solución: Ampliar adecuadamente el rango de umbral del RSI para reducir el rigor de la confirmación y permitir que la estrategia capture más oportunidades comerciales.

Pérdida durante movimientos extremos del mercado

En el caso de una volatilidad extrema del mercado, tanto el indicador MACD como el RSI pueden tardar en emitir juicios, lo que conduce a señales comerciales incorrectas generadas por la estrategia y a las pérdidas incurridas.

  • Solución: Incorporar mecanismos de stop loss para evitar pérdidas excesivas en operaciones individuales. Ajustar los parámetros para crear una sensibilidad adecuada de los indicadores a los movimientos extremos del mercado.

El rendimiento depende en gran medida de la configuración de parámetros

El rendimiento de esta estrategia depende en gran medida de la calidad del MACD, el RSI y otras configuraciones de parámetros.

  • Solución: Optimice las combinaciones de parámetros a través de pruebas de retroceso para localizar los parámetros óptimos.

Direcciones de optimización

Incorporar mecanismos de stop loss para controlar los riesgos

Las reglas de stop loss basadas en precios o indicadores pueden aplicarse a las posiciones de salida con un umbral de pérdida admisible predefinido, limitando efectivamente las pérdidas en operaciones individuales.

Ajustar los parámetros a las características del mercado

Optimización continua de parámetros clave como los períodos de línea rápida/lenta del MACD y los umbrales de sobrecompra/sobreventa del RSI para alinearlos con la evolución de las estructuras del ciclo y las peculiaridades de los diferentes instrumentos de negociación.

Prueba de activos para descubrir el mejor ajuste

Realice pruebas de retroceso en índices de acciones, criptomonedas, pares de divisas, materias primas y otros activos para descubrir qué mercado se adapta mejor a las características de la estrategia.

Incorporar indicadores adicionales para la confirmación multidimensional

Los indicadores como el estocástico, el OBV, el CCI, etc. se pueden agregar además de los componentes MACD y RSI para una mayor precisión de confirmación a través de un enfoque de filtrado de señales multidimensional.

Conclusión

Esta estrategia determina las tendencias del mercado y las señales comerciales basadas en el indicador MACD, mientras que el RSI confirma las condiciones de sobrecompra/sobreventa para filtrar las señales falsas.

El rendimiento se puede mejorar aún más a través de técnicas de optimización, stop losses, confirmación multiprong, etc. Con lógica simple y buena estabilidad, sirve como una buena estrategia de inicio para que los principiantes practicen y optimicen.


/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(default_qty_type = strategy.percent_of_equity, default_qty_value = 25, pyramiding = 10, title="MACD crossover while RSI Oversold/Overbought", overlay=true, shorttitle="MACD Cross + RSI Oversold Overbought", initial_capital = 1000)

//MACD Settings
fastMA = input(title="Fast moving average",  defval = 12, minval = 7) //7 16
slowMA = input(title="Slow moving average",  defval = 26, minval = 7) //24 26 
signalLength = input(9,minval=1) //9 6

//RSI settings
RSIOverSold = input(34 ,minval=1) //26
RSIOverBought = input(75 ,minval=1) //77
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(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,_,_] = macd(close[0], fastMA, slowMA, signalLength)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, signalLength)
signal = ema(currMacd, signalLength)

crossoverBear = cross(currMacd, signal) and currMacd < signal ? avg(currMacd, signal) : na
crossoverBull = cross(currMacd, signal) and currMacd > signal ? avg(currMacd, signal) : na

plotshape(crossoverBear and wasOverbought , title='MACD-BEAR', style=shape.triangledown, text='overbought', location=location.abovebar, color=orange, textcolor=orange, size=size.tiny) 
plotshape(crossoverBull and wasOversold, title='MACD-BULL', style=shape.triangleup, text='oversold', location=location.belowbar, color=lime, textcolor=lime, size=size.tiny) 

// Configure backtest start date with inputs
startDate = input(title="Start Date",
     defval=8, minval=1, maxval=31)
startMonth = input(title="Start Month",
     defval=3, minval=1, maxval=12)
startYear = input(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))
     
if (afterStartDate==true)
    posSize = abs(strategy.position_size)
    strategy.order("long", strategy.long, when = crossoverBull and wasOversold) 
    strategy.order("long", long=false, qty=posSize/3, when = crossoverBear and wasOverbought) 


Más.