Estrategia de trading cuantitativo de señales lineales basada en la normalización de la puntuación Z

RSI SMA Z-SCORE LSB TP SL
Fecha de creación: 2025-01-06 16:14:07 Última modificación: 2025-01-06 16:14:07
Copiar: 6 Número de Visitas: 437
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo de señales lineales basada en la normalización de la puntuación Z

Descripción general

Esta estrategia es un sistema de trading cuantitativo basado en señales lineales y normalización de puntuación Z. Construye señales comerciales estandarizadas combinando variables exógenas como el RSI con datos de precios y utiliza umbrales para activar transacciones. Esta estrategia es adecuada para escenarios de negociación intradía y de alta frecuencia y tiene una gran adaptabilidad y configurabilidad.

Principio de estrategia

Los principios básicos de la estrategia incluyen los siguientes pasos clave:

  1. Construcción de señal lineal: el indicador RSI se combina linealmente con datos de precios utilizando un peso configurable (signal_alpha) para formar la señal inicial.
  2. Normalización de puntuación Z: en función del período retrospectivo establecido (lookback_period), se calculan la media y la desviación estándar de la señal lineal y la señal se normaliza en forma de puntuación Z.
  3. Mecanismo de activación del umbral: cuando la puntuación Z es inferior al umbral negativo, se abre una posición larga; cuando es superior al umbral positivo, se abre una posición corta. El umbral está controlado por el factor de ajuste de riesgo (risk_adjustment_factor).
  4. Gestión de riesgos: establezca take-profit y stop-loss para cada transacción y ajuste de forma flexible la relación riesgo-rendimiento a través de parámetros porcentuales.

Ventajas estratégicas

  1. Normalización de la señal: la transformación de puntuación Z otorga a la señal buenas propiedades estadísticas, lo que facilita el establecimiento de un umbral universal.
  2. Fuerte flexibilidad: la influencia de las variables exógenas y los precios se puede equilibrar ajustando signal_alpha.
  3. Riesgos controlables: Mecanismo completo de stop-profit y stop-loss, configurable de forma flexible según las características del mercado.
  4. Buena adaptabilidad: aplicable a múltiples períodos de tiempo y ampliable a otros productos comerciales con alta liquidez.

Riesgo estratégico

  1. Sensibilidad de los parámetros: el rendimiento de la estrategia es sensible a la selección de parámetros y requiere pruebas retrospectivas y verificación suficientes.
  2. Dependencia del entorno del mercado: Pueden ocurrir transacciones frecuentes en un mercado volátil con una tendencia débil.
  3. Retraso de la señal: el retraso causado por el cálculo del promedio móvil puede afectar el momento de entrada.
  4. Riesgo de liquidez: las operaciones de alta frecuencia pueden enfrentar pérdidas por deslizamiento cuando la liquidez es insuficiente.

Dirección de optimización de la estrategia

  1. Ajuste dinámico de parámetros: introducir un mecanismo adaptativo para ajustar dinámicamente los umbrales y las posiciones de stop-loss en función de la volatilidad del mercado.
  2. Confirmación de señales múltiples: agregue otros indicadores técnicos como condiciones de filtrado para mejorar la confiabilidad de la señal.
  3. Optimización de la gestión de posiciones: diseñar un sistema de gestión de posiciones dinámico basado en la volatilidad y la intensidad de la señal.
  4. Control de costos de transacción: optimice la lógica de apertura y cierre de posiciones para reducir la pérdida de costos causada por transacciones frecuentes.

Resumir

Se trata de una estrategia comercial cuantitativa con una estructura clara y una lógica rigurosa. Un sistema de señales comerciales robusto se construye a través de un procesamiento de combinación lineal y estandarización. La estrategia es altamente configurable y tiene una gestión de riesgos perfecta, pero se debe prestar atención a la optimización de parámetros y la adaptabilidad al mercado. La estabilidad y la rentabilidad de la estrategia se pueden mejorar aún más mediante las direcciones de optimización recomendadas.

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

//@version=5
strategy("Linear Signal-Based Strategy", shorttitle = "LSB_V1", overlay=true)

// Inputs
lookback_period = input.int(14, title="Lookback Period for Moving Averages")
signal_alpha = input.float(0.5, title="Signal Weight Alpha (Exogenous Variable)")
take_profit_percent = input.float(0.02, title="Take Profit (%)")
stop_loss_percent = input.float(0.01, title="Stop Loss (%)")
risk_adjustment_factor = input.float(1.5, title="Risk Adjustment Factor")

// Fetch Exogenous Variable (Example: RSI as a Proxy)
rsi_value = ta.rsi(close, lookback_period)

// Linear Signal Calculation
linear_signal = signal_alpha * rsi_value + (1 - signal_alpha) * close

// Z-Score Normalization for Signal
mean_signal = ta.sma(linear_signal, lookback_period)
stddev_signal = ta.stdev(linear_signal, lookback_period)
z_score_signal = (linear_signal - mean_signal) / stddev_signal

// Entry Conditions
long_condition = z_score_signal < -risk_adjustment_factor
short_condition = z_score_signal > risk_adjustment_factor

// Risk Management
long_take_profit = close * (1 + take_profit_percent)
long_stop_loss = close * (1 - stop_loss_percent)
short_take_profit = close * (1 - take_profit_percent)
short_stop_loss = close * (1 + stop_loss_percent)

// Execute Trades
if (long_condition)
    strategy.entry("Long", strategy.long, qty=1)
    strategy.exit("Exit Long", "Long", stop=long_stop_loss, limit=long_take_profit)

if (short_condition)
    strategy.entry("Short", strategy.short, qty=1)
    strategy.exit("Exit Short", "Short", stop=short_stop_loss, limit=short_take_profit)