Estrategia de negociación cuantitativa basada en el índice de impulso estocástico

El autor:¿ Qué pasa?, Fecha: 2024-03-11 10:46:10
Las etiquetas:

img

Resumen de la estrategia

Este artículo presenta una estrategia de negociación cuantitativa basada en el índice de momento estocástico (SMI). La estrategia utiliza las señales de cruce entre el indicador SMI y su promedio móvil exponencial (EMA) para identificar oportunidades potenciales de compra y venta. Cuando la línea de señal SMI cruza por encima de su EMA, desencadena una señal de compra; cuando la línea de señal SMI cruza por debajo de su EMA, desencadena una señal de venta.

Principio de la estrategia

El núcleo de esta estrategia es el Índice de Momento Estocástico (SMI). SMI es un oscilador de momento que mide el precio de cierre en relación con el rango alto-bajo durante un período especificado. Específicamente, la estrategia primero calcula el más alto y el más bajo mínimo durante el período especificado, luego calcula la diferencia entre el precio de cierre y el punto medio del rango alto-bajo, así como la diferencia entre el más alto y el más bajo mínimo. Luego, la estrategia calcula el valor de SMI, que es la relación entre la diferencia relativa promedio y la diferencia absoluta promedio multiplicada por 100. Finalmente, la estrategia calcula la media móvil exponencial de SMI como la línea de señal.

Cuando la línea de señal SMI cruza por encima de su EMA, indica un aumento del impulso ascendente y activa una señal de compra; cuando la línea de señal SMI cruza por debajo de su EMA, indica un aumento del impulso descendente y activa una señal de venta.

Ventajas estratégicas

  1. La estrategia se basa en el poderoso indicador de impulso SMI, que puede capturar eficazmente los cambios en las tendencias y el impulso del mercado.

  2. La lógica de la estrategia es clara y fácil de entender e implementar.

  3. Al utilizar la media móvil exponencial como línea de señal, la estrategia puede suavizar el ruido de precios y mejorar la confiabilidad de la señal.

  4. El marcado de los niveles de sobrecompra y sobreventa proporciona herramientas adicionales de gestión del riesgo para la estrategia.

Riesgos estratégicos

  1. La estrategia se basa en un único indicador, el SMI, y puede enfrentar el riesgo de fallo del indicador.

  2. La estrategia puede generar señales comerciales frecuentes en mercados agitados, lo que lleva a altos costos de transacción.

  3. La estrategia carece de un mecanismo explícito de stop-loss y puede enfrentar el problema del riesgo excesivo de la operación única.

Direcciones para la optimización de la estrategia

  1. Optimización de parámetros: El rendimiento de la estrategia depende en gran medida de los parámetros utilizados en el cálculo del SMI, como el largo %K, el largo %D, etc. Al optimizar estos parámetros, se puede mejorar el rendimiento de la estrategia.

  2. Filtración de señales: Para reducir la frecuencia de negociación y mejorar la calidad de las señales, pueden considerarse mecanismos de filtración adicionales como la confirmación de tendencias y la confirmación de volumen.

  3. Gestión del riesgo: la incorporación de reglas explícitas de stop loss y gestión de posiciones en la estrategia puede controlar mejor el riesgo y mejorar la solidez de la estrategia.

  4. Combinación de múltiples factores: Combinación de señales SMI con otros indicadores técnicos o factores fundamentales para formar un mecanismo de decisión comercial más completo y fiable.

Resumen de las actividades

Este artículo presenta una estrategia de negociación cuantitativa basada en el índice de momento estocástico (SMI). La estrategia utiliza las señales de cruce entre el indicador SMI y su promedio móvil exponencial para identificar oportunidades potenciales de compra y venta. Las ventajas de la estrategia se basan en un poderoso indicador de momento, lógica clara, facilidad de implementación y el uso de promedios móviles y niveles de sobrecompra / sobreventa para mejorar la confiabilidad de la señal y la gestión de riesgos. Sin embargo, la estrategia también enfrenta riesgos como el fallo de un solo indicador, el comercio de alta frecuencia y el control de riesgos insuficiente. Para mejorar aún más el rendimiento de la estrategia, se puede optimizar en términos de optimización de parámetros, filtrado de señales, gestión de riesgos y combinación de múltiples factores.


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Stochastics Momentum Index Strategy", shorttitle="SMI_BackTest", overlay=false)

// Input parameters
a = input.int(10, "Percent K Length")
b = input.int(3, "Percent D Length")
ob = input.int(40, "Overbought")
os = input.int(-40, "Oversold")

// Range Calculation
ll = ta.lowest(low, a)
hh = ta.highest(high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2

avgrel = ta.ema(ta.ema(rdiff,b),b)
avgdiff = ta.ema(ta.ema(diff,b),b)

// SMI calculations
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ta.ema(SMI,b)
emasignal = ta.ema(SMI, 10)

// Color Definition for Stochastic Line
col = SMI >= ob ? color.green : SMI <= os ? color.red : color.white

plot(SMIsignal, title="Stochastic", color=color.white)

plot(emasignal, title="EMA", color=color.yellow)

level_40 = ob
level_40smi = SMIsignal > level_40 ? SMIsignal : level_40

level_m40 = os
level_m40smi = SMIsignal < level_m40 ? SMIsignal : level_m40

plot(level_40, "Level ob", color=color.red)
plot(level_40smi, "Level ob SMI", color=color.red, style=plot.style_line)

plot(level_m40, "Level os", color=color.green)
plot(level_m40smi, "Level os SMI", color=color.green, style=plot.style_line)

//fill(level_40, level_40smi, color=color.red, transp=ob, title="OverSold")
//fill(level_m40, level_m40smi, color=color.green, transp=ob, title="OverBought")

// Strategy Tester
longCondition = ta.crossover(SMIsignal, emasignal)
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = ta.crossunder(SMIsignal, emasignal)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


Más.