En la carga de los recursos... Cargando...

Bandas de Bollinger Momentum Breakout Tendencia adaptativa siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-12-13 11:43:10
Las etiquetas:- ¿ Qué?elLa SMAEl EMAEl número de personas afectadasLa WMAVWMAEl ATR

img

Resumen general

Esta estrategia es un sistema de negociación de ruptura de impulso basado en bandas de Bollinger, que captura principalmente las oportunidades de tendencia a través de la relación entre el precio y la banda superior de Bollinger.

Principio de la estrategia

La lógica central de la estrategia se basa en los siguientes elementos clave:

  1. Se utilizarán medias móviles personalizables (incluidas SMA, EMA, SMMA, WMA, VWMA) para calcular la banda media de las bandas de Bollinger.
  2. Determina dinámicamente las posiciones de la banda superior e inferior mediante el multiplicador de desviación estándar (default 2.0).
  3. Entra en posiciones largas cuando el precio se rompe por encima de la banda superior, lo que indica la formación de fuertes tendencias de ruptura.
  4. Salida de las posiciones cuando el precio cae por debajo de la banda inferior, lo que sugiere un posible final de la tendencia alcista.
  5. Incluye los costes comerciales (0,1%) y el deslizamiento (3 puntos), lo que refleja mejor las condiciones reales de las operaciones.

Ventajas estratégicas

  1. Alta adaptabilidad: a través de múltiples opciones de tipo de media móvil, la estrategia puede adaptarse a diferentes condiciones de mercado.
  2. Control de riesgos sólido: utiliza la banda inferior de las bandas de Bollinger como stop loss, proporcionando un control de riesgos claro.
  3. Gestión racional del dinero: emplea el tamaño de las posiciones basado en el porcentaje de capital, evitando los riesgos de tamaños de posición fijos.
  4. Consideración integral de los costes: incluye los factores de comisión y deslizamiento, lo que hace que los resultados de las pruebas de retroceso sean más realistas.
  5. Marco de tiempo flexible: permite la selección de intervalos de tiempo de negociación específicos mediante la configuración de parámetros.

Riesgos estratégicos

  1. Riesgo de ruptura falsa: pueden producirse frecuentes señales de ruptura falsa en mercados variados. Solución: añadir indicadores de confirmación o mecanismos de entrada tardía.
  2. Riesgo de reversión de tendencia: las reversiones repentinas en mercados de tendencia fuerte pueden causar pérdidas significativas. Solución: Implementar filtros de fuerza de tendencia.
  3. Sensibilidad de parámetros: las diferentes combinaciones de parámetros pueden dar lugar a diferentes resultados de la estrategia. Solución: requiere una optimización exhaustiva de los parámetros y pruebas de robustez.

Direcciones para la optimización de la estrategia

  1. Introduzca los indicadores de fuerza de tendencia:
  • Añadir ADX o indicadores similares para filtrar las señales en mercados de tendencia débil
  • Esto puede reducir las pérdidas de las fugas falsas
  1. Optimiza el mecanismo de pérdida de parada:
  • Implementar paradas de pérdida dinámicas, como las paradas de seguimiento
  • Ayuda a obtener mayores beneficios en las tendencias continuas
  1. Añadir filtros de negociación:
  • Señales de confirmación basadas en el volumen
  • Evitar la negociación en entornos de baja liquidez
  1. Mecanismo de entrada mejorado:
  • Añadir mecanismos de entrada de retroceso
  • Ayuda a lograr mejores precios de entrada

Resumen de las actividades

Esta es una tendencia bien diseñada siguiendo una estrategia con lógica clara. Captura el impulso del mercado a través de la naturaleza dinámica de las bandas de Bollinger e incluye buenos mecanismos de control de riesgos. La estrategia es altamente personalizable y puede adaptarse a diferentes entornos de mercado a través de ajustes de parámetros.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT - Bollinger Bands", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)

// Date range inputs
startYear = input.int(2018, "Start Year", minval=1970, maxval=2100)
startMonth = input.int(1, "Start Month", minval=1, maxval=12)
startDay = input.int(1, "Start Day", minval=1, maxval=31)
endYear = input.int(2069, "End Year", minval=1970, maxval=2100)
endMonth = input.int(12, "End Month", minval=1, maxval=12)
endDay = input.int(31, "End Day", minval=1, maxval=31)

// Time range
startTime = timestamp("GMT+0", startYear, startMonth, startDay, 0, 0)
endTime = timestamp("GMT+0", endYear, endMonth, endDay, 23, 59)

// Moving average function
ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Calculate Bollinger Bands
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot
plot(basis, "Basis", color=#2962FF, offset=offset)
p1 = plot(upper, "Upper", color=#F23645, offset=offset)
p2 = plot(lower, "Lower", color=#089981, offset=offset)
fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))

// Strategy logic: Only go long and flat
inDateRange = time >= startTime and time <= endTime
noPosition = strategy.position_size == 0
longPosition = strategy.position_size > 0

// Buy if close is above upper band
if inDateRange and noPosition and close > upper
    strategy.entry("Long", strategy.long)

// Sell/Exit if close is below lower band
if inDateRange and longPosition and close < lower
    strategy.close("Long")


Relacionados

Más.