Estrategia de trading cuantitativo basada en tendencia y media móvil


Fecha de creación: 2023-12-06 17:55:42 Última modificación: 2023-12-06 17:55:42
Copiar: 0 Número de Visitas: 545
1
Seguir
1619
Seguidores

Estrategia de trading cuantitativo basada en tendencia y media móvil

Descripción general

El nombre de la estrategia es Trend Following with EMA, es decir, una estrategia de negociación cuantitativa basada en tendencias y líneas medias. Combina el seguimiento de tendencias y el índice de medias móviles (EMA), dos indicadores técnicos para identificar las tendencias de precios de las acciones u otros productos financieros, y comprar y vender en función de ello.

Principio de estrategia

La principal lógica de esta estrategia es la siguiente:

  1. El uso de la longitud de 180 ciclos de los puntos bajos y el cruce de los precios de cierre para determinar la tendencia al alza de los precios. Cuando los puntos bajos a través de los precios de cierre, indica que los precios comienzan a subir, formar una tendencia, en este momento hacer más;

  2. Cuando el precio cambia de una tendencia descendente a una tendencia ascendente, es decir, cuando el precio de cierre supera el precio de apertura, y cuando está por debajo de la línea EMA, también hace más;

  3. Cuando los precios cambian de una tendencia alcista a una tendencia bajista, es decir, cuando el precio de cierre se abre por debajo del precio de cierre, se borran las posiciones de más cabeza;

  4. Utiliza los picos de 180 ciclos de longitud y el cruce de los EMA para determinar la tendencia a la baja de los precios. Cuando los picos cruzan por debajo de la línea EMA y los picos están por debajo de la línea EMA, haga una brecha.

  5. Cuando el precio cambia de una tendencia alcista a una tendencia bajista, es decir, cuando el precio de cierre se abre por debajo del precio de cierre, y cuando está por encima de la línea EMA, también está cerrado;

  6. Cuando el precio cambia de una tendencia descendente a una tendencia ascendente, es decir, cuando el precio de cierre supera el precio de apertura, se borra la posición abierta.

Análisis de las ventajas estratégicas

Esta estrategia, combinada con el seguimiento de tendencias y el indicador de la línea media, es eficaz para capturar los puntos de inflexión de las tendencias de los precios y tiene las siguientes ventajas:

  1. La sección de seguimiento de tendencias permite determinar la dirección de la tendencia de los precios, reduciendo la probabilidad de operaciones erróneas;
  2. La sección de la línea media puede filtrar eficazmente el ruido de las pequeñas fluctuaciones de los precios, identificando tendencias más grandes;
  3. La combinación de los dos indicadores puede mejorar la fiabilidad de las señales de negociación y evitar falsos positivos.
  4. La configuración de los parámetros es razonablemente flexible y la longitud del ciclo se puede ajustar para adaptarse a diferentes variedades y estilos de negociación.

Análisis de riesgos

La estrategia también tiene ciertos riesgos:

  1. En un escenario de gran volatilidad, la media EMA se retrasa mucho y puede perder el mejor momento de entrada;
  2. Los indicadores de tendencia son sensibles a los parámetros, y diferentes configuraciones de ciclo pueden causar diferentes señales de negociación y ganancias.
  3. La frecuencia de cambio de las posiciones en blanco de múltiples cabezas puede ser demasiado alta, lo que aumenta el deslizamiento de la transacción y la pérdida de comisiones.

Las soluciones a los riesgos son:

  1. Optimización de los parámetros periódicos de la línea media de la EMA para reducir la probabilidad de retraso;
  2. Optimizar los parámetros para encontrar el parámetro de ciclo más adecuado para la variedad;
  3. Configure el parón de pérdidas para evitar el cambio de posición con demasiada frecuencia.

Dirección de optimización de la estrategia

La estrategia puede ser optimizada en los siguientes aspectos:

  1. La adición de un módulo de gestión de posiciones basado en la volatilidad, que permite ajustar las posiciones de forma dinámica en función de las fluctuaciones del mercado;
  2. El aumento de los modelos de aprendizaje automático para determinar tendencias de precios, en lugar de un simple juicio cruzado, para mejorar la precisión;
  3. En combinación con los fundamentos, los datos refinan las señales de transacción para evitar señales erróneas en los cambios en los resultados de la empresa.
  4. Optimización de los parámetros de varias variedades para buscar la combinación óptima de parámetros de ciclo, mejorar la estabilidad y maximizar los beneficios.

Resumir

La estrategia en general es una estrategia típica de seguimiento de tendencias, que utiliza los indicadores característicos del precio para determinar la dirección y seguir la tendencia. Es simple, eficaz, fácil de implementar y adecuada como estrategia de entrada para el comercio cuantitativo. Pero también hay algunos problemas, como el retraso de los indicadores, la sensibilidad de los parámetros, etc. Estos problemas pueden mejorarse mediante la introducción de más fuentes de datos, el uso de aprendizaje automático, etc.

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

//@version=2
strategy("Trend + EMA", overlay=true, initial_capital=10000, currency=currency.USD, pyramiding=0)

tim=input("180", title="Period for trend")
ema_period=input(180, title="EMA period")

opn = request.security(syminfo.tickerid, tim, open)
cls = request.security(syminfo.tickerid, tim, close)

emaline = ema(close, ema_period)

plot(opn, color=red)
plot(cls, color=green)
plot(emaline, color=black)

if (crossover(low, emaline))
    strategy.entry("long", strategy.long)

if (crossover(cls, opn) and emaline < opn and strategy.position_size == 0)
    strategy.entry("long", strategy.long)

if (crossunder(cls, opn) and strategy.position_size > 0)
    strategy.close_all()

if (crossunder(high, emaline) and high < emaline)
    strategy.entry("short", strategy.short)

if (crossunder(cls, opn) and emaline > opn and strategy.position_size == 0)
    strategy.entry("short", strategy.short)

if (crossover(cls, opn) and strategy.position_size < 0)
    strategy.close_all()