Estrategia del surfista de impulso basada en el índice de impulso estocástico

El autor:¿ Qué pasa?, Fecha: 2024-02-27 14:32:46
Las etiquetas:

img

Resumen general

Este artículo presenta una estrategia para rastrear las tendencias de las acciones basadas en el indicador del índice de impulso estocástico (SMI). La estrategia se llama Momentum Surfer Strategy.

Estrategia lógica

El indicador SMI se utiliza para identificar zonas de sobrecompra y sobreventa. Los valores en el área roja indican que el stock está sobrevendido mientras que el área verde significa condiciones de sobrecompra. Las señales de negociación se generan a partir del cruce entre SMI y su línea EMA.

Específicamente, una señal larga se activa cuando el SMI cruza por encima de su EMA y el SMI está por debajo del nivel de sobreventa de -40. Una señal corta se activa cuando el SMI cruza por debajo de su EMA y el SMI está por encima del nivel de sobrecompra de 40.

Al hacerlo, la estrategia puede capturar la reversión de precios e implementar comprar bajo vender alto.

Análisis de ventajas

La mayor ventaja radica en su capacidad para seguir las tendencias.

Además, el SMI en sí tiene la característica de suavizar los precios. En comparación con las medias móviles simples, responde más constantemente a los cambios de precios. Las señales comerciales son más confiables sin verse fácilmente afectadas por el ruido del mercado.

En resumen, la estrategia aprovecha con éxito la fortaleza de SMI para rastrear efectivamente las tendencias de las acciones.

Análisis de riesgos

La estrategia se basa en gran medida en el indicador SMI y, por lo tanto, se enfrenta a algunos riesgos asociados.

En primer lugar, el SMI es sensible a la sintonización de parámetros. Los parámetros incorrectos pueden socavar significativamente la calidad de la señal. Se requieren pruebas extensas para encontrar el óptimo.

Además, ningún indicador es inmune a las señales falsas, incluido el SMI. Los whipsaws pueden ocurrir durante la alta volatilidad que causa pérdidas innecesarias.

Por último, no mitiga el riesgo sistémico de mercado, ya que las pérdidas graves son inevitables si todo el mercado cae en un estado bajista.

Mejoramiento

La estrategia puede mejorarse aún más en los siguientes aspectos:

  1. Incorporar otros indicadores para formar un sistema de sindicatos. Ayuda a aumentar la fiabilidad y rentabilidad de la señal. Se pueden agregar factores fundamentales y medidas de volatilidad.

  2. Utilice el aprendizaje automático para optimizar automáticamente los parámetros de SMI basados en grandes datos históricos.

  3. Agregue mecanismos de stop loss. Un stop loss razonable reduce enormemente la pérdida de una sola operación y evita los riesgos.

  4. Combinar las normas cuantitativas de selección de las existencias para mejorar la calidad general del acervo de existencias.

Conclusión

En este artículo, presentamos la estrategia Momentum Surfer que rastrea las tendencias con el indicador SMI. Su mayor fortaleza radica en capturar las reversiones y seguir las tendencias sin problemas. Algunos riesgos como la sensibilidad de los parámetros y la calidad de la señal están presentes. Sugerimos algunas formas de mejorarla. En general, la estrategia es atractiva para el comercio de algo y vale la pena una verificación comercial real.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// 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) and (SMI < os)
if (longCondition)
    strategy.entry("Buy", strategy.long)

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


Más.