RSI de la estrategia de inversión del MACD

El autor:¿ Qué pasa?, Fecha: 2024-01-15 12:33:14
Las etiquetas:

img

Resumen general

Esta estrategia se basa en los valores del RSI del indicador MACD para determinar las señales de compra y venta. Compra cuando el RSI excede la línea o el rango de sobrecompra, y vende o detiene las ganancias/pérdidas cuando el RSI se rompe por debajo del rango de sobrecompra.

Principio de la estrategia

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

Primero, se calculan las tres curvas del indicador MACD, incluidas las líneas DIF, DEA y MACD. Luego, se calcula el indicador RSI en la línea MACD para formar el RSI del MACD.

Cuando el RSI del indicador MACD excede el rango de sobrecompra de 30 o 35, se genera una señal de compra, lo que indica que la línea MACD ha entrado en el rango de sobreventa y que la tendencia de precios ha comenzado a revertirse hacia arriba.

La estrategia también establece la obtención de ganancias parciales. Cuando el RSI del indicador MACD excede el nivel de sobrecompra de 80, parte de la posición puede venderse para obtener ganancias parciales.

Análisis de ventajas

  • Utilice el indicador MACD para determinar los puntos de inversión de tendencia
  • Utilice el indicador RSI para determinar los niveles de sobrecompra/sobreventa para filtrar señales falsas
  • Combinación de indicadores duales para obtener puntos de compra/venta precisos
  • Se estableció una extracción parcial de beneficios para evitar pérdidas ampliadas

Análisis de riesgos

  • Juzgo inexacto de la tendencia si los parámetros MACD no son correctos
  • El valor de las zonas de sobrecompra/sobreventa no es correcto si los parámetros del RSI no son correctos.
  • Posibilidad de perder una mayor ventaja si el beneficio es demasiado agresivo

Soluciones:

  • Optimice los parámetros MACD para encontrar la mejor combinación
  • Optimizar los parámetros del RSI para mejorar la precisión
  • Relajar los criterios de toma de ganancias adecuadamente para apuntar a mayores rendimientos

Direcciones de optimización

La estrategia también puede optimizarse en los siguientes aspectos:

  1. Añadir una estrategia de stop loss para controlar aún más los riesgos a la baja
  2. Añadir módulo de dimensionamiento de posiciones para aumentar gradualmente las posiciones a medida que el precio se mueve
  3. Integrar modelos de aprendizaje automático entrenados en datos históricos para mejorar aún más la precisión de los puntos de compra/venta
  4. Intento de ejecutar en plazos más cortos como 15 o 5 minutos para mejorar la frecuencia de la estrategia

Conclusión

La filosofía general de diseño de la estrategia es clara, con la idea central de usar la inversión MACD combinada con el filtro RSI para determinar los puntos de compra / venta.


/*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 
/////////////////////////////////////////////////////////////////////////////////



Más.