Estrategia de trading cuantitativo multifactorial


Fecha de creación: 2023-09-13 14:46:59 Última modificación: 2023-09-13 14:46:59
Copiar: 0 Número de Visitas: 456
1
Seguir
1217
Seguidores

Una estrategia de comercio cuantitativa multifactorial que considera integralmente el factor de línea uniforme y el factor de indicador de oscilación para controlar el riesgo y mejorar la estabilidad. Este artículo describirá en detalle los principios, las ventajas y los riesgos posibles de esta estrategia de comercio.

Principio de estrategia

La estrategia se compone de tres módulos principales:

  1. Factor de la línea media

El filtro de tendencia se construye utilizando las medias de EMA de 5 períodos diferentes (8, 13, 21, 34 y 55 días). Las medias se alinean de corto a largo y solo tienen características de tendencia y generan señales de negociación cuando atraviesan la media de corto período sobre la media de largo período.

  1. Factor indicador de la oscilación

La combinación de RSI y Stochastic, los dos indicadores de oscilación más importantes, permite la verificación de brechas y evita la generación de falsas brechas en mercados convulsionados.

El RSI tiene un parámetro de 14, cuando el RSI cumple con la condición de hacer más cuando está en el rango de 40-70, y cumple con la condición de hacer menos cuando está en el rango de 30-60.

Los parámetros estocásticos son: [14,3,3], cuando la línea K cumple con la condición de hacer más en el intervalo 20-80, y con la condición de hacer menos en el intervalo 5-95.

  1. Entradas y salidas lógicas

La señal de entrada se activa solo cuando el factor de la línea media y el factor del indicador de la oscilación cumplen al mismo tiempo; la señal de salida se genera cuando cualquiera de los factores ya no cumple.

Toda la estrategia utiliza un riguroso mecanismo de filtrado multifactorial, que asegura la estabilidad y fiabilidad de las señales de negociación al tiempo que mantiene una alta tasa de ganancia.

Ventajas estratégicas

  • El diseño multifactorial filtra el ruido del mercado y evita el exceso de transacciones
  • Al mismo tiempo, considera los factores de tendencia y los factores de reversión, además de las ventajas de seguir la tendencia y el comercio de puntos
  • La combinación de la línea media y el indicador de oscilación permite capturar el punto de reversión en la tendencia
  • Gran espacio para optimización, para obtener mejores resultados de la estrategia mediante el ajuste de los parámetros

Consejos de riesgo

  • Las estrategias multifactoriales tienen una baja frecuencia de señales y pueden perder algunas oportunidades de negociación.
  • El retraso de la línea media debe verificarse en combinación con un indicador de ciclo más corto
  • Los indicadores de oscilación son propensos a generar señales falsas y deben ser usados como un factor auxiliar.
  • Optimizar periódicamente los parámetros para adaptarse a los cambios en el entorno del mercado

Resumir

Esta estrategia combina con éxito las ventajas del seguimiento de tendencias y el comercio inverso, el modelo multifactorial controla el riesgo de manera efectiva y puede obtener ganancias adicionales estables. Es un modelo de estrategia de comercio cuantitativo muy práctico que merece una investigación y aplicación en profundidad por parte de la comunidad de inteligencia artificial.

Código Fuente de la Estrategia
/*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")