Estrategia avanzada de trading cuantitativo que combina bandas de Bollinger dinámicas con el indicador PSAR

BB PSAR SMA TP SL
Fecha de creación: 2025-02-18 14:11:00 Última modificación: 2025-02-18 14:11:00
Copiar: 0 Número de Visitas: 355
1
Seguir
1617
Seguidores

Estrategia avanzada de trading cuantitativo que combina bandas de Bollinger dinámicas con el indicador PSAR

Descripción general

Se trata de una estrategia de negociación integrada que combina el indicador de cambio de la banda de Brin y la línea de parálisis (PSAR) para administrar las operaciones con una relación de riesgo-beneficio fija. La estrategia se ejecuta principalmente durante el día, identificando oportunidades de negociación a través de la ruptura de la banda de Brin y la configuración de la gráfica de parálisis, mientras que se utiliza el indicador de PSAR para confirmar la tendencia.

Principio de estrategia

Las estrategias de uso de múltiples indicadores técnicos para la confirmación de señales de comercio:

  1. El uso de la banda de Brin de 20 ciclos como el principal indicador de la gama de fluctuaciones de precios
  2. Utiliza el indicador PSAR (inicial 0.02, máximo 0.2) como herramienta de confirmación de tendencias
  3. Calcula el rango de entornos de cables de aluminio ((longitud de entornos / longitud total ≥ 0.33) para asegurar la fiabilidad de la señal
  4. Ejecutar operaciones dentro de la ventana de tiempo de negociación designada (GMT-5 7:30-16:00)
  5. Condición de entrada múltiple: el precio de cierre se desvía y la proporción de la entidad de acero cumple con los requisitos
  6. Condiciones de entrada sin cabeza: el precio de cierre se rompe y la proporción de la entidad de aluminio cumple con los requisitos

Ventajas estratégicas

  1. Mejora de la fiabilidad de la señal combinando múltiples indicadores técnicos
  2. La adopción de una relación de riesgo-beneficio fija de 1: 3 favorece la estabilidad de los beneficios a largo plazo
  3. Filtrado por tiempo para evitar interrupciones durante períodos de baja liquidez
  4. Filtrado por proporción de entornos de aluminio para reducir falsas brechas
  5. Establecer objetivos dinámicos de pérdidas y ganancias para adaptarse a las fluctuaciones del mercado
  6. La lógica de la estrategia es clara, fácil de entender y optimizar

Riesgo estratégico

  1. Un posible desliz en un mercado muy volátil
  2. El riesgo fijo de beneficio es mayor que la posibilidad de perder parte de la oportunidad de ganancias
  3. El filtro de tiempo podría haber perdido una oportunidad de mercado importante
  4. Múltiples indicadores pueden causar retraso en la señal
  5. Posibilidad de pérdidas continuas en un mercado convulso

Dirección de optimización de la estrategia

  1. Introducción de ciclos de banda de Brin adaptados para adaptarse a diferentes entornos del mercado
  2. Desarrollo de mecanismos dinámicos de riesgo y ganancias frente a los mecanismos establecidos
  3. Añadir indicador de volumen como confirmación auxiliar
  4. Optimización de los parámetros PSAR para mejorar el seguimiento de tendencias
  5. Unirse al filtro de fluctuaciones del mercado
  6. Desarrollo de mecanismos de filtración de tiempo más inteligentes

Resumir

La estrategia construye un sistema de negociación completo a través de la aplicación integrada de las bandas de Brin, los indicadores PSAR y el análisis de gráficos de barras. La ventaja central de la estrategia reside en la sincronización de múltiples indicadores técnicos y en la gestión estricta del riesgo. Aunque existen algunos riesgos inherentes, la orientación de optimización recomendada puede mejorar aún más la estabilidad y la rentabilidad de la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Estrategia Bollinger con PSAR y TP Máximo/ Mínimo", overlay=true)

// Parámetros de las Bandas de Bollinger
bb_length = input.int(20, title="Periodo de Bandas de Bollinger", minval=1)
bb_stddev = input.float(2.0, title="Desviación Estándar", step=0.1)

// Parámetros del Parabolic SAR
psar_start = input.float(0.02, title="PSAR Factor Inicial", step=0.01)
psar_increment = input.float(0.02, title="PSAR Incremento", step=0.01)
psar_max = input.float(0.2, title="PSAR Máximo", step=0.01)

// Cálculo de Bandas de Bollinger
basis = ta.sma(close, bb_length)
upper_band = basis + bb_stddev * ta.stdev(close, bb_length)
lower_band = basis - bb_stddev * ta.stdev(close, bb_length)

// Cálculo del Parabolic SAR
psar = ta.sar(psar_start, psar_increment, psar_max)

// Cálculo del cuerpo de la vela
body_high = math.max(open, close)
body_low = math.min(open, close)
body_length = body_high - body_low
total_length = high - low
body_ratio = body_length / total_length

// Condiciones de Entrada
long_condition = close > upper_band and body_ratio >= 0.33
short_condition = close < lower_band and body_ratio >= 0.33

// Filtro de tiempo: Operar solo de 7:30 AM a 4:00 PM hora colombiana
start_time = timestamp("GMT-5", year, month, dayofmonth, 7, 30)
end_time = timestamp("GMT-5", year, month, dayofmonth, 16, 0)
time_condition = (time >= start_time) and (time <= end_time)

// Variables para mantener el TP máximo y mínimo
var float max_tp = na
var float min_tp = na
var float dynamic_stop = na

// Condiciones de Entrada y Salida
if (long_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = low  // SL en el mínimo de la vela
    take_profit = entry_price + 3 * (entry_price - stop_loss)  // TP con relación 1:3
    strategy.entry("Compra", strategy.long)
    strategy.exit("Exit Compra", "Compra", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación larga
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_up, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)

if (short_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = high  // SL en el máximo de la vela
    take_profit = entry_price - 3 * (stop_loss - entry_price)  // TP con relación 1:3
    strategy.entry("Venta", strategy.short)
    strategy.exit("Exit Venta", "Venta", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación corta
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)

// Dibujar Bandas de Bollinger
plot(upper_band, color=color.red, title="Banda Superior")
plot(lower_band, color=color.green, title="Banda Inferior")
plot(basis, color=color.blue, title="Media Base")

// Dibujar Parabolic SAR
plot(psar, style=plot.style_circles, color=color.orange, title="Parabolic SAR")