
El sistema de comercio de captura de tendencias de línea media múltiple y confirmación cruzada es una estrategia de comercio cuantitativa basada en una combinación de promedios móviles (EMA) de índices de varios períodos, que combina indicadores relativamente fuertes (RSI), diferencias de tendencias en las medias móviles (MACD) y el rango real promedio (ATR) como indicadores auxiliares. El núcleo de la estrategia es determinar la dirección de la tendencia del mercado mediante la comparación de las relaciones de posición de la línea media de diferentes períodos de tiempo, y abrir posiciones cuando la tendencia es clara, para nivelar las posiciones cuando la tendencia se debilita o se invierte.
El principio central de esta estrategia es el uso de medias móviles indexadas de varios períodos diferentes (EMA) para juzgar las tendencias del mercado y capturar oportunidades de negociación. En la estrategia se utilizan cinco EMA: la media instantánea (MAE) (14 períodos), la media intermedia (MAE) (25 períodos), la media a corto plazo (MAE) (50 períodos), la media intermedia (MAE) (100 períodos) y la media a largo plazo (MAE) (200 períodos).
La principal lógica de la estrategia es la siguiente:
Mecanismo de evaluación de tendencias:
Señales de entrada:
Señales de salida:
Control de riesgos:
Seguimiento de ubicación:
Confirmación de la línea media múltiple: Confirmación conjunta de tendencias a través de líneas medias de varios períodos diferentes, reducción de falsas rupturas y señales erróneas, mejora de la calidad de la señal.
Identificar las tendencias con precisiónEn comparación con un sistema de línea única, un sistema de líneas múltiples puede identificar con mayor precisión los puntos de inflexión de las tendencias del mercado, especialmente cuando hay cambios instantáneos en la posición relativa de la línea media con respecto a otras líneas medias.
Gestión de riesgos flexibleEl uso de diferentes estándares de entrada y salida para el mercado de divisas y el mercado de divisas, refleja el tratamiento diferenciado del riesgo en diferentes direcciones del mercado, y el filtro de volatilidad adicional para el comercio de divisas.
Señales de negociación visualesLas estrategias: Las estrategias muestran claramente las posiciones de compra, venta y cierre de posición a través de marcas gráficas para facilitar el análisis de retroceso y la supervisión en tiempo real.
Visualización del contexto de las tendencias: El uso de colores de fondo para distinguir tendencias al alza y a la baja, muestra de forma intuitiva el entorno del mercado, lo que ayuda a los comerciantes a juzgar rápidamente la situación actual del mercado.
Potencial de expansión: ya se han integrado los cálculos de los indicadores RSI y MACD, que, aunque no se utilizan actualmente en la lógica de negociación, proporcionan la base para la optimización futura de la estrategia.
Ajustabilidad de parámetrosTodos los parámetros clave se pueden ajustar a través de controles de entrada, incluidos el ciclo de la media, el umbral RSI, los parámetros MACD y la configuración ATR, para una optimización conveniente en función de diferentes entornos de mercado y variedades de transacción.
Retraso en la línea media: Todos los sistemas basados en la línea media tienen cierto retraso, que puede ser mayor en mercados convulsivos o rápidos cambios de tendencia. La solución es ajustar el ciclo de la línea media o agregar condiciones adicionales de filtración de mercados convulsivos.
El riesgo de sobrecomercializaciónEn mercados convulsivos, la media instantánea puede cruzar con frecuencia la media a corto plazo, lo que provoca un exceso de operaciones. Se puede reducir el número de operaciones no válidas aumentando el tiempo mínimo de tenencia o añadiendo filtros adicionales.
Diferentes problemas de adaptabilidad al mercado: Las estrategias de línea media con parámetros fijos tienen un rendimiento diferente en diferentes entornos de mercado y variedades de transacciones. Se debe optimizar los parámetros para un mercado específico o considerar el uso de parámetros adaptativos.
Conflicto de señales: Aunque el código calcula los indicadores RSI y MACD, no se integran eficazmente en la lógica de negociación, lo que puede provocar posibles conflictos de señales o oportunidades de optimización perdidas.
Prejuicio de muchos cabezasLas estrategias actuales utilizan diferentes criterios para el multi-cabeza y el cabezón, y no tienen filtros de volatilidad, mientras que el cabezón requiere que se cumplan las condiciones mínimas de ATR, lo que puede hacer que las estrategias sean más radicales en los mercados ascendentes, aumentando la brecha de riesgo.
Mecanismo de salida fijaLa estrategia utiliza un cruce de indicadores técnicos fijos como punto de partida, y la falta de un mecanismo de stop-loss que se ajuste a la dinámica de las condiciones del mercado puede no ser capaz de bloquear los beneficios o controlar el riesgo de manera efectiva.
Sensibilidad de los parámetros: La estrategia depende de varios parámetros de ciclo de la media, los cuales pueden variar ligeramente, lo que puede causar diferencias significativas en los resultados de las operaciones, aumentando el riesgo de sobreajuste.
Indicadores integrados ya calculadosLa estrategia calcula los indicadores RSI y MACD, pero no los utiliza al máximo. El RSI puede usarse para filtrar condiciones extremas del mercado, y el MACD para confirmar la dirección de la tendencia y mejorar la calidad de la señal. Por ejemplo, se puede requerir que el RSI no esté en la zona de sobrecompra cuando se ingresa en el mercado de múltiples tiendas y que el RSI no esté en la zona de sobreventa cuando se ingresa en el mercado de tiendas en blanco.
Sistemas de detención de pérdidas dinámicasIntroducción de un mecanismo de stop loss dinámico basado en el ATR, que ajusta automáticamente la distancia de stop loss según la volatilidad del mercado, mejorando la capacidad de gestión del riesgo. Esto se puede lograr calculando el valor de ATR de un determinado número de multiplicadores de puntos de entrada.
Clasificación del estado del mercadoAumentar el mecanismo de juicio sobre el estado del mercado (mercado de tendencia vs. mercado de oscilación) y adoptar diferentes estrategias de negociación en diferentes estados del mercado. Por ejemplo, la intensidad de la tendencia del mercado se puede juzgar a través de la inclinación de la media a largo plazo o el indicador ADX.
Análisis de marcos de tiempo múltiples: Integración de la información de tendencias de períodos de tiempo más altos, solo realiza operaciones cuando la tendencia de los períodos de tiempo más altos está en la misma dirección, para aumentar la tasa de éxito.
Optimización de los parámetros de mediano: La estrategia actual utiliza un período de promedio fijo ((14, 25, 50, 100, 200), que se puede analizar en diferentes combinaciones de parámetros para encontrar el parámetro óptimo más adecuado para un mercado específico.
Acompañamiento de la confirmación de la entrega: Combinación de indicadores de volumen de transacción para confirmar la fuerza de la tendencia, solo negocie en tendencias que son respaldadas por el volumen de transacción, y reduzca las pérdidas causadas por falsas rupturas.
Cambios en las condiciones de accesoOptimización de la lógica de entrada de las entradas múltiples y vacías para que sean más simétricas o para realizar ajustes más precisos en función de las diferentes características de la dirección del mercado. Por ejemplo, se puede considerar aumentar el filtro de fluctuación en las entradas múltiples o ajustar la rigidez de la confirmación de tendencias.
Aumentar el tiempo de filtradoIncluye filtros de tiempo de negociación para evitar momentos de mayor volatilidad o menor liquidez del mercado, como la publicación de datos importantes o el cierre de la apertura del mercado.
El sistema de comercio de captura de tendencias de múltiples líneas medias con confirmación cruzada es una estrategia de comercio cuantitativa basada en el análisis técnico, que determina la tendencia del mercado a través de una combinación de líneas medias de varios períodos diferentes, y abre posiciones cuando la tendencia es clara y cierra posiciones cuando la tendencia se debilita. La ventaja central de la estrategia consiste en aprovechar las tendencias de confirmación cruzada de líneas medias múltiples, reducir las señales erróneas y mejorar la calidad de las operaciones.
La estrategia funciona bien en mercados con una clara tendencia, pero puede correr el riesgo de sobrecomercialización en mercados convulsivos. Se puede mejorar aún más la estabilidad y adaptabilidad de la estrategia mediante la integración de los indicadores RSI y MACD calculados, la introducción de mecanismos de suspensión dinámica, la optimización de la combinación de parámetros de la línea media y el aumento de la clasificación de los estados de mercado.
Para la aplicación práctica, se recomienda realizar una retroalimentación adecuada en diferentes entornos de mercado y variedades de transacciones, ajustar los parámetros para adaptarlos a las características específicas del mercado y controlar el riesgo de las transacciones individuales en combinación con una estrategia de administración de fondos. Además, se puede considerar usar esta estrategia como parte de la cartera de inversiones, en combinación con otras estrategias complementarias, para dispersar el riesgo de las transacciones y mejorar la estabilidad de la cartera de inversiones en general.
/*backtest
start: 2025-02-23 00:00:00
end: 2025-03-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("etude9", shorttitle="etude 9", overlay=true)
//on tente de comlbiner avec le RSi un stratégie pas si mauvaise sur les longs
// un d7 r rsi qui donne des indiciataions pas mal pour les short pour les long pas très concluant
// === Paramètres d'entrée ===
// Source de prix
// et merde rendement sur long est plus efficace sans condition sur ATR !!
// par contre j'ai l'imression que le rsi ça va être bien pour les shorts
// bon avec le RSi ça donne rien, et avec le macd, ç ce stade c'est foireux mmm
pricetype = input(close, title="Source de prix pour les moyennes mobiles")
// Périodes des moyennes mobiles
instant = input(14, title="Période de la moyenne instantanée (10)")
interm = input(25, title="Perdiode intermediaire (25)")
shortperiod = input(50, title="Période de la moyenne mobile courte (20)")
mediumperiod = input(100, title="Période de la moyenne mobile moyenne (50)")
longperiod = input(200, title="Période de la moyenne mobile longue (100)")
// Paramètres du RSI
rsi_length = input.int(14, title="Période RSI")
rsi_overbought = input.int(78, title="Niveau de surachat (RSI)")
rsi_oversold = input.int(30, title="Niveau de survente (RSI)")
// Paramètres pour le MACD
fast_length = input.int(12, title="Longueur Rapide MACD")
slow_length = input.int(26, title="Longueur Lente MACD")
signal_length = input.int(9, title="Longueur du Signal MACD")
// Paramètres de l'ATR
atr_length = input.int(14, title="Période ATR")
atr_multiplier = input.float(1.5, title="Multiplicateur ATR pour le Stop-Loss")
// Calcul de l'ATR
atr = ta.atr(atr_length)
// === Calcul des moyennes mobiles (EMA uniquement) ===
instant_ma = ta.ema(pricetype, instant) // Moyenne mobile instantanée
short_ma = ta.ema(pricetype, shortperiod) // Moyenne mobile courte (20)
medium_ma = ta.ema(pricetype, mediumperiod) // Moyenne mobile moyenne (50)
long_ma = ta.ema(pricetype, longperiod) // Moyenne mobile longue (100)
interm_ma = ta.ema(pricetype, interm)
// Calcul du RSI
rsi = ta.rsi(close, rsi_length)
// Calcul du MACD
[macd_line, signal_line, hist_line] = ta.macd(close, fast_length, slow_length, signal_length)
// Stocker les résultats de crossover et crossunder dans des variables globales
is_crossover = ta.crossover(macd_line, signal_line)
is_crossunder = ta.crossunder(macd_line, signal_line)
// Filtre ATR : on ne trade que si la volatilité est suffisante
min_atr = atr > ta.sma(atr, atr_length) // ATR supérieur à sa moyenne
// === Conditions de tendance ===
trending_up = instant_ma > short_ma and instant_ma > medium_ma and instant_ma > long_ma and short_ma > medium_ma // Tendance haussière
trending_down = instant_ma< short_ma and instant_ma<medium_ma and instant_ma<long_ma and short_ma<long_ma // Tendance baissière
// Filtre RSI
rsi_filter_buy = rsi < rsi_overbought // RSI n'est pas en surachat pour un achat
rsi_filter_sell = rsi > rsi_oversold // RSI n'est pas en survente pour une vente
// === Gestion des positions ===
var bool in_position = false // Variable pour suivre si une position est ouverte
var bool is_long = false // Variable pour suivre si la position est longue ou courte
// === Signaux d'ouverture et de fermeture ===
bool buy_signal = false // Signal d'ouverture d'une position longue
bool close_signal = false // Signal de fermeture d'une position longue
bool sell_signal = false // Signal d'ouverture d'une position courte
bool close_short_signal = false // Signal de fermeture d'une position courte
// Ouvrir une position longue
if (trending_up and not in_position)
strategy.entry("Long", strategy.long)
in_position := true
is_long := true
buy_signal := true // Signal d'ouverture
else
buy_signal := false
// Fermer la position longue si instant_ma < medium_ma
if (in_position and is_long and instant_ma < short_ma)
strategy.close("Long")
in_position := false
is_long := false
close_signal := true // Signal de fermeture
else
close_signal := false
// Ouvrir une position courte
if (trending_down and not in_position and min_atr)
strategy.entry("Short", strategy.short)
in_position := true
is_long := false
sell_signal := true // Signal d'ouverture
else
sell_signal := false
// Fermer la position courte si instant_ma > medium_ma
if (in_position and not is_long and instant_ma > medium_ma)
strategy.close("Short")
in_position := false
close_short_signal := true // Signal de fermeture
else
close_short_signal := false
// === Affichage des signaux sur le graphique ===
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", size=size.small)
plotshape(series=close_signal, title="Close Long Signal", location=location.abovebar, color=color.orange, style=shape.labeldown, text="Close Long", size=size.small)
plotshape(series=close_short_signal, title="Close Short Signal", location=location.belowbar, color=color.blue, style=shape.labelup, text="Close Short", size=size.small)
// === Affichage des moyennes mobiles sur le graphique ===
plot(short_ma, color=color.blue, title="Moyenne mobile courte (20)", linewidth=2)
plot(medium_ma, color=color.orange, title="Moyenne mobile moyenne (50)", linewidth=2)
plot(long_ma, color=color.red, title="Moyenne mobile longue (100)", linewidth=2)
plot(instant_ma, color=color.rgb(43, 14, 111), title="Moyenne mobile instantanée (10)", linewidth=2)
plot(interm_ma, color=color.rgb(26, 192, 34), title="Moyenne mobile instantanée (10)", linewidth=2)
// Coloration de fond pour les tendances
bgcolor(color=trending_up ? color.new(color.green, 90) : trending_down ? color.new(color.red, 90) : na, title="Coloration de fond")