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.
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).
Las ventajas de esta estrategia son:
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.
El enfoque de alta frecuencia logra rápidamente ganancias en ciclos comerciales cortos.
Invertir todo el capital maximiza el potencial de ganancia.
El establecimiento de un rango de ganancias maneja de manera efectiva el riesgo y bloquea las ganancias.
También existen algunos riesgos:
Las bandas de Bollinger son sensibles a los parámetros de entrada.
El comercio de alta frecuencia requiere intercambios sin tarifas, de lo contrario las tarifas erosionan las ganancias.
Invertir todo el capital es arriesgado, los eventos del cisne negro podrían provocar grandes pérdidas.
Un rango estrecho de ganancias aumenta la frecuencia de las operaciones y la complejidad de las operaciones.
Soluciones:
Optimice los parámetros de Bollinger para encontrar los ajustes ideales.
Utilice intercambios de cero tarifas como Binance Spot.
Establecer pérdidas de parada para limitar la pérdida máxima.
Ampliar el rango de ganancias para reducir la frecuencia del comercio.
Esta estrategia puede mejorarse mediante:
Añadir indicadores de volumen como en el volumen de saldo para filtrar falsificaciones.
Optimizando los parámetros de Bollinger para encontrar las mejores combinaciones.
Utilizando rangos de stop loss y take profit adaptativos, por ejemplo, ampliando los rangos a medida que se acumulan operaciones o ganancias.
Incorporar modelos de aprendizaje automático para predecir señales de compra/venta.
Evitar los intercambios en torno a eventos importantes como los informes de ganancias basados en los fundamentos.
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))