Estrategia de negociación a largo plazo basada en bandas de Bollinger % B Indicador

El autor:¿ Qué pasa?, Fecha: 2024-02-01 11:15:44
Las etiquetas:

img

Resumen general

Esta estrategia genera señales comerciales basadas en el indicador Bollinger Bands %B. Se hace larga cuando el valor de %B cae por debajo de un umbral preestablecido y adopta un enfoque de promedio de posición dinámica para seguir la tendencia hasta que se activa el take profit o stop loss. La estrategia es adecuada para identificar oportunidades de retroceso después de que se rompa el soporte de la banda inferior de Bollinger.

Estrategia lógica

  1. Calcular la banda media, la banda superior y la banda inferior de las bandas de Bollinger de N días
  2. Calcular el valor %B: (%B = (cerrar - BB inferior) /(BB superior - BB inferior)
  3. Cambio largo cuando el valor de %B cae por debajo del umbral (por defecto es 0)
  4. Se establecerá el beneficio basado en el precio de entrada (default es 105% del precio de entrada) y el stop loss (default es 95% del precio de entrada)
  5. Añadir a la posición siempre que se cumplan las condiciones después de la posición de apertura
  6. La primera acción de tomar ganancias o detener pérdidas cierra la posición

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. El indicador %B identifica de manera eficiente los puntos de retroceso después del soporte de banda inferior
  2. El promedio dinámico de las posiciones sigue la tendencia hacia mayores beneficios
  3. Las condiciones claras para obtener beneficios y para detener pérdidas facilitan el control del riesgo

Análisis de riesgos

También hay algunos riesgos asociados con esta estrategia:

  1. Probabilidad más alta de falsas señales a partir de %B
  2. Los mercados de variación de los tipos de interés de los mercados de variación de los tipos de interés de los mercados de variación de los tipos
  3. Los riesgos de mediación agresiva de pérdidas no controladas

Soluciones:

  1. Combinar con indicadores como KD y MACD para confirmar la fiabilidad de la señal
  2. Ajustar la colocación de stop loss para resistir la volatilidad del mercado
  3. Control de la velocidad de mediación para evitar la explosión de riesgo

Oportunidades de mejora

La estrategia puede optimizarse aún más en los siguientes ámbitos:

  1. Prueba diferentes combinaciones de parámetros para obtener los mejores resultados
  2. Optimizar la lógica de promedio, por ejemplo, dejar de sumar después de alcanzar cierto objetivo de ganancia
  3. Añadir un filtro de liquidez para evitar operaciones erróneas en acciones de baja liquidez

Resumen de las actividades

En general, esta es una estrategia comercial relativamente robusta a largo plazo. Hay margen de mejora tanto en la precisión de la señal como en la puesta a punto de los parámetros. Cuando se combina con un filtrado de señal adicional y un tamaño de posición prudente, esta estrategia puede lograr resultados decentes en los mercados de tendencia.


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

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

// Girdiler
length = input.int(20, title="BB Length")
src = input(close, title="Source")
dev = input.float(2.0, title="Deviation")
kar_hedefi = input(5, title="Take Profit")
zarar_durumu = input(100, title="Stop Loss")
start_date = input(timestamp("01 Jan 2023 00:00 +0000"), "Start Date")
end_date = input(timestamp("01 Jan 2024 00:00 +0000"), "End Date")
altinda_kalirsa_long = input.float(0, title="hangi degerin altinda long alsin")

// Bollinger Bantları %B göstergesi
basis = ta.sma(src, length)
stdDev = ta.stdev(src, length)
upperBand = basis + dev * stdDev
lowerBand = basis - dev * stdDev
percentB = (src - lowerBand) / (upperBand - lowerBand)

// Alım-Satım Sinyalleri
longCondition = percentB < altinda_kalirsa_long

// Kar/Zarar Hesaplama
takeProfit = strategy.position_avg_price * (1 + kar_hedefi / 100)
stopLoss = strategy.position_avg_price * (1 - zarar_durumu / 100)

// Long (Alım) İşlemi
if (longCondition )
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfit, stop=stopLoss)

// Take Profit Seviyesi Çizgisi
plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)


Más.