Estrategia de negociación de swing alcista basada en bandas de Bollinger y RSI

El autor:¿ Qué pasa?, fecha: 2024-03-11 11:51:22
Las etiquetas:

img

Resumen general

Esta estrategia utiliza dos indicadores técnicos, Bandas de Bollinger e Índice de Fuerza Relativa (RSI), para el comercio de swing alcista en tendencias alcistas.

Principios de estrategia

  1. Calcular RSI: Utilice el promedio móvil relativo (RMA) para calcular la magnitud promedio de los aumentos y disminuciones de precios por separado, luego divida la magnitud de los aumentos por la magnitud total para obtener RSI.

  2. Calcular bandas de Bollinger: Utilice el promedio móvil simple (SMA) para calcular la línea media del precio, luego agregue y resta las desviaciones estándar para obtener las bandas superior e inferior.

  3. Cuando el precio se rompe por debajo de la banda inferior de Bollinger y el RSI es inferior a 35, se considera sobreventa y se abre una posición larga.

  4. Cierre largo: Cuando el RSI cruza por encima de 69, se considera sobrecomprado, y la posición larga se cierra para obtener ganancias.

  5. Tome ganancia y stop loss: después de abrir una posición, los precios de take profit y stop loss se calculan en función de los porcentajes definidos por el usuario. La posición se cierra cuando se alcanza el precio de take profit o stop loss. Esto ayuda a controlar el riesgo y el rendimiento de cada operación.

Análisis de ventajas

  1. Las bandas de Bollinger pueden reflejar objetivamente el rango de movimientos de precios y ajustarse sincronizadamente con las tendencias de precios sin estar limitadas por umbrales fijos.

  2. El RSI puede reflejar intuitivamente el equilibrio entre las fuerzas alcistas y bajistas y también es relativamente objetivo.

  3. Cuando se utiliza en tendencias alcistas, es más adecuado para el swing trading. Al capturar rebotes de precios con la banda de Bollinger inferior y un RSI bajo, y cerrar posiciones oportunas con un RSI alto, puede capturar eficazmente los movimientos del mercado a corto plazo.

  4. La configuración de las operaciones de take profit y stop loss permite controlar el riesgo de la estrategia y permite a los inversores establecer con flexibilidad los parámetros de acuerdo con sus preferencias de riesgo.

  5. La lógica y el código de la estrategia son relativamente simples, fáciles de entender e implementar, y los resultados de las pruebas de retroceso son relativamente estables.

Análisis de riesgos

  1. En mercados agitados, las bandas de Bollinger y el RSI pueden generar demasiadas señales de negociación, lo que conduce a una alta frecuencia de negociación y un aumento de los costos de transacción.

  2. Un solo indicador como el RSI se ve fácilmente afectado por las fluctuaciones de precios a corto plazo y puede producir señales engañosas.

  3. La selección de los parámetros Bollinger Band y RSI tiene un impacto significativo en el rendimiento de la estrategia, y los diferentes mercados e instrumentos pueden requerir diferentes parámetros.

  4. En caso de eventos inesperados o condiciones anormales del mercado, las bandas de Bollinger y el RSI pueden volverse ineficaces.

Direcciones de optimización

  1. Considere la posibilidad de introducir otros indicadores técnicos, como las medias móviles para filtrar, por ejemplo, solo abra posiciones cuando las medias móviles estén en alineación alcista para mejorar la confiabilidad de las señales.

  2. Optimizar los umbrales superior e inferior del RSI, los parámetros de las bandas de Bollinger, etc., para encontrar las mejores combinaciones de parámetros de rendimiento para cada instrumento y período de tiempo.

  3. Basándose en backtesting, llevar a cabo pruebas a futuro y operaciones simuladas adecuadas para validar plenamente la eficacia y estabilidad de la estrategia antes de la negociación en vivo.

  4. Seguir controlando las estrategias de extracción y mejorar los rendimientos ajustados al riesgo mediante el dimensionamiento de las posiciones, la toma dinámica de beneficios y el stop loss y otros métodos.

  5. Incorporar la estrategia en una cartera de inversiones y utilizarla junto con otras estrategias de cobertura, en lugar de utilizarla de forma aislada, para mejorar la estabilidad de la cartera.

Resumen de las actividades

Este artículo presenta una estrategia de negociación de swing alcista basada en dos indicadores técnicos, Bollinger Bands y RSI. La estrategia es adecuada para capturar los movimientos del mercado a corto plazo en tendencias alcistas, y su lógica y implementación son relativamente simples. Abre posiciones largas cuando el precio se rompe por debajo de la banda de Bollinger inferior y el RSI es bajo, cierra posiciones cuando el RSI es alto, y establece niveles de ganancias y pérdidas de parada. Las ventajas de la estrategia son que puede reflejar objetivamente el rango de fluctuaciones de precios y el equilibrio de fuerzas alcistas y bajistas, y sus riesgos son relativamente controlables. Sin embargo, al usarla en la práctica, uno necesita prestar atención a controlar la frecuencia de negociación, combinar más indicadores para filtrar parámetros, optimizar los parámetros y gestionar posiciones. Además, la estrategia puede ser útil en condiciones de mercado y otras señales de riesgo anormales. Al introducir otros indicadores de filtración de pérdidas y pérdidas de parada


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

//@version=4
strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)
band1 = hline(69, "Upper Band", color=#C0C0C0)
band0 = hline(31, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")

length_bb = input(20,title="BB Length", minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
basis = sma(src, length_bb)
dev = mult * stdev(src, length_bb)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)


Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false)
Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false)

long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100
// Take profit/stop loss
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)

entry_long = rsi < 35.58 and src < lower
exit_long = rsi > 69
 
plotshape(entry_long, style=shape.labelup, color=color.green,  location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER")
plotshape(exit_long, style=shape.labeldown, color=color.red,  location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER")

strategy.entry("Long",true,when=entry_long)    
strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level)
strategy.close("Long", when=exit_long, comment="Exit")
plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red)
plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)


Más.