Estrategia de trading con estadísticas de precios optimizadas de Momentum basada en el cruce de puntuaciones Z suavizadas

Z-SCORE SMA stdev PNL Momentum Filter
Fecha de creación: 2025-06-03 10:44:56 Última modificación: 2025-06-03 10:44:56
Copiar: 0 Número de Visitas: 330
2
Seguir
319
Seguidores

Estrategia de trading con estadísticas de precios optimizadas de Momentum basada en el cruce de puntuaciones Z suavizadas Estrategia de trading con estadísticas de precios optimizadas de Momentum basada en el cruce de puntuaciones Z suavizadas

Descripción general

La estrategia se basa en el concepto estadístico de Z-Score, que se utiliza para identificar la desviación estadística de los precios con respecto a sus medias locales. La estrategia calcula el Z-Score del precio de cierre y luego aplica medias móviles a corto y largo plazo para suavizar el Z-Score.

Principio de estrategia

El núcleo de esta estrategia es el cálculo y la aplicación de la puntuación Z. La puntuación Z es una estadística utilizada para medir el grado de desviación de un punto de datos respecto a la media de la muestra, en unidades de diferencia estándar. En esta estrategia, la fórmula para calcular la puntuación Z es: Z = (precio de cierre - SMA ((precio de cierre, N)) / STDEV ((precio de cierre, N)) Donde N es el ciclo básico definido por el usuario.

El proceso de ejecución de la política es el siguiente:

  1. Cálculo de la puntuación Z original del precio de cierre
  2. Aplicación de un suavizado a corto plazo (SMA) a la calificación Z original
  3. Aplicación de la ecuación Z a la ecuación SMA
  4. Cuando se usa una calificación Z de largo plazo sobre una calificación Z de corto plazo, se abre una posición para hacer más si se cumplen condiciones adicionales
  5. Cuando se lleva una calificación Z de largo plazo bajo una calificación Z de corto plazo, se cancela la posición si se cumplen condiciones adicionales

Las condiciones adicionales incluyen:

  • Intervalo de señal: entre dos señales del mismo tipo (entrada o salida) debe haber un mínimo de K líneas de intervalo
  • Filtración de potencia: no se puede entrar cuando hay tres o más líneas K ascendentes en serie; no se puede salir cuando hay tres o más líneas K descendentes en serie

Ventajas estratégicas

  1. Estadísticas básicasEl Z-score es una herramienta estadística bien desarrollada que permite identificar el grado de desviación de los precios de su promedio y capturar las oportunidades de que los precios vuelvan a la media.
  2. Tratamiento suave: Se reduce el ruido y se mejora la calidad de la señal mediante la aplicación de suavizado a corto y largo plazo de la calificación Z original.
  3. Control del intervalo de la señal: Se ha reducido el exceso de transacciones y la repetición de señales al establecer el mínimo intervalo de señal.
  4. El filtro de potenciaEn la actualidad, la mayoría de los países de la Unión Europea tienen un sistema de comercio de divisas que permite a los inversores de los países de la Unión Europea (UE) y a los países de la Unión Europea (UE) hacer frente a los riesgos de las fluctuaciones.
  5. La simplicidadLa estrategia utiliza solo datos de precios de cierre, no depende de un complejo conjunto de indicadores, es fácil de entender e implementar.
  6. Monitoreo de ganancias en tiempo real: Contiene una tabla que muestra en tiempo real las pérdidas no realizadas, lo que facilita a los comerciantes el monitoreo de la posición.
  7. Flexibilidad de parámetros: El usuario puede ajustar el ciclo básico y los parámetros de la calificación Z según los diferentes mercados y marcos de tiempo para mejorar la adaptabilidad.

Riesgo estratégico

  1. Riesgo de las hipótesis estadísticasLa calificación Z supone una distribución de precios casi normal, que puede funcionar mal en un entorno de mercado no normal.
  2. Sensibilidad de los parámetrosLa elección de los parámetros de la escala de base y la escala de Z tiene un impacto significativo en el rendimiento de la estrategia. La elección incorrecta de los parámetros puede causar sobreajuste o latencia de la señal.
  3. Limitaciones de un solo factor: La estrategia se basa en la generación de señales de cruce de la puntuación Z solamente, la falta de otros indicadores de confirmación puede conducir a falsas señales.
  4. Dependencia del entorno de mercadoEn un mercado de fuerte tendencia, las estrategias basadas en la regresión de la media pueden seguir generando señales erróneas.
  5. La señal está atrasada.: Debido a la utilización de una media móvil suave, la señal puede quedar rezagada, perdiendo el mejor punto de entrada o salida.

La solución:

  • El análisis de los diferentes escenarios del mercado para encontrar la combinación óptima de parámetros
  • Combinación de filtros de tendencia para reducir o desactivar el comercio en mercados de fuerte tendencia
  • Adición de indicadores de confirmación adicionales, como análisis de volumen de negocios u otros indicadores técnicos
  • Considere el uso de parámetros de adaptación para ajustar automáticamente los parámetros de puntuación Z en función de la volatilidad del mercado

Dirección de optimización

  1. Identificación de tendencias y integración: Añadir un componente de identificación de tendencias para ajustar el comportamiento estratégico en mercados con una clara dirección de tendencia. Esto se puede lograr a través de medias móviles a largo plazo o indicadores ADX, evitando la generación de señales de regreso a la media errónea en una tendencia fuerte.
  2. Ajuste por volatilidad: Realizar un ajuste adaptativo de los parámetros de calificación Z, optimizando automáticamente el ciclo básico y los parámetros de suavizado según la volatilidad del mercado. Esto aumentará la robustez de la estrategia en diferentes entornos de mercado.
  3. Análisis de múltiples marcos de tiempo: Integración de señales de puntuación Z de un marco de tiempo más alto como confirmación, solo negocie cuando las señales de varios marcos de tiempo coinciden, reduciendo las señales falsas.
  4. Mecanismo de detención de daños: Realizar un stop loss dinámico basado en el rango de fluctuación de la calificación Z, para mejorar la capacidad de gestión de riesgos. Por ejemplo, se puede configurar el stop loss como un determinado múltiplo de desviación de la calificación Z de entrada.
  5. Parte de las gananciasImplementación de estrategias para obtener ganancias por etapas, liquidación parcial de posiciones cuando la puntuación Z alcanza un determinado descenso, optimización de la administración de fondos.
  6. Confirmación de la entrega: Añadir análisis de transacción como confirmación de transacción, ejecutar transacciones solo cuando la señal de puntuación Z es respaldada por la transacción, mejorar la calidad de la señal.
  7. El conjunto de indicadoresCombinación de la puntuación Z con otros indicadores estadísticos o técnicos, como el RSI o las bandas de Brin, para crear modelos de decisión multifactoriales y aumentar la fiabilidad de la estrategia.

Resumir

La estrategia de negociación estadística de precios optimizada por dinámica basada en el cruce de la calificación Z es un sistema de negociación sencillo basado en principios estadísticos que se centra en capturar la desviación y la regresión de los precios con respecto a sus medias locales. Mediante el procesamiento de la suavización, el control del intervalo de la señal y el filtro de la dinámica, la estrategia reduce efectivamente el ruido de la negociación y mejora la calidad de la señal. La estrategia es especialmente adecuada para productos financieros con mercados inestables y comportamientos de regresión de la media.

Sin embargo, la estrategia también tiene algunas limitaciones, como la dependencia de hipótesis estadísticas, sensibilidad de parámetros y decisiones de un solo factor. Mediante la adición de medidas de optimización como la identificación de tendencias, ajuste de volatilidad, análisis de múltiples marcos de tiempo, mecanismos de parada de pérdidas, confirmación de la cantidad de transacciones y combinaciones de múltiples factores, se puede mejorar significativamente la robustez y el rendimiento de la estrategia.

En general, se trata de un marco estratégico con una sólida base teórica, que permite una estrategia concisa, fácil de entender y ampliar, adecuada para ser un componente básico de un sistema de negociación o una herramienta educativa para ayudar a los comerciantes a comprender la aplicación de la estadística en el comercio.

Código Fuente de la Estrategia
/*backtest
start: 2024-06-03 00:00:00
end: 2025-06-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Price Statistical Strategy-Z Score V 1.01", overlay=true)

// === Enable / Disable Z-Score Strategy Block ===
enableZScore = input.bool(true, title="Enable Smoothed Z-Score Strategy", tooltip="When enabled, this block calculates a smoothed Z-Score of the closing price and generates entry/exit signals based on crossover behavior between short-term and long-term smoothed Z-Scores.\n\nRecommended for quick and classic detection of price deviation from mean.\nSensitive to outliers. Best suited for relatively normal-distributed market conditions.")

// === Z-Score Parameters ===
zBaseLength = input.int(3, minval=1, title="Z-Score Base Period")
shortSmooth = input.int(3, title="Short-Term Smoothing")
longSmooth = input.int(5, title="Long-Term Smoothing")

// === Z-Score Calculation Function ===
f_zscore(src, length) =>
    mean = ta.sma(src, length)
    std_dev = ta.stdev(src, length)
    z = (src - mean) / std_dev
    z

// === Z-Score Logic ===
zRaw = f_zscore(close, zBaseLength)
zShort = ta.sma(zRaw, shortSmooth)
zLong = ta.sma(zRaw, longSmooth)


// === Minimum gap between identical signals ===
gapBars = input.int(5, minval=1, title="Bars gap between identical signals", tooltip="Minimum number of bars required between two identical signals (entry or exit). Helps reduce signal noise.")


// === Candle-based momentum filters ===
bullish_3bars = close > close[1] and close[1] > close[2] and close[2] > close[3] and close[3] > close[4]
bearish_3bars = close < close[1] and close[1] < close[2] and close[2] < close[3] and close[3] < close[4]

// === Entry and Exit Logic with minimum signal gap and candle momentum filter ===
var int lastEntryBar = na
var int lastExitBar  = na

if enableZScore
    longCondition = (zShort > zLong)
    exitCondition = (zShort < zLong)

    if longCondition and (na(lastEntryBar) or bar_index - lastEntryBar > gapBars) and not bullish_3bars
        strategy.entry("Z Score", strategy.long)
        lastEntryBar := bar_index

    if exitCondition and (na(lastExitBar) or bar_index - lastExitBar > gapBars) and not bearish_3bars
        strategy.close("Z Score", comment="Z Score")
        lastExitBar := bar_index

// === Real-time PnL Table for Last Open Position ===
var table positionTable = table.new(position.bottom_right, 2, 2, border_width=1)

// Header Labels
table.cell(positionTable, 0, 0, "Entry Price", text_color=color.white, bgcolor=color.gray)
table.cell(positionTable, 1, 0, "Unrealized PnL (%)", text_color=color.white, bgcolor=color.gray)

// Values (only when position is open)
isLong        = strategy.position_size > 0
entryPrice    = strategy.position_avg_price
unrealizedPnL = isLong ? (close - entryPrice) / entryPrice * 100 : na

// Define dynamic text color for PnL
pnlColor = unrealizedPnL > 0 ? color.green : unrealizedPnL < 0 ? color.red : color.gray

// Update Table Content
if isLong
    table.cell(positionTable, 0, 1, str.tostring(entryPrice, "#.####"), text_color=color.gray, bgcolor=color.new(color.gray, 90))
    table.cell(positionTable, 1, 1, str.tostring(unrealizedPnL, "#.##") + " %", text_color=pnlColor, bgcolor=color.new(pnlColor, 90))
else
    table.cell(positionTable, 0, 1, "—", text_color=color.gray, bgcolor=color.new(color.gray, 90))
    table.cell(positionTable, 1, 1, "—", text_color=color.gray, bgcolor=color.new(color.gray, 90))