Esta estrategia integra múltiples indicadores para la identificación de tendencias y genera señales comerciales basadas en cambios direccionales alineados.
Los indicadores principales son los siguientes:
Velocidad media móvil: refleja el impulso del precio.
STOCH: sobreventa o sobrecompra debido a los cambios de tendencia.
MACD: Cambios de tendencia de las medias móviles dobles.
Las reglas del comercio son:
El aumento de la velocidad promedio móvil da una señal alcista.
El STOCH en la zona de sobrecompra da una señal bajista.
El cruce positivo del MACD da una señal alcista.
Introduzca cuando cualquier indicador alinee las señales.
Salida cuando cambien las señales del indicador.
La combinación evalúa la tendencia desde múltiples dimensiones, filtrando el ruido para señales de alta convicción.
En comparación con los indicadores únicos, la estrategia combinada tiene las siguientes ventajas:
La visión combinada mejora la precisión.
El filtrado conjunto reduce las señales falsas.
Incluye indicadores de tendencia y de reversión media.
Las señales alineadas tienen una alta convicción, evitando errores.
Reglas simples y claras, fáciles de aplicar.
Ajuste de parámetros flexible, robustez.
Aplicable a diferentes plazos.
Puede entrenar pesos de indicadores con aprendizaje automático.
En general, mejor estabilidad y rentabilidad que los indicadores individuales.
A pesar de los méritos, los riesgos a considerar incluyen:
Aumento de la complejidad con múltiples indicadores.
Optimización y ponderación de parámetros desafiantes.
Pueden producirse señales de indicadores contradictorias.
Siempre hay un poco de retraso, no se pueden evitar todas las pérdidas.
Incerto período de espera unidireccional con el factor de suerte.
Las señales conjuntas no pueden eliminar los riesgos inherentes a las operaciones de tendencia.
La alta frecuencia del comercio aumenta los costos de transacción.
Necesitamos monitorear las relaciones de recompensa/riesgo.
Basándose en el análisis, las mejoras pueden incluir:
Evaluar la eficacia de los indicadores en diferentes mercados.
Añadir controles de robustez de parámetros para evitar el sobreajuste.
Optimizar la ponderación de los indicadores para reducir los conflictos.
Implementar paradas para limitar las pérdidas graves.
Utilice salidas de tiempo para controlar períodos de espera ilimitados.
Evaluar el impacto de la frecuencia de negociación en los costes de transacción.
Incorporar las restricciones de las métricas de riesgo.
Prueba de robustez en múltiples mercados.
Valida continuamente la eficacia de la estrategia.
Esta estrategia forma señales de conjunto estables mediante la integración de múltiples indicadores para la evaluación de tendencias. Pero la optimización continua es clave para cualquier estrategia, el monitoreo de riesgos y la prevención de sobreajustes.
/*backtest start: 2022-09-16 00:00:00 end: 2023-09-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // By TradeStation //@version=5 strategy("Mov Avg Speed Strategy", overlay=true) src = input(close, title="Source") // MA Speed avg_len = input.int(50, minval=1, title="Avg Length", group="MA Speed") roc_len = input.int(1, minval=1, title="Rate of Change Length", group="MA Speed") avg_roc_len = input.int(10, minval=1, title="Avg Rate of Change Length", group="MA Speed") // Stochastic stoch_len = input.int(14, minval=1, title="Stochastic Length", group="Stochastic") smooth_k = input.int(3, minval=1, title="Stochastic Smooth K", group="Stochastic") overbought = input.float(80, title="Stochastic Overbought", group="Stochastic") oversold = input.float(20, title="Stochastic Oversold", group="Stochastic") // MACD fast_length = input(12, title="Fast Length", group="MACD") slow_length = input(26, title="Slow Length", group="MACD") macd_avg_length = input.int(9, title="MACD Avg Length", minval=1, group="MACD") // MA Speed avg = ta.sma(src, avg_len) roc = ta.roc(avg, roc_len) avg_roc = ta.sma(roc, avg_roc_len) avg_roc_signal = avg_roc > 0 ? 1 : avg_roc < 0 ? -1 : 0 // Stochastic k k = ta.sma(ta.stoch(close, high, low, stoch_len), smooth_k) stochastic_signal = k <= oversold ? 1 : k >= overbought ? -1 : 0 // MACD fast_ma = ta.ema(src, fast_length) slow_ma = ta.ema(src, slow_length) macd = fast_ma - slow_ma macd_avg = ta.ema(macd, macd_avg_length) macd_signal = macd_avg > macd_avg[1] ? 1 : macd_avg < macd_avg[1] ? -1 : 0 // set the signal couint long_count = 0 short_count = 0 if macd_signal == 1 long_count += 1 else if macd_signal == -1 short_count += 1 if stochastic_signal == 1 long_count += 1 else if stochastic_signal == -1 short_count += 1 if avg_roc_signal == 1 long_count += 1 else if avg_roc_signal == -1 short_count += 1 if (long_count >= 2) strategy.entry("Long", strategy.long) if (short_count >= 2) strategy.entry("Short", strategy.short)