Las bandas de Bollinger, el RSI, el MACD y la estrategia de negociación de fusión de múltiples indicadores estocásticos

El autor:¿ Qué pasa?, Fecha: 2023-09-28 12:06:39
Las etiquetas:

Resumen general

Esta estrategia integra Bollinger Bands, RSI, MACD y Estocástico, cuatro indicadores técnicos diferentes, para tomar decisiones largas y cortas. Primero, determina si el precio está fuera del canal de Bollinger Bands y toma posiciones largas o cortas en consecuencia. Luego, verifica si RSI está en zonas de sobrecompra o sobreventa y entra en función de la dirección. Luego, busca señales de cruz dorada y cruz de muerte del MACD y toma posiciones en consecuencia. Finalmente, identifica la cruz dorada estocástica y la cruz de muerte en zonas de sobrecompra / sobreventa. Con las señales de los cuatro indicadores, la estrategia adopta posiciones piramidal más agresivas para maximizar las ganancias.

Principios

La estrategia utiliza principalmente cuatro indicadores: bandas de Bollinger, RSI, MACD y estocástico.

Las bandas de Bollinger se representan en niveles de desviación estándar por encima y por debajo de una media móvil simple.

El RSI calcula el impulso como la relación de cierre más alto a cierre más bajo. Valores por debajo de 30 sugieren una condición de sobreventa mientras que por encima de 70 sugiere sobrecompra. Estos sirven como señales comerciales.

El MACD es la diferencia entre las medias móviles a corto y largo plazo.

Los cruces de las líneas estocásticas K y D también sirven como señales comerciales. K por debajo de 20 sugiere sobreventa mientras que por encima de 80 sugiere sobrecompra.

La combinación de señales de estos cuatro indicadores mejora la precisión de las entradas comerciales. Específicamente, ir largo cuando el precio excede la banda superior de las bandas de Bollinger, el RSI por debajo de 30, la cruz dorada del MACD y el cruce estocástico K por encima de D por debajo de 20.

Ventajas

La principal ventaja de esta estrategia es la combinación de múltiples indicadores mejora la precisión y la tasa de ganancia.

En primer lugar, el uso de indicadores a través de diferentes marcos de tiempo - Bollinger para mediano / largo plazo, y MACD, RSI, Estocástico para corto plazo, reduce los errores.

En segundo lugar, requerir que todos los indicadores se alineen reduce las señales falsas. Entrar solo cuando Bollinger, RSI, MACD y Stochastic dan señales evita el fracaso de indicadores individuales.

Además, la combinación de indicadores complementarios capitaliza las fortalezas de cada uno.

Finalmente, las posiciones piramidales con señales confirmadas maximizan las ganancias en comparación con las operaciones de cantidad fija.

Los riesgos

Algunos riesgos a considerar:

En primer lugar, el mayor número de parámetros e indicadores dificulta la optimización.

En segundo lugar, las señales de indicadores concurrentes son raras, lo que conduce a una baja frecuencia de operaciones.

En tercer lugar, la pirámide puede amplificar las pérdidas si los indicadores dan señales erróneas.

Por último, las señales de indicadores inconsistentes necesitan reglas de decisión.

Mejoras

Algunas maneras de mejorar la estrategia:

  1. Optimizar los parámetros a través de algoritmos genéticos, búsqueda en cuadrícula, etc. para encontrar las mejores combinaciones.

  2. Añadir reglas de stop loss para controlar las pérdidas cuando el precio se mueve negativamente más allá de los umbrales.

  3. Mejorar la lógica de entrada con un sistema de puntuación para señales de indicadores inconsistentes y parámetros ponderados.

  4. Optimizar las salidas con datos de pérdidas y ganancias a lo largo de los períodos de retención para generar reglas ideales de salida.

  5. Optimizar los productos y los plazos más adecuados para la estrategia.

  6. Tenga en cuenta los costos de negociación como deslizamiento y comisiones en la optimización de parámetros.

  7. Utilice el aprendizaje automático para la optimización adaptativa.

Conclusión

Esta estrategia combina múltiples indicadores y mecanismos de confirmación para la toma de decisiones. Con parámetros adecuados y controles de riesgos, puede lograr buenos resultados. Pero la complejidad de ajuste y los riesgos deben abordarse a través de mejoras continuas para la estabilidad. Encontrar combinaciones óptimas de indicadores, reglas científicas de entrada / salida y control de riesgos son clave para una rentabilidad sostenida en todas las condiciones del mercado.


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MD strategy", overlay=true)
lengthrsi = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
source = close
lengthbb = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
direction = input(0, title = "Strategy Direction",  minval=-1, maxval=1)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
consecutiveBarsUp = input(3)
consecutiveBarsDown = input(3)
lengthch = input( minval=1, maxval=1000, defval=5)
upBound = highest(high, lengthch)
downBound = lowest(low, lengthch)
lengthst = input(14, minval=1)
OverBoughtst = input(80)
OverSoldst = input(20)
smoothK = 3
smoothD = 3

k = sma(stoch(close, high, low, lengthst), smoothK)
d = sma(k, smoothD)



ups = price > price[1] ? nz(ups[1]) + 1 : 0
dns = price < price[1] ? nz(dns[1]) + 1 : 0
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

basis = sma(source, lengthbb)
dev = mult * stdev(source, lengthbb)

upper = basis + dev
lower = basis - dev

vrsi = rsi(price, lengthrsi)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")
    
    
if (not na(k) and not na(d))
    if (crossover(k,d) and k < OverSoldst)
        strategy.entry("StochLE", strategy.long, comment="StochLE")
    if (crossunder(k,d) and k > OverBoughtst)
        strategy.entry("StochSE", strategy.short, comment="StochSE")   
        
if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")

if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")


Más.