Estrategia cuantitativa de cruce de medias móviles de momentum


Fecha de creación: 2024-01-26 11:39:26 Última modificación: 2024-01-26 11:39:26
Copiar: 0 Número de Visitas: 587
1
Seguir
1617
Seguidores

Estrategia cuantitativa de cruce de medias móviles de momentum

Descripción general

La estrategia combina las medias móviles y el volumen de operaciones, dos indicadores técnicos clave, y diseña las reglas de entrada y salida para las posiciones largas y cortas, formando una estrategia de comercio cuantitativa completa.

Principio de estrategia

Indicadores clave

  1. Media móvil: media móvil rápida (línea azul) y media móvil lenta (línea roja).
  2. Volumen de transacciones: volumen de transacciones en 24 horas (púrpura) y promedio de transacciones en 7 días (línea de aluminio).

Condiciones de la estrategia

Las condiciones de entrada para las posiciones largas:

  1. Un promedio móvil rápido es un promedio móvil lento.
  2. El volumen de transacciones de 24 horas es inferior al 50% del promedio de transacciones de 7 días

Las condiciones de entrada para las posiciones cortas:
El promedio móvil rápido está debajo del promedio móvil lento.

Entrada y salida

La entrada en juego:Hacer más cuando cumple con los requisitos para entrar en una posición larga

La entrada de las posiciones cortas:Hacer espacio cuando se cumplen las condiciones de entrada a la posición corta

Paralización y pérdidas: Mostrar el punto de parada y el punto de parada después de hacer más

Análisis de las ventajas

  1. Combinación de indicadores de precios y volumen de transacciones para evitar falsos brechas
  2. Reglas claras de entrada y salida
  3. Mecanismo de control de riesgo para detener el daño

Análisis de riesgos

  1. Las estrategias de doble línea son propensas a generar transacciones frecuentes.
  2. La calidad de los datos de volumen de transacciones no está garantizada
  3. Optimización de parámetros con riesgo de optimización excesiva

Mejoras en el método:

  1. Ajuste adecuado de los parámetros de la línea media para reducir la frecuencia de las transacciones
  2. Combinación de más fuentes de datos para la verificación de señales cuantitativas
  3. Estricta verificación de retroalimentación para evitar optimización excesiva

Dirección de optimización

  1. Añadir otros indicadores para filtrar señales
  2. Ajuste dinámico del punto de parada
  3. Análisis de múltiples marcos de tiempo para mejorar la estabilidad

Resumir

La estrategia integra el indicador de promedio móvil y el indicador de volumen de transacciones y diseña una estrategia de comercio cuantitativa completa a través de un mecanismo de doble confirmación. Tiene las ventajas de tener condiciones de entrada claras, paradas y pérdidas y una operación sencilla.

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

//@version=5
strategy("MA and Volume Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")
volumePercentageThreshold = input(50, title="Volume Percentage Threshold")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Calculate 24-hour volume and weekly volume average
dailyVolume = request.security(syminfo.tickerid, "D", volume)
weeklyVolumeAvg = ta.sma(request.security(syminfo.tickerid, "W", volume), 7)

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA) and dailyVolume < (weeklyVolumeAvg * volumePercentageThreshold / 100)
shortCondition = ta.crossunder(fastMA, slowMA)

// Set take profit and stop loss levels
takeProfitLong = close * 1.50
stopLossLong = close * 0.90

// Strategy orders
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Plot 24-hour volume and weekly volume average
plot(dailyVolume, color=color.purple, title="24-Hour Volume", transp=0)
plot(weeklyVolumeAvg, color=color.orange, title="Weekly Volume Average")

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)

// Plot take profit and stop loss levels only when a valid trade is active
plotshape(series=longCondition, title="Take Profit Long", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=longCondition, title="Stop Loss Long", color=color.red, style=shape.triangledown, size=size.small)