Estrategia de inversión del RSI con indicador MACD


Fecha de creación: 2024-01-15 12:33:14 Última modificación: 2024-01-15 12:33:14
Copiar: 0 Número de Visitas: 763
1
Seguir
1617
Seguidores

Estrategia de inversión del RSI con indicador MACD

Descripción general

La estrategia se basa en los valores RSI del indicador MACD para determinar las señales de compra y venta. Comprar cuando el valor RSI supera la línea de sobreventa o el rango de sobreventa, y detenerse o detenerse cuando el valor RSI cae por debajo del rango de sobreventa.

Principio de estrategia

La estrategia combina las ventajas de los indicadores MACD y RSI.

En primer lugar, se calcula la curva de tres líneas del indicador MACD, que incluye la línea DIF, la línea DEA y la línea MACD. Luego, se calcula el indicador RSI en la línea MACD para formar el RSI de MACD.

Cuando el indicador RSI of MACD supera el rango de venta por encima de 30 o 35 produce una señal de compra, lo que indica que la línea MACD entra en la zona de venta por encima de los precios, y la tendencia de las acciones comienza a invertir hacia arriba. Cuando el indicador RSI of MACD cae nuevamente por debajo del rango de venta por encima de 15 produce una señal de venta, lo que indica que la tendencia de inversión ha terminado.

La estrategia también establece paradas parciales, donde se puede vender parte de la posición para bloquear parte de la ganancia cuando el RSI del MACD supera los 80 en la zona de sobreventa.

Análisis de las ventajas

  • El indicador MACD es utilizado para determinar el punto de inflexión de la tendencia.
  • Filtrar las señales falsas utilizando el indicador RSI para determinar las zonas de sobreventa y sobrecompra
  • La combinación de los dos indicadores permite identificar con precisión los puntos de compra y venta.
  • Establecimiento de paradas parciales para evitar la expansión de las pérdidas

Análisis de riesgos

  • Los parámetros del indicador MACD están mal configurados y no pueden determinar con precisión la tendencia
  • Los parámetros del indicador RSI están mal configurados y no pueden determinar con precisión si se está sobrecomprando o sobrevendendo
  • Algunas de las paradas son demasiado radicales y podrían haberse perdido un aumento mayor.

La solución:

  • Optimización de los parámetros MACD para encontrar la mejor combinación de ellos
  • Optimización de los parámetros del RSI para mejorar la precisión
  • La liberalización de algunas de las condiciones de suspensión para obtener mayores beneficios

Dirección de optimización

La estrategia también puede ser optimizada en las siguientes direcciones:

  1. Aumentar las estrategias de detención de pérdidas para controlar aún más el riesgo de caída
  2. Agrega un módulo de administración de posiciones para que las posiciones se amplien gradualmente a medida que el precio se mueve
  3. Modelo de aprendizaje automático integrado que utiliza entrenamiento de datos históricos para mejorar aún más la precisión de las decisiones de compra y venta
  4. Intenta ejecutar en períodos más cortos, como 15 minutos o 5 minutos, para aumentar aún más la frecuencia de la estrategia

Resumir

La idea central de la estrategia es utilizar la inversión MACD en combinación con el filtro RSI para determinar el punto de compra y venta. A través de la optimización de parámetros, gestión de pérdidas y control de riesgos, se puede convertir en una estrategia de comercio cuantitativa muy práctica.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="RSI of MACD Strategy[Long only]",  shorttitle="RSIofMACD" , overlay=false, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

	

/////////////////////////////////////////////////////////////////////////////////



// MACD Inputs ///
fastLen = input(12, title="Fast Length")
slowLen = input(21, title="Slow Length")
sigLen  = input(9, title="Signal Length")

rsiLength  = input(14, title="RSI of MACD Length")




riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)

takeProfit=input(false, title="Take Profit")


[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)

rsiOfMACD = rsi(macdLine, rsiLength)
emaSlow = ema(close, slowLen)



//drawings
/////////////////////////////////////////////////////////////////////////////////


obLevelPlot = hline(80, title="Overbought / Profit taking line",  color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(30, title="Oversold / entry line", color=color.green, linestyle=hline.style_dashed)

exitLinePlot = hline(15, title="Exit line", color=color.red, linestyle=hline.style_dashed)




plot(rsiOfMACD, title = "rsiOfMACD" ,  color=color.purple)


//drawings
/////////////////////////////////////////////////////////////////////////////////




//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


strategy.entry(id="RSIofMACD", long=true,   qty=qty1,  when =  ( crossover(rsiOfMACD, 30) or crossover(rsiOfMACD, 35)  ) and close>=emaSlow )



bgcolor(abs(strategy.position_size)>=1 ? color.blue : na , transp=70)


barcolor(abs(strategy.position_size)>=1 and  ( crossover(rsiOfMACD, 30) or crossover(rsiOfMACD, 35) ) ? color.purple : abs(strategy.position_size)>=1 ? color.blue : na  )


//partial exit
strategy.close(id="RSIofMACD", comment="PExit Profit is "+tostring(close - strategy.position_avg_price,  "###.##")  ,  qty=strategy.position_size/3, when= takeProfit and abs(strategy.position_size)>=1 and close > strategy.position_avg_price and crossunder(rsiOfMACD,80) )

//Close All
strategy.close(id="RSIofMACD", comment="Close All   Profit is "+tostring(close - strategy.position_avg_price,  "###.##"), when=abs(strategy.position_size)>=1 and crossunder(rsiOfMACD,15) ) //and close > strategy.position_avg_price )


//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////