Estrategia de predicción adaptativa de la señal de cruce SMI basada en el indicador de momento

SMI EMA
Fecha de creación: 2024-12-27 15:38:01 Última modificación: 2024-12-27 15:38:01
Copiar: 2 Número de Visitas: 370
1
Seguir
1617
Seguidores

Estrategia de predicción adaptativa de la señal de cruce SMI basada en el indicador de momento

Descripción general

La estrategia es un sistema de trading adaptativo basado en el Indicador de Momento Estocástico (SMI). Predice las tendencias del mercado analizando el cruce del indicador SMI y su línea de señal, y emite automáticamente señales de compra y venta en posiciones clave. La estrategia utiliza una media móvil exponencial doble (EMA) para suavizar los datos y mejorar la confiabilidad de la señal. Este sistema es especialmente adecuado para transacciones a medio y largo plazo y puede capturar eficazmente los puntos de inflexión de las principales tendencias del mercado.

Principio de estrategia

El núcleo de la estrategia es medir el impulso de los precios mediante el cálculo del Indicador de Impulso Estocástico (SMI). Primero se calcula el rango de precios máximos y mínimos dentro de un período específico y luego se normaliza el precio de cierre en relación con este rango. Al aplicar el suavizado doble de EMA al rango relativo y al rango de precios, se obtiene un valor de SMI más estable. Cuando la línea SMI forma un cruce dorado con su línea de señal (EMA de SMI), se activa una señal de compra; cuando forma un cruce de la muerte, se activa una señal de venta. Al mismo tiempo, los rangos de sobrecompra y sobreventa (+40/-40) se establecen para confirmar la confiabilidad de la señal.

Ventajas estratégicas

  1. Fuerte claridad de señal: el uso de señales de cruce como desencadenantes comerciales evita el juicio subjetivo
  2. Buena resistencia al ruido: se utiliza un suavizado EMA doble para filtrar eficazmente el ruido del mercado.
  3. Fuerte adaptabilidad: puede adaptarse a diferentes entornos de mercado a través de la optimización de parámetros.
  4. Control de riesgos mejorado: establezca rangos de sobrecompra y sobreventa para evitar errores de juicio en condiciones extremas del mercado
  5. Alto grado de visualización: utilice relleno de degradado para mostrar de forma intuitiva el estado del mercado

Riesgo estratégico

  1. Riesgo de retraso: debido al uso de múltiples promedios móviles, la señal tendrá un cierto retraso.
  2. Riesgo de mercado volátil: pueden generarse señales falsas en un mercado lateral y volátil
  3. Sensibilidad de los parámetros: diferentes combinaciones de parámetros pueden dar lugar a resultados completamente diferentes
  4. Dependencia del entorno del mercado: mejor desempeño en mercados con tendencias, desempeño deficiente en mercados volátiles

Dirección de optimización de la estrategia

  1. Presentación de indicadores de volumen: verificación de la validez de la señal mediante la combinación de cambios de volumen
  2. Agregar filtro de tendencia: use el promedio móvil de largo plazo para confirmar la dirección general de la tendencia
  3. Optimizar la adaptación de parámetros: ajustar dinámicamente los parámetros según la volatilidad del mercado
  4. Añadir mecanismo de stop loss: establecer un stop loss móvil para proteger las ganancias existentes
  5. Mejorar la gestión de riesgos: añadir módulos de gestión de posiciones y gestión de fondos

Resumir

Se trata de una estrategia comercial madura basada en el indicador SMI. Genera señales comerciales a través del cruce de indicadores técnicos y es sumamente práctica. La principal ventaja de la estrategia es que la señal es clara y muy resistente al ruido, pero también hay un cierto grado de retraso. Al agregar medidas de optimización como la verificación de volumen y el filtrado de tendencias, se puede mejorar aún más la estabilidad y la confiabilidad de la estrategia. Esta estrategia es especialmente adecuada para el seguimiento de tendencias a medio y largo plazo y es una buena opción para los inversores que quieran construir un sistema de trading sistemático.

Código Fuente de la Estrategia
/*backtest
start: 2024-12-19 00:00:00
end: 2024-12-26 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Iban_Boe

//@version=6
strategy("SMI Strategy with Signals", "SMI Strategy", overlay=false)

// Parámetros del SMI
lengthK   = input.int(14, "%K Length",  minval=1, maxval=15000)
lengthD   = input.int(3,  "%D Length",  minval=1, maxval=4999)
lengthEMA = input.int(3,  "EMA Length", minval=1, maxval=4999)

// Función de doble EMA
emaEma(source, length) => ta.ema(ta.ema(source, length), length)

// Cálculos del SMI
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
smiSignal = ta.ema(smi, lengthEMA)

// Gráficos del SMI
smiPlot = plot(smi, "SMI", color=color.blue)
plot(smiSignal, "SMI-based EMA", color=color.orange)

// Level lines
hline(40, "Overbought Line", color=color.green)
hline(-40, "Oversold Line", color=color.red)
hline(0, "Middle Line", color=color.gray)

midLinePlot = plot(0, color = na, editable = false, display = display.none)
fill(smiPlot, midLinePlot, 120,  40,   top_color = color.new(#4caf4f, 50),    bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(smiPlot, midLinePlot, -40, -120,  top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 50),    title = "Oversold Gradient Fill")

// Señales de compra y venta
buySignal = ta.crossover(smi, smiSignal) // Detect crossover
sellSignal = ta.crossunder(smi, smiSignal) // Detect crossover

// Graficar señales de compra/venta
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="Señal de Compra")
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="Señal de Venta")

// Lógica de la estrategia
if (buySignal)
    strategy.entry("Compra", strategy.long)

if (sellSignal)
    strategy.entry("Venta", strategy.short)

// Alertas
alertcondition(buySignal, title="Alerta de Compra", message="¡Señal de Compra Detectada!")
alertcondition(sellSignal, title="Alerta de Venta", message="¡Señal de Venta Detectada!")