Estrategia de negociación cuantitativa de múltiples factores

El autor:¿ Qué pasa?, Fecha: 2023-09-13 14:46:59
Las etiquetas:

La estrategia de negociación cuantitativa multifactorial que integra factores promedio móvil e indicadores oscilantes para controlar los riesgos y mejorar la estabilidad.

Estrategia lógica

La estrategia consta de tres módulos principales:

  1. Factores de promedio móvil

Utilizando 5 EMA con diferentes períodos (8, 13, 21, 34, 55) para construir un filtro de tendencia. Los EMA se organizan de corto a largo. Solo cuando la EMA más rápida cruza por encima de la EMA más lenta, se genera la señal de tendencia.

  1. Indicadores oscilantes

Combinar los osciladores RSI y estocásticos para validar las señales de ruptura, evitando rupturas falsas excesivas en los mercados variados.

RSI (14) genera una señal larga cuando está en el rango de 40-70 y una señal corta cuando está en el rango de 30-60.

El estocástico (14,3,3) da una señal larga cuando la línea K está entre 20-80 y una señal corta cuando la línea K está entre 5-95.

  1. Lógicas de entrada y salida

La señal de entrada se activa sólo cuando ambos factores están alineados. La señal de salida se genera cuando uno de los factores ya no es válido.

El estricto filtro multifactor asegura una alta tasa de ganancia y señales confiables.

Ventajas

  • El diseño multifactor filtra eficazmente el ruido del mercado y evita el exceso de negociación.
  • Combina el seguimiento de tendencias y la reversión de la media, equilibrando el comercio dinámico y el comercio de localización.
  • Captura los puntos de reversión dentro de las tendencias utilizando MA y osciladores.
  • Gran espacio de optimización para obtener un mejor rendimiento.

Los riesgos

  • Relativamente baja frecuencia de señal, puede perder algunas oportunidades.
  • El retraso de MA debe verificarse con osciladores más rápidos.
  • Los osciladores propensos a señales falsas deben utilizarse como factores auxiliares.
  • Los parámetros necesitan una optimización periódica para adaptarse a las condiciones cambiantes del mercado.

Conclusión

Esta estrategia combina con éxito los puntos fuertes de las estrategias de seguimiento de tendencias y inversión de operaciones. El modelo de control de riesgos de múltiples factores ofrece un alfa estable. Es una estrategia comercial cuantitativa altamente práctica que merece una investigación y aplicación en profundidad por la comunidad de IA.


/*backtest
start: 2022-09-12 00:00:00
end: 2022-11-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Combined Strategy", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value = .0020, pyramiding = 0, slippage = 3, overlay = true)

//----------//
// MOMENTUM //
//----------//
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema55 = ema(close, 55)

plot(ema8, color=red, style=line, title="8", linewidth=1)
plot(ema13, color=orange, style=line, title="13", linewidth=1)
plot(ema21, color=yellow, style=line, title="21", linewidth=1)
plot(ema34, color=aqua, style=line, title="34", linewidth=1)
plot(ema55, color=lime, style=line, title="55", linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

// Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = stoch(close, high, low, 14)
dSlow = sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
    strategy.entry("LONG", strategy.long)
if (exitLongCondition)
    strategy.close("LONG")
    
shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
    strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
    strategy.close("SHORT")

Más.