Investigación y optimización de la estrategia de trading cuantitativo de cruce de tendencias de doble media móvil

SMA MA CROSSOVER momentum
Fecha de creación: 2025-02-20 11:10:22 Última modificación: 2025-02-27 17:48:50
Copiar: 0 Número de Visitas: 263
2
Seguir
319
Seguidores

Investigación y optimización de la estrategia de trading cuantitativo de cruce de tendencias de doble media móvil Investigación y optimización de la estrategia de trading cuantitativo de cruce de tendencias de doble media móvil

Descripción general

La estrategia es un sistema de seguimiento de tendencias basado en el cruce de dos líneas de referencia. La estrategia capta el momento de la conversión de las tendencias del mercado mediante la comparación de la relación de posición relativa de los promedios móviles a corto y largo plazo (de 9 y 21 días, respectivamente). La estrategia utiliza la teoría clásica del análisis técnico, combinada con métodos modernos de negociación cuantitativa, para lograr un proceso de toma de decisiones de negociación totalmente automatizado.

Principio de estrategia

La lógica central de la estrategia se basa en la señal cruzada de dos promedios móviles de diferentes períodos. Cuando el promedio corto (del día 9) sube y cruza el promedio largo (del día 21), el sistema considera que la dinámica del mercado se mueve hacia arriba, lo que desencadena una señal múltiple. Cuando el promedio corto (del día 9) baja y cruza la media larga, el sistema considera que la dinámica del mercado se mueve hacia abajo, y el comercio se cierra en posición de equilibrio.

Ventajas estratégicas

  1. La lógica es simple, clara, fácil de entender y mantener.
  2. Basado exclusivamente en datos de precios, sin necesidad de otros indicadores complejos
  3. La función de seguimiento de tendencias en el portátil captura las tendencias a medio y largo plazo de manera efectiva
  4. Tiene un sistema completo de estadísticas de transacciones para evaluar estrategias
  5. Funcionamiento totalmente automatizado para reducir el impacto emocional de la intervención humana

Riesgo estratégico

  1. Las señales falsas pueden ser frecuentes en mercados convulsionados
  2. Tiempo de entrada y salida un poco atrasado
  3. No hay un mecanismo de suspensión de pérdidas, lo que puede suponer grandes pérdidas en situaciones de gran volatilidad.
  4. Dependencia de los indicadores de línea media y falta de análisis multidimensional del mercado
  5. Parámetros fijos, dificultad para adaptarse a diferentes entornos de mercado

Dirección de optimización de la estrategia

  1. Introducción de ciclos de adaptación para mejorar la adaptabilidad de las estrategias al entorno del mercado
  2. Aumentar los filtros de volatilidad y reducir las falsas señales en los mercados de volatilidad
  3. Diseño de mecanismos dinámicos para detener el riesgo de caída
  4. Combinación con otros indicadores técnicos, como el RSI o el MACD, para mejorar la fiabilidad de la señal
  5. Desarrollo de módulos de reconocimiento de entornos de mercado para ajustes de parámetros inteligentes

Resumir

Esta es una estrategia de seguimiento de tendencias clásica y práctica que capta los cambios de la dinámica del mercado a través de la cruz de dos líneas de equilibrio. Si bien existe cierto riesgo de retraso y falsas señales, sus características simples y estables lo convierten en una herramienta importante en el campo de la negociación cuantitativa. La estabilidad y la rentabilidad de la estrategia se espera que se mejore aún más con la dirección de optimización propuesta.

Código Fuente de la Estrategia
/*backtest
start: 2024-05-20 00:00:00
end: 2024-12-13 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Simple MA Crossover Strategy", overlay=true)

// Input parameters
shortMA = ta.sma(close, 9)
longMA = ta.sma(close, 21)

// Buy/Sell conditions
buyCondition = ta.crossover(shortMA, longMA)
sellCondition = ta.crossunder(shortMA, longMA)

// Plot moving averages
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")

// Execute trades
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.close("Buy")

// Track trades, wins, and losses
var int totalTrades = 0
var int totalWins = 0
var int totalLosses = 0

if (strategy.opentrades > 0)
    totalTrades := totalTrades + 1

if (strategy.opentrades == 0 and strategy.opentrades[1] > 0)
    if (strategy.netprofit > 0)
        totalWins := totalWins + 1
    else
        totalLosses := totalLosses + 1

// Plot trade statistics
var label tradeStats = na
if (not na(tradeStats))
    label.delete(tradeStats)

tradeStats := label.new(bar_index, high, text="Trades: " + str.tostring(totalTrades) + "\nWins: " + str.tostring(totalWins) + "\nLosses: " + str.tostring(totalLosses), style=label.style_label_down, color=color.white, textcolor=color.black)