Estrategia de apertura gradual con reversión a la media


Fecha de creación: 2024-01-29 15:47:24 Última modificación: 2024-01-29 15:47:24
Copiar: 0 Número de Visitas: 638
1
Seguir
1617
Seguidores

Estrategia de apertura gradual con reversión a la media

Descripción general

La estrategia de retorno a la media gradual para abrir posiciones es un guión de estrategia de comercio cuantitativo avanzado diseñado por HedgerLabs, que se centra en la técnica de retorno a la media de los mercados financieros. La estrategia apunta a los comerciantes que prefieren un método sistematizado y que enfatizan el método de apertura de posiciones gradual basado en un promedio móvil relativo a los precios.

Principio de estrategia

El núcleo de esta estrategia es el simple movimiento medio (SMA). Todas las entradas y salidas se realizan alrededor de la media móvil. El comerciante puede personalizar la longitud del MA para que se adapte a diferentes estilos de negociación y períodos de tiempo.

La peculiaridad de esta estrategia reside en su mecanismo de apertura progresiva. La estrategia inicia la primera posición cuando el precio se desvía de la media móvil por más de un cierto porcentaje. Posteriormente, a medida que el precio continúa desviándose de la media móvil, la estrategia aumenta las posiciones de manera progresiva, según lo definido por el comerciante. Este método permite obtener mayores ganancias cuando la volatilidad del mercado aumenta.

La estrategia también maneja las posiciones de manera inteligente. Hacer más cuando el precio está por debajo de la media móvil y dejar de lado cuando está por encima, para adaptarse a las diferentes condiciones del mercado. El punto de equilibrio se establece cuando el precio toca la media móvil, con el objetivo de capturar un potencial punto de inflexión para lograr un cierre óptimo de la posición.

A través de la activacióncalc_on_every_tickLa estrategia permite evaluar continuamente las condiciones del mercado y reaccionar a tiempo.

Análisis de las ventajas

La estrategia de apertura progresiva de la regresión a la media tiene las siguientes ventajas:

  1. Un alto grado de sistematización reduce el riesgo de errores subjetivos
  2. La apertura gradual de posiciones puede generar mayores ganancias en momentos de grandes fluctuaciones en el mercado.
  3. Se pueden personalizar parámetros como el ciclo MA para adaptarse a diferentes variedades
  4. El mecanismo de gestión de posiciones es inteligente y permite ajustar automáticamente las posiciones excedentes.
  5. La elección de un punto de salida razonable es favorable para capturar reversiones y cerrar posiciones

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Depende de los indicadores técnicos, puede haber riesgo de señales falsas
  2. No puede juzgar las tendencias del mercado y es fácil de atrapar.
  3. La configuración incorrecta de los parámetros MA puede causar pérdidas frecuentes
  4. El riesgo de las posiciones aumenta con la apertura gradual.

Se puede mitigar este riesgo optimizando adecuadamente las salidas, evaluando mejor las tendencias o reduciendo adecuadamente el margen de apertura de posiciones.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Aumentar las condiciones de eliminación de tendencias para evitar posiciones en contra
  2. Optimización de la apertura de posiciones combinada con el índice de volatilidad
  3. Optimización de la pérdida móvil para bloquear las ganancias
  4. Intentar diferentes tipos de medias móviles
  5. Añadir un filtro para reducir la señal de invalidez

Resumir

La estrategia de apertura de posición progresiva de retorno al promedio se centra en la técnica de negociación de retorno al promedio, que utiliza una posición de gestión progresiva sistematizada y parámetros personalizables para diferentes variedades de operaciones. La estrategia funciona bien en mercados volátiles y es adecuada para los operadores cuantitativos que se centran en operaciones de línea corta.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true)

// Input for adjustable settings
maLength = input.int(30, title="MA Length", minval=1)
initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01)
percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01)

// Calculating Moving Average
ma = ta.sma(close, maLength)

// Plotting the Moving Average
plot(ma, "Moving Average", color=color.blue)

var float lastBuyPrice = na
var float lastSellPrice = na

// Function to calculate absolute price percentage difference
pricePercentDiff(price1, price2) =>
    diff = math.abs(price1 - price2) / price2 * 100
    diff

// Initial Entry Condition Check Function
initialEntryCondition(price, ma, initialPercent) =>
    pricePercentDiff(price, ma) >= initialPercent

// Enhanced Entry Logic for Buy and Sell
if (low < ma)
    if (na(lastBuyPrice))
        if (initialEntryCondition(low, ma, initialPercent))
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low
    else
        if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep)
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low

if (high > ma)
    if (na(lastSellPrice))
        if (initialEntryCondition(high, ma, initialPercent))
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high
    else
        if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep)
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high

// Exit Conditions - Close position if price touches the MA
if (close >= ma and strategy.position_size > 0)
    strategy.close("Buy")
    lastBuyPrice := na

if (close <= ma and strategy.position_size < 0)
    strategy.close("Sell")
    lastSellPrice := na

// Reset last order price when position is closed
if (strategy.position_size == 0)
    lastBuyPrice := na
    lastSellPrice := na