Estrategia de cruce de medias móviles CCI con indicador RSI de bandas de Bollinger


Fecha de creación: 2023-12-20 16:24:49 Última modificación: 2023-12-20 16:24:49
Copiar: 0 Número de Visitas: 1107
1
Seguir
1621
Seguidores

Estrategia de cruce de medias móviles CCI con indicador RSI de bandas de Bollinger

Descripción general

Esta estrategia se combina con el uso de tres indicadores, el índice Brin, el índice de fuerza relativa (RSI) y el índice de camino de los productos (CCI), para buscar sus señales de cruce y emitir señales de compra y venta. La estrategia tiene como objetivo detectar el fenómeno de sobrecompra y sobreventa en el mercado y entrar en el mercado en el punto de inflexión con la esperanza de obtener una mejor rentabilidad de la inversión.

Principio de estrategia

El cinturón de Bryn

Las bandas de Brin se componen de una media, una media superior y una media inferior. La media media suele utilizar una media móvil de 20 días. La media superior y la media inferior son dos posiciones de diferencia estándar por encima y por debajo de la media superior.

Indicadores de la RSI

El indicador RSI refleja la velocidad a la que los precios de cierre suben y bajan durante un período de tiempo, y se utiliza para medir el contraste de fuerza entre los precios de compra y venta. El RSI es una zona de sobreventa cuando está entre 0 y 30, y una zona de sobreventa cuando está entre 70 y 100.

Indicadores del CCI

El índice CCI se usa para medir el grado en que el precio de una acción se desvía de su precio promedio. De este modo, +100 representa un precio mucho más alto que el promedio, lo que significa que se está sobrecomprando; y -100 representa un precio mucho más bajo que el promedio, lo que significa que se está sobrevendendo. El CCI puede reflejar situaciones extremas en las que el precio puede estar sobrecomprando.

Estrategia de las señales cruzadas

Esta estrategia utiliza las bandas de Brin para determinar si el precio superó la sobreventa en el corto plazo, el indicador RSI para determinar el equilibrio de la fuerza de compra y venta, el indicador CCI para determinar la distancia del precio. Las bandas de Brin, el RSI y el indicador CCI emiten instrucciones de negociación cuando dan una señal de compra / venta al mismo tiempo.

Ventajas estratégicas

  1. Combinación de varios indicadores para reducir las señales falsas y mejorar la precisión de las señales
  2. Descubra los puntos de inflexión del mercado y las oportunidades para capturar la tendencia de reversión
  3. Los parámetros se pueden ajustar a medida para adaptarse a diferentes entornos de mercado
  4. Filtración uniforme de los indicadores CCI para reducir el ruido y mejorar la estabilidad

Riesgos y soluciones

  1. Los indicadores Brinband, RSI y CCI pueden generar señales erróneas, lo que puede causar pérdidas comerciales. Se pueden flexibilizar los parámetros adecuadamente o agregar otros indicadores para verificar.
  2. El indicador CCI no es muy adecuado para el comportamiento curvo, y puede ser sustituido por un indicador de línea media o de fluctuación.
  3. Las instrucciones de negociación solo tienen un stop loss, no un stop. Se puede agregar un stop móvil para bloquear parte de las ganancias.

Dirección de optimización

  1. Prueba más combinaciones de parámetros para encontrar el mejor.
  2. El objetivo de este proyecto es mejorar la calidad de vida de las personas con discapacidad.
  3. La estrategia de contención de las pérdidas, con objetivos de ganancias;
  4. Combina más indicadores, como MACD, KD y otros para determinar la fiabilidad de la señal.

Resumir

Esta estrategia tiene en cuenta la situación del mercado a corto, mediano y largo plazo, a través de la banda de Brin, RSI y CCI tres indicadores de señales cruzadas, para determinar el momento de la inversión del mercado, pertenece a la estrategia de seguimiento de reversión más robusta. Puede ser optimizado con parámetros de ajuste, paradas, etc., para una variedad de entornos de mercado.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(shorttitle="BBRSIstr", title="Bollinger Bands", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

//RSI
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

rsiPlot = plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")

//cci
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, "CCI", color=#2962FF)
band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(0, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background")

typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")

smoothingLine = ma(cci, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none)


longCBB= close < lower
shortCBB = close>upper
longBRSI = rsi < 33
shortBRSI = rsi > 70
longcci = cci < -215
shortcci = cci > 250

strategy.entry("LONG", strategy.long, when = longCBB and longBRSI and longcci)
strategy.exit("Exit ", profit = 600)
strategy.entry("SHORT", strategy.short, when = shortCBB and shortBRSI and shortcci)
strategy.exit("Exit ", profit = 600)