Una estrategia combinada de RSI con promedio móvil y MACD

El autor:¿ Qué pasa?, Fecha: 2024-02-20 14:28:59
Las etiquetas:

img

Resumen general

Esta estrategia identifica tendencias de precios y toma decisiones de compra baja y venta alta combinando promedios móviles, el indicador MACD y el indicador RSI. Genera señales de compra cuando el promedio móvil de corto período cruza por encima del promedio móvil de largo período y el precio cerrado está por encima del promedio móvil de 50 días. Genera señales de venta cuando sucede lo contrario. Además, la estrategia utiliza el indicador RSI para evitar zonas de sobrecompra y sobreventa, y el histograma MACD para determinar la tendencia a medio y largo plazo.

Estrategia lógica

El núcleo de esta estrategia se basa en el doble sistema de cruce de promedios móviles, que genera señales de compra y venta cuando una EMA de corto período (3 días) cruza una EMA de largo período (30 días).

Además, la estrategia incorpora una línea de promedio móvil de 50 días para evitar el comercio frecuente, utilizando como filtro para las señales comerciales.

Además, el indicador RSI identifica escenarios de sobrecompra (por encima de 70) y sobreventa (por debajo de 30).

Por último, el histograma MACD se utiliza para determinar la tendencia a medio y largo plazo del mercado. Con el histograma MACD > 0, el fondo es una tendencia alcista por lo que las señales de compra son más confiables. Cuando el histograma MACD < 0, el fondo es una tendencia bajista por lo que las señales de compra pueden enfrentar correcciones pronto.

Ventajas

La mayor ventaja de esta estrategia es el uso combinado de múltiples indicadores, lo que hace que cada decisión comercial sea muy segura y confiable.

El trading de tendencias es un método de trading de inversiones de tendencias, que se utiliza para realizar operaciones de inversiones de tendencias y de inversiones de inversiones.

Los riesgos

Los principales riesgos provienen de choques repentinos de precios debido a eventos noticiosos significativos, que pueden penetrar los puntos de stop loss e incurrir en grandes pérdidas.

En el mercado alcista de mediano y largo plazo, el riesgo de que el mercado se detenga durante una retroceso temporal es otro riesgo.

Mejoras

La estrategia se puede optimizar en las siguientes dimensiones:

  1. Optimización de parámetros para encontrar las combinaciones óptimas.

  2. Incorporar más indicadores como Bollinger Bands y KDJ para enriquecer el modelo.

  3. Prueba mecanismos de stop loss más avanzados como el stop loss de seguimiento y el stop loss de volatilidad.

  4. Optimizar partes de la estrategia para adaptarse a más tipos de mercados.

Conclusión

En conclusión, al combinar promedios móviles, RSI y MACD, esta estrategia logra generar señales de alta calidad y evitar limitaciones de indicadores individuales. Realiza cada operación con confianza al confirmar la tendencia. Además, la estrategia equilibra el comercio de tendencia y el comercio contrario, sobresaliendo tanto en perseguir el impulso como en tomar posiciones anticíclicas cuando sea apropiado.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('sachin 3.30 ', overlay=true)

// Input parameters
length = input.int(14, title='RSI Length', minval=1)
overbought = input.int(70, title='RSI Overbought Level', minval=0, maxval=100)
oversold = input.int(30, title='RSI Oversold Level', minval=0, maxval=100)
ema3_length = input(3, title='EMA 3 Length')
ema30_length = input(30, title='EMA 30 Length')
ema50_length = input(50, title='EMA 50 Length')

// Calculate EMAs
ema3 = ta.ema(close, ema3_length)
ema30 = ta.ema(close, ema30_length)
ema50 = ta.ema(close, ema50_length)

// Calculate RSI
rsiValue = ta.rsi(close, length)

// Calculate MACD
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)

var float buyPrice = na

// Buy condition: EMA 3 crosses above EMA 30 and price is above EMA 50
buyCondition = ta.crossover(ema3, ema30) and close > ema50
if (buyCondition)
    buyPrice := close
    strategy.entry('Buy', strategy.long)

// Exit long position when close is below EMA30 and below the low of the previous 3 candles after the buy entry
exitLongCondition = close < ema30 and close < ta.lowest(low, 3) and close < buyPrice
if (exitLongCondition)
    strategy.close('BuyExit')

// Sell condition: EMA 3 crosses below EMA 30 and price is below EMA 50
sellCondition = ta.crossunder(ema3, ema30) and close < ema50
if (sellCondition)
    strategy.entry('Sell', strategy.short)

// Exit short position when close is above EMA30 and above the high of the previous 3 candles after the sell entry
exitShortCondition = close > ema30 and close > ta.highest(high, 3)
if (exitShortCondition)
    strategy.close('SellExit')

// Plot EMAs on the chart
plot(ema3, color=color.new(color.blue, 0), title='EMA 3')
plot(ema30, color=color.new(color.red, 0), title='EMA 30')

// Change color of EMA 50 based on MACD histogram
ema50Color = hist > 0 ? color.new(color.blue, 0) : hist < 0 ? color.new(color.black, 0) : color.new(color.blue, 0)
plot(ema50, color=ema50Color, title='EMA 50 Colored')

// Change color of EMA 30 based on RSI trend
ema30Color = rsiValue > oversold ? color.new(color.green, 0) : rsiValue < overbought ? color.new(color.red, 0) : color.new(color.blue, 0)
plot(ema30, color=ema30Color, title='EMA 30 Colored')

// Highlight Buy and Sell signals on the chart
bgcolor(buyCondition ? color.new(color.green, 90) : na)
bgcolor(sellCondition ? color.new(color.red, 90) : na)

// Plotting Buy and Sell Signals on the Chart until strategy exit
barcolor(strategy.position_size > 0 and rsiValue > overbought ? color.new(color.yellow, 0) : strategy.position_size < 0 and rsiValue < oversold ? color.new(color.black, 0) : na)


Más.