Estrategia de negociación de alta frecuencia basada en bandas de Bollinger

El autor:¿ Qué pasa?, Fecha: 2023-12-21 15:37:07
Las etiquetas:

img

Resumen general

Esta estrategia implementa una estrategia de negociación de alta frecuencia basada en el indicador de bandas de Bollinger. Determina las bandas superiores e inferiores de Bollinger calculando la desviación estándar y el promedio móvil de los precios. Cuando el precio toca la banda media, se ejecutan operaciones largas o cortas.

Estrategia lógica

La estrategia utiliza el indicador Bollinger Bands para determinar si los precios han alcanzado niveles de sobrecompra o sobreventa. Las bandas consisten en una banda superior, una banda inferior y una banda media. La banda media es un promedio móvil simple de precios de n días. La banda superior es la banda media más k veces la desviación estándar de los precios de n días. La banda inferior es la banda media menos k veces la desviación estándar.

Esta estrategia establece el período de Bollinger a 20 días y k a 2. Cuando los precios tocan la banda media, señala que los precios se revierten desde áreas extremas, generando señales comerciales. La señal larga se activa cuando los precios cruzan por encima de la banda media. La señal corta se activa cuando los precios caen por debajo de la banda media.

Cuando se ingresan posiciones, todo el capital se invierte (incluyendo el capital propio y la ganancia/pérdida variable).

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. El uso de bandas de Bollinger para identificar las señales de negociación es más eficaz para detectar extremos que las medias móviles simples.

  2. El enfoque de alta frecuencia logra rápidamente ganancias en ciclos comerciales cortos.

  3. Invertir todo el capital maximiza el potencial de ganancia.

  4. El establecimiento de un rango de ganancias maneja de manera efectiva el riesgo y bloquea las ganancias.

Análisis de riesgos

También existen algunos riesgos:

  1. Las bandas de Bollinger son sensibles a los parámetros de entrada.

  2. El comercio de alta frecuencia requiere intercambios sin tarifas, de lo contrario las tarifas erosionan las ganancias.

  3. Invertir todo el capital es arriesgado, los eventos del cisne negro podrían provocar grandes pérdidas.

  4. Un rango estrecho de ganancias aumenta la frecuencia de las operaciones y la complejidad de las operaciones.

Soluciones:

  1. Optimice los parámetros de Bollinger para encontrar los ajustes ideales.

  2. Utilice intercambios de cero tarifas como Binance Spot.

  3. Establecer pérdidas de parada para limitar la pérdida máxima.

  4. Ampliar el rango de ganancias para reducir la frecuencia del comercio.

Optimización

Esta estrategia puede mejorarse mediante:

  1. Añadir indicadores de volumen como en el volumen de saldo para filtrar falsificaciones.

  2. Optimizando los parámetros de Bollinger para encontrar las mejores combinaciones.

  3. Utilizando rangos de stop loss y take profit adaptativos, por ejemplo, ampliando los rangos a medida que se acumulan operaciones o ganancias.

  4. Incorporar modelos de aprendizaje automático para predecir señales de compra/venta.

  5. Evitar los intercambios en torno a eventos importantes como los informes de ganancias basados en los fundamentos.

Conclusión

Esta es una estrategia de alta frecuencia que utiliza bandas de Bollinger para la generación de señales, el tamaño completo de las posiciones y las pequeñas ganancias. Tiene ventajas en rentabilidad, pero también debilidades como la sensibilidad de los parámetros y el control de riesgos.


/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
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)

// Monto inicial de inversión
monto_inicial = 10

// Lógica de la estrategia
if (price_touches_basis_up)
    qty = strategy.equity + strategy.netprofit // Invertir el total del capital más las ganancias en cada operación
    direction = close > basis ? strategy.long : strategy.short
    strategy.entry("Operacion", direction, qty = 1)

// Lógica para cerrar la operación con un movimiento del 0.5% (take profit)
target_profit = 0.005 // Actualizado a 0.5%

if (strategy.position_size != 0)
    direction = strategy.position_size > 0 ? strategy.long : strategy.short
    strategy.exit("Take Profit/Close", from_entry = "Operacion", profit = close * (1 + target_profit))

// 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")

// Muestra el monto inicial de inversión en la barra del título
var label lbl = label.new(na, na, "")
label.set_text(lbl, "Monto Inicial: $" + str.tostring(monto_inicial, "#.########"))
label.set_xy(lbl, bar_index, low)
label.set_color(lbl, color.new(color.blue, 0))


Más.