Estrategia cuantitativa de cruce SMA-EMA de múltiples marcos temporales

SMA EMA RSI HTF TP/SL Trailing Stop
Fecha de creación: 2025-06-16 14:55:14 Última modificación: 2025-06-16 14:55:14
Copiar: 4 Número de Visitas: 257
2
Seguir
319
Seguidores

Estrategia cuantitativa de cruce SMA-EMA de múltiples marcos temporales Estrategia cuantitativa de cruce SMA-EMA de múltiples marcos temporales

Descripción general

La estrategia de cuantificación cruzada entre el SMA y el EMA de múltiples horarios es una estrategia de análisis técnico que combina una señal cruzada de una media móvil simple (SMA) y una media móvil de un índice (EMA) y ayuda a juzgar a través de filtros de múltiples horarios y el indicador RSI. La idea central de la estrategia es capturar el punto de cruce entre el EMA15 y el SMA60 como punto de entrada, mientras que la señal se introduce en el EMA200 como referencia de tendencia a largo plazo y se combina con el EMA200 de horarios más altos para filtrar la dirección de la operación y, finalmente, evitar la operación en zonas de sobreventa y venta a través del indicador RSI.

Principio de estrategia

El principio central de la estrategia se basa en los siguientes componentes de análisis técnico:

  1. Sistema de cruzamiento de medias móviles

    • Utilizando el cruce de la EMA de 15 y la SMA de 60 ciclos como señal principal
    • EMA15 atravesó SMA60 formando una señal múltiple
    • La EMA15 bajo el SMA60 forma una señal de vacío
    • El ciclo EMA 200 como referencia de tendencia a largo plazo
  2. Filtro de tiempo múltiple

    • Introducción de una barra de tiempo más alta (de 60 minutos por defecto) como herramienta de evaluación de tendencias
    • Solo se permite hacer más cuando el precio está por encima de la horquilla alta de la EMA 200
    • El vacío solo se permite cuando el precio está por debajo de la EMA200 de la hora alta
    • Este mecanismo de filtración asegura que la dirección de las transacciones esté en consonancia con las tendencias de los períodos de tiempo más grandes.
  3. Mecanismo de filtrado de RSI

    • Utilice el indicador RSI de 14 períodos para evitar posiciones en zonas de sobreventa
    • RSI por debajo de 30 es zona de sobreventa, limita el blanqueo
    • El RSI por encima de 70 es zona de sobrecompra, limita el exceso
    • Este diseño ayuda a evitar las operaciones a la baja y a mejorar la calidad de entrada.
  4. Sistema de gestión de riesgos

    • Ajustes flexibles de paradas, soporte para puntos fijos o porcentajes
    • Ajuste de pérdidas para puntos fijos
    • El mecanismo de suspensión de pérdidas de seguimiento, que bloquea las ganancias
    • Control de la hora de negociación para evitar posiciones antes del cierre del mercado

La lógica de negociación de la estrategia sigue la lógica de “seguimiento de tendencias + confirmación múltiple”, asegurando que solo se negocie en la dirección de alta probabilidad a través de un mecanismo de filtración multicapa, mientras que se protege la seguridad de los fondos a través de estrictas medidas de control de riesgo.

Ventajas estratégicas

A través de un análisis profundo del código, la estrategia tiene las siguientes ventajas:

  1. Mecanismo de confirmación múltiple: Combinado con el cruce de medias móviles a corto plazo, el juicio de tendencias a largo plazo y el filtro RSI, se forma un mecanismo de triple confirmación que mejora significativamente la calidad de la señal y reduce las falsas rupturas y señales erróneas.

  2. Adaptación a las diferentes condiciones del mercadoA través de un diseño parametrizado, la estrategia puede ajustarse de manera flexible para adaptarse a diferentes entornos de mercado y variedades de operaciones, como el ajuste del ciclo de las medias móviles, los valores mínimos del RSI, etc.

  3. Un buen control de los riesgos

    • Soporta varios modos de frenado (punto fijo / porcentaje)
    • El capital fijo de protección contra pérdidas
    • El cierre de pérdidas de seguimiento bloquea las ganancias
    • Este mecanismo de gestión de riesgos en múltiples niveles controla eficazmente el riesgo máximo de una sola transacción
  4. Gestión de la hora de la transacción: Se especifica automáticamente la hora de cierre antes del cierre, evitando el riesgo nocturno y la incertidumbre causada por la volatilidad del cierre, especialmente adecuado para los comerciantes del día.

  5. Filtrado de tendencias de la barra de tiempo altaLa introducción de un mayor rango de tiempo para determinar la tendencia, asegurando que la dirección de las operaciones esté en consonancia con la tendencia general, aumenta la probabilidad de ganar.

  6. Diseño modularSeparación clara de los componentes de la estrategia (generación de señales, mecanismos de filtración y gestión de riesgos) para facilitar su comprensión y adaptación, así como su optimización y extensión posteriores.

Riesgo estratégico

Aunque la estrategia está diseñada para ser exhaustiva, los riesgos potenciales son:

  1. Sensibilidad de los parámetrosLa eficacia de la estrategia depende en gran medida de la configuración de parámetros, como el ciclo de las medias móviles y los mínimos del RSI. Diferentes entornos de mercado pueden requerir diferentes combinaciones de parámetros, y una optimización inadecuada de los parámetros puede conducir a una adaptación excesiva de los datos históricos.

  2. Problemas de retrasoLos promedios móviles son, por naturaleza, un indicador de retraso, que puede generar una señal tardía en un mercado de gran fluctuación o reversión rápida, perder el punto de entrada óptimo o provocar una mayor retirada.

  3. El mercado horizontal no está funcionando bienEn un mercado donde no hay una clara tendencia, el cruce de las medias móviles puede generar frecuentes falsas señales, lo que lleva a pérdidas continuas.

  4. La excesiva dependencia de los indicadores técnicosLa estrategia se basa exclusivamente en indicadores técnicos, no tiene en cuenta los factores fundamentales y la emoción del mercado, y puede no funcionar bien en un mercado impulsado por noticias o eventos importantes.

  5. Riesgo de pérdidas fijasLos puntos fijos pueden no ser lo suficientemente flexibles en mercados con variaciones de volatilidad, los puntos fijos pueden ser demasiado flexibles cuando la volatilidad se expande y los puntos fijos pueden ser demasiado ajustados cuando la volatilidad se contrae.

La solución:

  • Revisar diferentes mercados y períodos para encontrar una combinación sólida de parámetros
  • Considerar un mecanismo de amortización de pérdidas para aumentar la volatilidad
  • Aumentar las condiciones de filtración adicionales en los mercados horizontales, como la desvalorización de la volatilidad
  • Estrategias de fortalecimiento combinadas con factores fundamentales o con indicadores de sentimiento del mercado
  • Considere agregar un mecanismo de confirmación de volumen de transacciones para mejorar la calidad de la señal

Dirección de optimización de la estrategia

A partir del marco existente de la estrategia, las siguientes son algunas opciones de optimización que vale la pena considerar:

  1. Mecanismo de adaptación a las fluctuaciones

    • Introducción del indicador ATR (Average True Range) para ajustar los niveles de stop loss y stop loss
    • Ampliar el rango de pérdidas en entornos de alta volatilidad y ajustar los pérdidas en entornos de baja volatilidad
    • Este mecanismo de adaptación puede adaptarse mejor a las diferentes condiciones del mercado.
  2. Mejorar la coherencia de las cadenas temporales

    • Confirmación de la adición de la columna de tiempo intermedia para formar un triple marco de tiempo de “corto + mediano + largo plazo”
    • La transacción se ejecuta solo cuando las señales de varios períodos de tiempo coinciden
    • Esto puede reducir aún más el riesgo de señales falsas.
  3. Confirmación de la transacción

    • Se añade el análisis de volumen de transacciones, que requiere un aumento en el volumen de transacciones cuando aparecen las señales
    • Se puede usar un indicador de volumen de transacciones relativo como OBV o Chaikin Money Flow
    • La confirmación de volumen de transacciones puede mejorar significativamente la calidad de la señal y la eficacia de la ruptura
  4. Optimización de parámetros dinámicos

    • Implementa un mecanismo de ajuste dinámico de parámetros para optimizar automáticamente el ciclo de las medias móviles y los mínimos del RSI en función del desempeño reciente del mercado
    • Este enfoque de adaptación puede ayudar a las estrategias a adaptarse mejor a los cambios en las condiciones del mercado.
  5. Clasificación del estado del mercado

    • Añadir módulos de reconocimiento de estado de mercado para distinguir entre mercados de tendencia y mercados de crisis
    • Reglas de generación y filtración de señales diferentes en diferentes estados de mercado
    • Este ajuste dinámico puede mejorar la adaptabilidad de las estrategias en diversos entornos de mercado.
  6. La introducción de la optimización del aprendizaje automático

    • Optimización de las decisiones de ingreso mediante algoritmos de aprendizaje automático como árboles de decisión o redes neuronales
    • Más factores como la estacionalidad, el sentimiento del mercado, la volatilidad, etc.
    • Esto puede mejorar la predicción y la adaptabilidad de las estrategias.

Estas orientaciones de optimización permiten mejorar las deficiencias de la estrategia para mantener un rendimiento estable en un entorno de mercado más amplio.

Resumir

La estrategia de cuantificación cruzada entre el SMA y el EMA de múltiples horarios es un sistema de negociación de análisis técnico bien estructurado y lógico. Combina señales de cruce de medias móviles, filtros de tendencia de múltiples horarios y juicios de sobreventa y sobreventa del RSI para formar un marco de decisión de negociación a varios niveles.

La principal ventaja de la estrategia reside en su mecanismo de confirmación múltiple y su control de riesgos, lo que le permite sobresalir en mercados de tendencia y controlar el riesgo de manera efectiva. Sin embargo, la estrategia también presenta problemas como una alta sensibilidad a los parámetros y una mala adaptabilidad a los mercados horizontales.

Hay mucho espacio para mejorar la estrategia mediante la introducción de un mecanismo de adaptación de la volatilidad, el fortalecimiento de los requisitos de consistencia de múltiples tramos de tiempo, el aumento de la confirmación de transacciones y la optimización de los parámetros dinámicos. Estas optimizaciones pueden ayudar a la estrategia a adaptarse mejor a diferentes entornos de mercado y mejorar la estabilidad y la rentabilidad en general.

En general, se trata de una estrategia de seguimiento de tendencias bien diseñada y adecuada para el uso de los comerciantes con una cierta base de análisis técnico. Con la adecuada adaptación y optimización de los parámetros, puede convertirse en una herramienta de negociación confiable, especialmente en un entorno de mercado con tendencias claras a medio y largo plazo.

Código Fuente de la Estrategia
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-15 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy(title="PhaiSinh_SMA & EMA [VNFlow]", overlay=true, slippage=1, backtest_fill_limits_assumption=1, initial_capital=100.000, default_qty_type=strategy.fixed, default_qty_value=4, commission_type=strategy.commission.cash_per_order, commission_value=2700,fill_orders_on_standard_ohlc=true, calc_on_order_fills=true, process_orders_on_close=true)

// === Chỉ báo chính ===
sma60 = ta.sma(close, 60)
ema15 = ta.ema(close, 15)
ema200 = ta.ema(close, 200)
plot(sma60, title="SMA 60", color=color.rgb(227, 10, 251), linewidth=1)
plot(ema15, title="EMA 15", color=color.rgb(246, 222, 11), linewidth=1)
plot(ema200, title="EMA 200", color=color.rgb(13, 141, 245), linewidth=1)

// === Cấu hình thời gian thoát trước khi hết phiên ===
session_close_hour = input.int(14, title="Giờ đóng phiên (24h)")
session_close_minute = input.int(30, title="Phút đóng phiên")
minutes_before_close = input.int(5, title="Số phút thoát lệnh trước đóng phiên")
exit_hour = session_close_hour
exit_minute = session_close_minute - minutes_before_close
exit_hour := exit_minute < 0 ? exit_hour - 1 : exit_hour
exit_minute := exit_minute < 0 ? exit_minute + 60 : exit_minute
cutoff_time = (hour > exit_hour) or (hour == exit_hour and minute >= exit_minute)

// === Bộ lọc RSI ===
use_rsi_filter = input.bool(true, title="Bộ lọc RSI?")
rsi_period = input.int(14, title="Chu kỳ RSI")
rsi_overbought = input.int(70)
rsi_oversold = input.int(30)
rsi_val = ta.rsi(close, rsi_period)

// === Bộ lọc EMA từ HTF ===
use_htf_filter = input.bool(true, title="Bộ lọc EMA HTF?")
htf_tf = input.timeframe("60", title="Khung thời gian EMA cao hơn")
htf_ema = request.security(syminfo.tickerid, htf_tf, ta.ema(close, 200))
ema_trend_up = close > htf_ema
ema_trend_down = close < htf_ema

// === Cài đặt TP/SL/Trailing ===
use_percent_tp = input.bool(false, title="TP theo % (nếu không: tính theo tick)")
tp_value = input.float(1.0, title="Take Profit (tick hoặc %)")
sl_value = input.float(20.0, title="Stop Loss (tick)")
trail_offset = input.int(10, title="Trailing Stop (tick)")

// === Logic tín hiệu vào/ra ===
long_entry = ta.crossover(ema15, sma60) and close >= ema15 and not cutoff_time
short_entry = ta.crossunder(ema15, sma60) and close <= ema15 and not cutoff_time
long_ok = long_entry and (not use_htf_filter or ema_trend_up) and (not use_rsi_filter or rsi_val > rsi_oversold)
short_ok = short_entry and (not use_htf_filter or ema_trend_down) and (not use_rsi_filter or rsi_val < rsi_overbought)

// === Vào lệnh ===
if long_ok
    strategy.entry("Long", strategy.long)
if short_ok
    strategy.entry("Short", strategy.short)

// === Tính TP theo giá nếu chọn % ===
long_tp_price = close * (1 + tp_value / 100)
short_tp_price = close * (1 - tp_value / 100)

// === Thoát lệnh với TP/SL/Trailing ===
if strategy.position_size > 0
    if use_percent_tp
        strategy.exit("Dừng Long %", from_entry="Long", loss=sl_value, limit=long_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng Long Tick", from_entry="Long", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

if strategy.position_size < 0
    if use_percent_tp
        strategy.exit("Dừng Short %", from_entry="Short", loss=sl_value, limit=short_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng short Tick", from_entry="Short", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

// === Đóng toàn bộ trước phiên ===
if cutoff_time
    strategy.close_all()