Estrategia de umbral dinámico adaptativo de series temporales basada en datos de capital

El autor:¿ Qué pasa?, Fecha: 2024-04-01 10:48:52
Las etiquetas:

img

Resumen general

Esta estrategia se basa en los datos de la serie temporal del valor del activo neto de las acciones u otros activos financieros. Al calcular dinámicamente la relación de eficiencia (ER) como el factor de suavizado de la media móvil exponencial (EMA), ajusta adaptivamente las bandas superior e inferior para desencadenar señales de compra y venta. La idea principal de esta estrategia es utilizar toda la información contenida en los datos del valor del activo neto en sí, al calcular la complejidad de los cambios en el valor del activo neto (ER) para ajustar dinámicamente el factor de suavizado de la EMA, y luego obtener las bandas superior e inferior que cambian dinámicamente.

Principio de la estrategia

  1. Calcular la relación de eficiencia (ER) de los datos sobre el valor neto de los activos, que es la relación entre el cambio en el valor neto de los activos y el cambio total.
  2. Utilice ER como el factor de suavizado alfa de la función pine_ema para calcular dinámicamente la media EMA y la desviación absoluta del valor neto del activo.
  3. Se suma y resta la desviación absoluta de la media de la EMA para obtener las bandas superior e inferior que cambian dinámicamente.
  4. Cuando el valor neto del activo actual se rompa la banda superior, abrir una posición larga, y cuando se rompe la banda inferior, cerrar la posición.

Ventajas estratégicas

  1. Utiliza al máximo toda la información contenida en los datos de las series temporales del valor neto de los activos, sin necesidad de establecer ningún parámetro y optimizar, el método es simple y natural.
  2. Mediante el cálculo dinámico de ER para ajustar el factor de suavización de la EMA, puede adaptarse a la complejidad de los cambios en el valor neto de los activos y responder con flexibilidad a los cambios del mercado.
  3. En comparación con la EMA tradicional de parámetros fijos, la EMA dinámica puede reducir eficazmente el número de operaciones y el tiempo de retención, reduciendo los costes y riesgos de las transacciones.
  4. En comparación con la compra y la retención, esta estrategia puede reducir el retiro máximo en 2-3 veces, o aumentar el rendimiento en 2-3 veces bajo el mismo retiro.
  5. Puede aplicarse fácilmente a la combinación de múltiples estrategias para lograr el propósito de encender/apagar automáticamente las estrategias.

Riesgos estratégicos

  1. Esta estrategia se basa en los datos de las series temporales del valor neto de los activos. Para situaciones en las que la tendencia de los precios se invierte de manera fundamental, la velocidad de activación del cierre de posiciones puede ser más lenta, lo que afecta al rendimiento.
  2. Aunque esta estrategia puede ajustar los parámetros de forma adaptativa, su adaptabilidad a condiciones extremas del mercado requiere un mayor examen.
  3. Esta estrategia se centra actualmente principalmente en las posiciones largas y debe mejorarse aún más para las posiciones cortas.
  4. En las aplicaciones prácticas, esta estrategia tiene requisitos más altos para la calidad de los objetivos seleccionados y requiere la selección de objetivos con tendencias al alza a largo plazo.

Direcciones para la optimización de la estrategia

  1. Considerar la posibilidad de optimizar aún más el método de cálculo de la EI, introducir más indicadores que reflejen las características de los cambios en el valor neto de los activos y mejorar la solidez y la eficacia de la EI.
  2. Refinar aún más las condiciones de apertura y cierre, por ejemplo, considerar la adición de pérdidas de parada de seguimiento, pérdidas de parada porcentuales, etc., para mejorar la rentabilidad y la resistencia al riesgo de la estrategia.
  3. Para diferentes objetivos y entornos de mercado, optimizar los parámetros y ajustar adaptativamente la estrategia para mejorar su versatilidad.
  4. Combinar esta estrategia con otras estrategias (como el seguimiento de tendencias, la reversión media, etc.) para aprovechar las ventajas de las diferentes estrategias y mejorar la solidez y la rentabilidad de la cartera.

Resumen de las actividades

Esta estrategia calcula dinámicamente la relación de eficiencia (ER) como el factor de suavizado de la media móvil exponencial (EMA), ajusta de manera adaptativa las bandas superior e inferior y desencadena señales de compra y venta. Esta estrategia hace pleno uso de la información contenida en los datos de la serie de tiempo del valor neto de los activos, sin la necesidad de demasiados ajustes y optimizaciones de parámetros, el método es simple y natural, y puede responder de manera flexible a los cambios del mercado y controlar de manera efectiva los recortes. Sin embargo, la adaptabilidad de esta estrategia a condiciones extremas del mercado necesita un mayor examen, y se debe prestar atención a la selección de objetivos en aplicaciones prácticas. En el futuro, podemos optimizar y mejorar aún más la estrategia desde los aspectos de cálculo, condiciones de apertura y cierre, optimización de parámetros, estrategia de combinación, etc., para mejorar la robustez y rentabilidad de la estrategia.


/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy('Equity control', 'EC')
// study('Exponential bands', 'EB', overlay = true)


er(src) =>
    var start = src
    var total = 0.0

    total += abs(src - nz(src[1], src))
    net    = abs(src - start          )
    
    net / total

pine_ema(src, alpha) =>
    mean = 0.0
    dev  = 0.0

    mean := na(mean[1]) ? src : (1 - alpha) * mean[1] + alpha *     src
    dev  := na(dev [1]) ? 0   : (1 - alpha) * dev [1] + alpha * abs(src - mean)

    [mean, dev]


src = input(close)


a           = er      (src   )
[mean, dev] = pine_ema(src, a)

dev_lower = mean - dev
dev_upper = mean + dev


// plot(dev_lower, 'lower deviation', color.silver, 2, plot.style_stepline)
// plot(mean     , 'basis'          , color.purple, 1, plot.style_stepline)
// plot(dev_upper, 'upper deviation', color.silver, 2, plot.style_stepline)


if src > dev_upper
    strategy.entry('event', true, comment = 'on')
if src < dev_lower
    strategy.close('event', comment = 'off')


plot(strategy.equity)

//bigDope

Más.