Estrategia de trading de alta frecuencia basada en las bandas de Bollinger


Fecha de creación: 2023-12-21 15:37:07 Última modificación: 2023-12-21 15:37:07
Copiar: 0 Número de Visitas: 905
1
Seguir
1621
Seguidores

Estrategia de trading de alta frecuencia basada en las bandas de Bollinger

Descripción general

Esta estrategia se basa en el indicador de la banda de Brin para implementar una estrategia de negociación de alta frecuencia. La estrategia se utiliza para determinar la banda de Brin superior y inferior mediante el cálculo de la diferencia estándar y la media móvil de los precios.

Principio de estrategia

La estrategia utiliza el indicador de la banda de Brin para determinar si el precio ha alcanzado un estado de sobrecompra o venta. La banda de Brin se compone de la banda de Brin superior, la banda de Brin inferior y la línea media. La línea media es la media móvil simple de n días del precio.

Esta estrategia establece la longitud de los parámetros de la banda de Brin de 20 días, con un valor de k de 2. Cuando el precio toca la línea media, se considera que el precio regresa de la zona de exceso y genera una señal de negociación. Hacer múltiples señales es atravesar la línea media superior al precio y hacer señales vacías es atravesar la línea media inferior al precio.

Cada vez que se abre una posición, se invierte todo el capital (incluyendo capital y pérdidas por fluctuación) y se establece un margen de detención del 0.5% para cerrar la posición cuando el precio se mueve más del 0.5%.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El uso del indicador de la cinta de Brin para determinar puntos de compra y venta es mejor para determinar los puntos altos y bajos de los precios en comparación con indicadores como el promedio móvil simple.

  2. La estrategia de trading de alta frecuencia permite obtener ganancias rápidas con un ciclo corto de operaciones.

  3. Cada vez que invierte todo su capital, puede maximizar sus ganancias.

  4. Establezca un límite de límites para bloquear las ganancias y controlar el riesgo de manera efectiva.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. El indicador de la banda de Brin es muy sensible a los parámetros, y si los parámetros están mal configurados, se producen una gran cantidad de señales de error.

  2. Las transacciones de alta frecuencia requieren un intercambio sin comisiones, de lo contrario, las comisiones devorarán rápidamente los beneficios.

  3. Todas las transacciones financieras son arriesgadas. Si ocurre algo inesperado, puede ocasionar grandes pérdidas.

  4. El bloqueo es demasiado pequeño, el número de transacciones es alto y las operaciones son frecuentes.

Resolución de las mismas:

  1. Optimización de los parámetros de la banda de Bryn para encontrar el mejor parámetro.

  2. Opte por intercambios sin comisiones, por ejemplo, Binance Cash.

  3. La configuración de stop loss para controlar el máximo de pérdidas.

  4. Ampliar adecuadamente el rango de paradas y reducir el número de transacciones.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Combinado con indicadores de volumen de transacciones, como el indicador de marea de energía, filtra brechas falsas.

  2. Optimización de los parámetros de la banda de Bryn para encontrar la combinación óptima de parámetros.

  3. Establezca un rango de stop-loss dinámico. Por ejemplo, amplíe el rango de stop-loss gradualmente a medida que aumenta el número de operaciones o ganancias.

  4. Agrega modelos de aprendizaje automático para usar los modelos de predicción para determinar puntos de venta.

  5. En combinación con el análisis fundamental, evite las transacciones antes y después de eventos importantes (como la publicación de los resultados).

Resumir

Esta estrategia se basa en la construcción de una estrategia de comercio de alta frecuencia de la cinta de Brin. El uso de la cinta de Brin para determinar el punto de compra y venta, el comercio de la bolsa completa, el pequeño stop para lograr una rentabilidad eficiente. También hay algunos problemas de sensibilidad de parámetros, control de riesgo, etc. Podemos optimizar desde la mejora del sistema de indicadores, el stop loss dinámico, el aprendizaje automático, etc., para que la estrategia sea más estable y confiable.

Código Fuente de la Estrategia
/*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))