Estrategia cuantitativa de seguimiento del impulso de cruce de medias móviles dobles

MA SMA EMA SMMA RMA WMA VWMA
Fecha de creación: 2024-11-27 15:06:57 Última modificación: 2024-11-27 15:06:57
Copiar: 1 Número de Visitas: 478
1
Seguir
1617
Seguidores

Estrategia cuantitativa de seguimiento del impulso de cruce de medias móviles dobles

Descripción general

Se trata de una estrategia de trading cuantitativa basada en señales de cruce de dos líneas equiláreas. La estrategia utiliza dos medias móviles, una como línea de señal principal y otra como línea de señal plana. La estrategia genera señales de trading mediante el monitoreo de la intersección de precios y líneas de señal plana, lo que permite el seguimiento de la tendencia del mercado y el seguimiento de la dinámica.

Principio de estrategia

La estrategia utiliza dos niveles de cálculo de las medias móviles: primero, se calcula una media móvil básica (el período predeterminado es de 9) y luego se realiza un segundo proceso de suavizado de esta línea (el período predeterminado es de 5). La estrategia ofrece una variedad de métodos de cálculo de medias, que incluyen media móvil simple (SMA), media móvil indexada (EMA), media móvil plana (SMMA), media móvil ponderada (WMA) y media móvil ponderada (VWMA). Se genera una señal de multiplicación cuando el precio de la liquidación cruza la línea de la liquidación hacia arriba; se genera una señal de ruptura cuando el precio de la liquidación cruza la línea de la liquidación hacia abajo.

Ventajas estratégicas

  1. El mecanismo de generación de señales es claro, simple, fácil de entender e implementar
  2. Se reduce la generación de señales falsas mediante un segundo proceso de suavización.
  3. Ofrece una variedad de métodos de cálculo lineal promedio, con opciones flexibles en función de las diferentes características del mercado
  4. La configuración de los parámetros es flexible y se puede optimizar para diferentes ciclos de mercado
  5. Código claro, fácil de mantener y ampliar
  6. Tiene una buena capacidad de seguimiento de tendencias

Riesgo estratégico

  1. En un mercado volátil pueden generarse señales comerciales frecuentes, lo que aumenta los costos de transacción.
  2. Hay un cierto retraso, y es posible que se pierda el punto de partida.
  3. Un retroceso mayor en una rápida reversión
  4. Estrategia de indicadores técnicos únicos, falta de juicio sobre el entorno del mercado
  5. La optimización excesiva de los parámetros puede generar riesgos de sobreajuste

Dirección de optimización de la estrategia

  1. Introducción de mecanismos de evaluación del entorno del mercado, con configuraciones de parámetros diferentes para diferentes estados del mercado
  2. Añadir un mecanismo de suspensión de pérdidas para controlar el riesgo
  3. Aumentar los filtros de volumen de transacciones para evitar el comercio en un entorno de baja liquidez
  4. Introducción de otros indicadores técnicos como señales de confirmación auxiliares
  5. Desarrollar mecanismos de adaptación de parámetros para ajustarlos a la dinámica de los cambios en el mercado
  6. Módulo de administración de ubicación para un control de posición más flexible

Resumir

Se trata de una versión mejorada de la clásica estrategia de seguimiento de tendencias, que mejora la estabilidad a través del diseño de dos capas de medias móviles, al tiempo que mantiene la simplicidad de la estrategia. La estrategia tiene una buena escalabilidad y flexibilidad, y puede adaptarse a diferentes entornos de mercado a través de la optimización de parámetros y la extensión de funciones.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average 1.0 Strategy", overlay=true)

// Input for Moving Average Length
len = input.int(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

// Calculate the Moving Average
out = ta.sma(src, len)

// Plot the Moving Average
plot(out, color=color.blue, title="MA", offset=offset)

// Function to choose the type of moving average
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)

// Input for Smoothing Method and Length
typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing")

// Calculate the Smoothing Line
smoothingLine = ma(out, smoothingLength, typeMA)

// Plot the Smoothing Line
plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset)

// Strategy Logic
if (ta.crossover(close, smoothingLine))
    strategy.entry("Buy", strategy.long)

if (ta.crossunder(close, smoothingLine))
    strategy.entry("Sell", strategy.short)