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

Las entidades que no cumplen los requisitos establecidos en el artículo 4, apartado 1, letra b), del Reglamento (UE) no 575/2013 deberán tener en cuenta los siguientes elementos:

El autor:¿ Qué pasa?, fecha: 2024-12-11 14:52:24
Las etiquetas:- ¿ Qué?El ATR- ¿Qué es?La SMAEl EMAEl número de personas afectadasLa WMAVWMA- ¿ Qué?

img

Resumen general

Esta estrategia es un sistema de negociación inteligente basado en bandas de Bollinger e indicadores ATR, que incorpora mecanismos de toma de ganancias y stop-loss de varios niveles. La estrategia ingresa principalmente posiciones largas mediante la identificación de señales de reversión cerca de la banda de Bollinger inferior y gestiona el riesgo utilizando paradas de seguimiento dinámicas. El sistema está diseñado con un objetivo de ganancia del 20% y un nivel de stop-loss del 12%, al tiempo que incorpora paradas de seguimiento dinámicas basadas en ATR para proteger las ganancias al tiempo que permite que las tendencias tengan suficiente espacio para desarrollarse.

Principios de estrategia

La lógica central incluye varios componentes clave:

  1. Condiciones de entrada: Requiere una vela verde después de una vela roja que toca la banda inferior de Bollinger, lo que normalmente indica una señal de reversión potencial.
  2. Selección de media móvil: admite múltiples tipos (SMA, EMA, SMMA, WMA, VWMA), con SMA de 20 períodos por defecto.
  3. Parámetros de bandas de Bollinger: utiliza 1,5 desviaciones estándar para el ancho de banda, más conservadores que las 2 desviaciones estándar tradicionales.
  4. Mecanismo de obtención de beneficios: establece un objetivo inicial de beneficio del 20%.
  5. Mecanismo de suspensión de pérdidas: se aplica un límite de suspensión de pérdidas fijo del 12% para proteger el capital.
  6. Detención dinámica de tracción:
    • Activar la parada de seguimiento de ATR después de alcanzar el objetivo de ganancia
    • Inicia la parada de seguimiento dinámica ATR después de tocar la banda superior de Bollinger
    • Utiliza el multiplicador ATR para ajustar dinámicamente la distancia de parada trasera

Ventajas estratégicas

  1. Control de riesgos a varios niveles:
    • Las pérdidas de liquidación fijas protegen el capital
    • Las operaciones de liquidación de pérdidas
    • El bloqueo dinámico activado por la banda superior de Bollinger proporciona una protección adicional
  2. La selección flexible de medias móviles permite la adaptación a las diferentes condiciones del mercado
  3. El sistema de frenado de tracción dinámico basado en ATR se ajusta automáticamente en función de la volatilidad del mercado, evitando las salidas prematuras
  4. Las señales de entrada combinan patrones de precios e indicadores técnicos, mejorando la fiabilidad de la señal
  5. Apoya la gestión de posiciones y la configuración de los costes de transacción, más cercanos a las condiciones reales de negociación

Riesgos estratégicos

  1. Los mercados que oscilan rápidamente pueden conducir a operaciones frecuentes, aumentando los costes de transacción
  2. El 12% de stop loss fijo podría ser demasiado ajustado en mercados de alta volatilidad
  3. Las bandas de Bollinger pueden generar señales falsas en los mercados de tendencia
  4. El retraso del ATR puede dar lugar a mayores reducciones durante la volatilidad severa Medidas de mitigación:
  • Uso recomendado en períodos de tiempo más largos (30 minutos-1 hora)
  • Ajuste del porcentaje de pérdida de parada basado en las características específicas del instrumento
  • Considere agregar filtros de tendencia para reducir las señales falsas
  • Ajuste dinámico del multiplicador ATR para diferentes entornos de mercado

Direcciones para la optimización de la estrategia

  1. Optimización de entrada:
  • Mecanismo de confirmación de volumen
  • Incorporar indicadores de fuerza de tendencia para el filtrado de señales
  • Considere añadir indicadores de impulso para confirmar
  1. Optimización de pérdida de parada:
  • Convertir el stop-loss fijo en un stop dinámico basado en ATR
  • Desarrollar un algoritmo de stop-loss adaptativo
  • Ajuste dinámico de la distancia de parada en función de la volatilidad
  1. Optimización de la media móvil:
  • Prueba de diferentes combinaciones de períodos
  • Métodos de investigación en el período adaptativo
  • Considere el uso de la acción de precios en lugar de promedios móviles
  1. Optimización de la gestión de la posición:
  • Desarrollar un sistema de posicionamiento basado en la volatilidad
  • Implementar mecanismos de entrada y salida a escala
  • Añadir el control de la exposición al riesgo

Resumen de las actividades

La estrategia construye un sistema de negociación de varios niveles utilizando bandas de Bollinger e indicadores ATR, empleando métodos de gestión dinámicos para la entrada, la parada de pérdida y la toma de ganancias. Sus fortalezas se encuentran en su sistema de control de riesgos integral y su capacidad de adaptarse a la volatilidad del mercado. A través de las direcciones de optimización sugeridas, la estrategia tiene un margen de mejora significativo. Es particularmente adecuado para su uso en marcos de tiempo más grandes y puede ayudar a los inversores que poseen activos de calidad a optimizar su entrada y salida.


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

//@version=5
strategy("Demo GPT - Bollinger Bands Strategy with Tightened Trailing Stops", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)

// Input settings
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = 1.5 // Standard deviation multiplier set to 1.5
offset = input.int(0, "Offset", minval=-500, maxval=500)
atrMultiplier = input.float(1.0, title="ATR Multiplier for Trailing Stop", minval=0.1) // ATR multiplier for trailing stop

// Time range filters
start_date = input(timestamp("2018-01-01 00:00"), title="Start Date")
end_date = input(timestamp("2069-12-31 23:59"), title="End Date")
in_date_range = true

// 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

// ATR Calculation
atr = ta.atr(length) // Use ATR for trailing stop adjustments

// Plotting
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))

// Candle color detection
isGreen = close > open
isRed = close < open

// Flags for entry and exit conditions
var bool redTouchedLower = false
var float targetPrice = na
var float stopLossPrice = na
var float trailingStopPrice = na

if in_date_range
    // Entry Logic: First green candle after a red candle touches the lower band
    if close < lower and isRed
        redTouchedLower := true
    if redTouchedLower and isGreen
        strategy.entry("Long", strategy.long)
        targetPrice := close * 1.2       // Set the target price to 20% above the entry price
        stopLossPrice := close * 0.88   // Set the stop loss to 12% below the entry price
        trailingStopPrice := na         // Reset trailing stop on entry
        redTouchedLower := false

    // Exit Logic: Trailing stop after 20% price increase
    if strategy.position_size > 0 and not na(targetPrice) and close >= targetPrice
        if na(trailingStopPrice)
            trailingStopPrice := close - atr * atrMultiplier // Initialize trailing stop using ATR
        trailingStopPrice := math.max(trailingStopPrice, close - atr * atrMultiplier) // Tighten dynamically based on ATR

    // Exit if the price falls below the trailing stop after 20% increase
    if strategy.position_size > 0 and not na(trailingStopPrice) and close < trailingStopPrice
        strategy.close("Long", comment="Trailing Stop After 20% Increase")
        targetPrice := na // Reset the target price
        stopLossPrice := na // Reset the stop loss price
        trailingStopPrice := na // Reset trailing stop

    // Stop Loss: Exit if the price drops 12% below the entry price
    if strategy.position_size > 0 and not na(stopLossPrice) and close <= stopLossPrice
        strategy.close("Long", comment="Stop Loss Triggered")
        targetPrice := na // Reset the target price
        stopLossPrice := na // Reset the stop loss price
        trailingStopPrice := na // Reset trailing stop

    // Trailing Stop: Activate after touching the upper band
    if strategy.position_size > 0 and close >= upper and isGreen
        if na(trailingStopPrice)
            trailingStopPrice := close - atr * atrMultiplier // Initialize trailing stop using ATR
        trailingStopPrice := math.max(trailingStopPrice, close - atr * atrMultiplier) // Tighten dynamically based on ATR

    // Exit if the price falls below the trailing stop
    if strategy.position_size > 0 and not na(trailingStopPrice) and close < trailingStopPrice
        strategy.close("Long", comment="Trailing Stop Triggered")
        trailingStopPrice := na // Reset trailing stop
        targetPrice := na // Reset the target price
        stopLossPrice := na // Reset the stop loss price


Relacionados

Más.