Estrategia de negociación a corto plazo basada en bandas de Bollinger

El autor:¿ Qué pasa?, fecha: 2024-03-01 13:29:47
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el indicador de bandas de Bollinger para determinar las señales de negociación y establecer los niveles de stop profit/loss. Va largo cuando el precio toca la banda media desde abajo y va corto cuando el precio toca la banda media desde arriba.

Estrategia lógica

La banda media de las bandas de Bollinger es la media móvil simple de N días del precio de cierre. La banda superior es la banda media + K veces la desviación estándar de N días del precio de cierre. La banda inferior es la banda media - K veces la desviación estándar de N días del precio de cierre.

Análisis de ventajas

  1. El uso de bandas de Bollinger para determinar las señales de negociación puede capturar de manera efectiva las rupturas de precios.
  2. La adopción de la negociación a corto plazo, el ciclo de negociación es muy corto, lo que permite cambiar rápidamente de dirección.
  3. La posición de tamaño fijo y la configuración de stop profit/loss gestionan bien los riesgos por operación.

Análisis de riesgos

  1. Las bandas de Bollinger son sensibles a la volatilidad del mercado.
  2. El comercio de alta frecuencia puede reducir significativamente el margen de ganancia si las comisiones son comparativamente altas.
  3. El establecimiento inadecuado del stop-profit/loss puede conducir a un stop-loss prematuro o perder ganancias más grandes.

Soluciones:

  1. Optimice los parámetros para encontrar la mejor combinación.
  2. Seleccionar valores con comisiones más bajas.
  3. Optimizar los niveles de stop profit/loss a través de backtesting.

Optimización

  1. Combina con otros indicadores como patrones de línea K y MACD para filtrar señales y mejorar la tasa de ganancia.
  2. Añadir más tipos de tomar ganancias como la parada de seguimiento o el cierre parcial para ampliar el potencial de ganancia.
  3. Optimizar los parámetros de las bandas de Bollinger y los niveles de stop profit/loss para encontrar la mejor combinación.

Conclusión

La lógica general de esta estrategia es clara. El uso de bandas de Bollinger para determinar las señales es efectivo. Sin embargo, la alta frecuencia de negociación y el espacio de ganancia limitado por operación. Se recomienda combinar indicadores de tendencia para filtrar las señales y optimizar los parámetros para mejorar el rendimiento de la estrategia.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia Bollinger Bands", shorttitle="BB Strategy", overlay=true)

// Parámetros de las Bandas de Bollinger
length = input(20, title="Longitud")
mult = input(2.0, title="Multiplicador")

// Calcula las Bandas de Bollinger
basis = ta.sma(close, length)
upper_band = basis + mult * ta.stdev(close, length)
lower_band = basis - mult * ta.stdev(close, length)

// Condiciones para realizar operaciones
price_touches_basis_up = ta.crossover(close, basis)
price_touches_basis_down = ta.crossunder(close, basis)

// Lógica de la estrategia
if (price_touches_basis_up)
    strategy.entry("Compra", strategy.long, qty = 1)
    
if (price_touches_basis_down)
    strategy.entry("Venta", strategy.short, qty = 1)

// Lógica para cerrar la operación con un movimiento del 0,5% (take profit) o 3% (stop loss)
target_profit = 0.005 // Actualizado a 0.5%
stop_loss = 0.03

if (strategy.position_size > 0)
    strategy.exit("Take Profit/Close", from_entry = "Compra", profit = close * (1 + target_profit))
    strategy.exit("Stop Loss/Close", from_entry = "Compra", loss = close * (1 - stop_loss))

if (strategy.position_size < 0)
    strategy.exit("Take Profit/Close", from_entry = "Venta", profit = close * (1 - target_profit))
    strategy.exit("Stop Loss/Close", from_entry = "Venta", loss = close * (1 + stop_loss))

// Dibuja las Bandas de Bollinger en el gráfico
plot(upper_band, color=color.blue, title="Upper Band")
plot(lower_band, color=color.red, title="Lower Band")
plot(basis, color=color.green, title="Basis")


Más.