Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 23): Medidor de fortaleza de divisas
Contenido
Introducción
Imagina que estás en una carrera de coches. Cada vehículo es único, y no se puede adivinar cuál es el más rápido o el más lento. En cambio, se observan los tiempos por vuelta, se evalúa la aceleración, se prueba el rendimiento de frenado y se evalúa cada modelo individualmente. Solo después de analizar minuciosamente cada automóvil individualmente, se comparan para determinar su rendimiento general.
Las divisas funcionan de manera similar. Este asesor experto inspecciona cada par de divisas en el que aparece una divisa. Por ejemplo, para el USD, examina USDJPY, EURUSD, GBPUSD, USDCHF y otros. Mide cuánto se ha movido cada par en diferentes marcos temporales, inicialmente en M15, luego en H1 y finalmente en H4. Estos periodos de análisis retrospectivo se especifican mediante los parámetros Lookback_M15, Lookback_H1 y Lookback_H4.
Si la divisa en cuestión es la divisa de cotización en un par, el EA invierte ese cambio para reflejar con precisión su fortaleza. Tras calcular estos movimientos en todos los pares relevantes, promedia los resultados para obtener un único valor de fortaleza para cada divisa. El EA actualiza estos cálculos cada pocos segundos, tal y como se especifica en el parámetro Update_Seconds. A continuación, redibuja el panel de control para mostrar la fortaleza actual de las divisas, registra qué divisas son fuertes, débiles o neutrales, y actualiza las curvas visuales que muestran el equity y el drawdown de la cuenta.
En este artículo, desarrollaremos una herramienta MQL5 que mide la fortaleza de las divisas analizando el rendimiento de cada símbolo en múltiples pares. Este método le permite identificar de forma fiable las divisas más fuertes y las más débiles, lo que le da la posibilidad de operar con mayor confianza.
Comprender la estrategia
La función principal del EA es medir la fortaleza o debilidad de una divisa individual analizando todos los pares en los que aparece, en múltiples marcos temporales. Para ello, seguimos estos pasos para calcular la fortaleza de cada divisa en sus pares y marcos temporales.
Seleccione los pares relevantes
Para cada una de las ocho divisas principales, recopile todos los pares de divisas en los que aparece (por ejemplo, USD en USDJPY, EURUSD, GBPUSD, USDCHF).
Calcular el cambio porcentual
En el marco temporal elegido (por ejemplo, M15, H1, H4), calcule el porcentaje de variación durante el período de análisis retrospectivo para cada par:
Normalizar el signo
Si la divisa que está midiendo es la divisa de cotización (segunda) en el par, invierta el signo de ese cambio porcentual, de modo que una divisa de cotización más fuerte siempre se muestre como una fortaleza positiva.
Promedio entre pares
Tome los valores de cambio porcentual con signo para todos sus pares y calcule un promedio simple. Esto le dará una única «puntuación de fortaleza» para la divisa en ese marco temporal.

El diagrama anterior ilustra nuestro proceso utilizando USD como ejemplo. Medimos la fortaleza del USD en cada par donde aparece, en múltiples marcos temporales. Esto nos permite identificar en qué período de tiempo el USD es más fuerte o más débil.
Desglose del código
El EA comienza definiendo las propiedades esenciales: los derechos de autor, el enlace, la versión y el modo de compilación estricta. Estas directivas ayudan a identificar el EA y a garantizar que cumpla con los estándares esperados dentro del entorno MetaTrader. A continuación, incluye la biblioteca SymbolInfo.mqh, que proporciona funciones para gestionar y consultar información sobre símbolos, algo esencial para seleccionar, habilitar y recuperar datos de múltiples pares de divisas de forma dinámica. Esta inclusión es crucial porque el EA necesita acceder a datos de varios símbolos que pueden no estar habilitados de forma predeterminada, lo que garantiza que el script pueda funcionar sin problemas en múltiples pares.
#property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com/en/users/lynnchris" #property version "1.0" #property strict #include <Trade\SymbolInfo.mqh>
A continuación, el código define varios parámetros de entrada, como Lookback_M15, Lookback_H1 y Lookback_H4, que especifican el número de barras históricas que se tienen en cuenta para calcular la fortaleza de la divisa en los respectivos intervalos de tiempo. El parámetro Update_Seconds determina la frecuencia con la que se actualiza el panel de control, equilibrando la capacidad de respuesta en tiempo real con la eficiencia computacional.
Los parámetros FontSize, BackgroundColor, PanelWidth, PanelHeight y de posición inicial permiten a los usuarios personalizar el aspecto y la ubicación del panel de control en su gráfico, lo que lo hace adaptable a diferentes tamaños de pantalla y preferencias personales. Los periodos de análisis retrospectivo influyen en la sensibilidad o la suavidad de los cálculos de la fortaleza de la divisa; los periodos más cortos reaccionan con mayor rapidez, pero pueden generar ruido, mientras que los periodos más largos ofrecen mayor estabilidad, pero una capacidad de respuesta más lenta.
input int Lookback_M15 = 96; input int Lookback_H1 = 48; input int Lookback_H4 = 30; input int Update_Seconds = 30; input int FontSize = 12; input color BackgroundColor = clrBlack; input int PanelWidth = 280; input int PanelHeight = 240; input int InitPanelX = 10; input int InitPanelY = 10;
Los arrays Currencies y Pairs son estructuras de datos estáticas que enumeran las principales divisas y sus pares de divisas asociados. La organización garantiza que los pares relacionados de cada divisa se agrupen, lo que simplifica el proceso de recorrer los pares durante los cálculos de fortaleza. Por ejemplo, la matriz Pairs contiene cuatro pares por divisa, cada uno de los cuales incluye la divisa como base o como divisa de cotización. Esta agrupación sistemática permite que las funciones de cálculo evalúen de manera eficiente el rendimiento de cada divisa en relación con las demás, analizando simultáneamente múltiples pares y proporcionando una medida de fortaleza más completa.
static const string Currencies[8] = {"USD","EUR","GBP","JPY","CHF","CAD","AUD","NZD"}; static const string Pairs[8][4] = { {"USDJPY","EURUSD","GBPUSD","USDCHF"}, {"EURUSD","EURJPY","EURGBP","EURCHF"}, // ... ......... };
Las variables globales se declaran para almacenar los valores de fortaleza calculados en los distintos intervalos de tiempo, los cuales se guardan en una matriz bidimensional Strength[8][3]. Estas puntuaciones se utilizan para mostrarlas en el panel de control y para fines de registro. Variables adicionales como LastUpdate registran la última vez que se actualizaron los datos, lo que evita recálculos innecesarios.
Las variables «dragging», dragOffsetX y dragOffsetY gestionan las interacciones del usuario, concretamente para permitir al operador cambiar la posición del panel de control arrastrándolo con el ratón. Para visualizar el rendimiento de la cuenta, se declaran las matrices times[] y equities[] con el fin de almacenar puntos de datos del equity de la cuenta con marca de tiempo, mientras que dataCount registra el número de puntos recopilados; estos datos son esenciales para trazar las tendencias del equity y del drawdown de la cuenta a lo largo del tiempo.
double Strength[8][3]; // [currency][timeframe] datetime LastUpdate; int dataCount; double equities[MAX_POINTS]; datetime times[MAX_POINTS]; int PanelX, PanelY; bool dragging; int dragOffsetX, dragOffsetY;
Durante la inicialización (OnInit()), el EA establece la posición inicial del panel de control en función de los datos introducidos por el usuario. A continuación, recorre todos los pares de divisas y llama a SymbolSelect() en cada uno de ellos para habilitar el acceso a los datos. Este paso es fundamental, ya que, si los símbolos no están habilitados, las funciones posteriores de recuperación de datos, como iClose(), fallarían, lo que daría lugar a cálculos incorrectos o a errores.
A continuación, el código inicializa la marca de tiempo LastUpdate y restablece el contador de datos dataCount. Realiza un cálculo inicial de la fortaleza de las divisas mediante UpdateStrengths(), lo que garantiza que el panel de control muestre los datos actuales inmediatamente después del inicio. La función DrawPanel() se invoca para crear el panel de control visual con etiquetas, barras de colores y encabezados, lo que proporciona una interfaz intuitiva y visualmente atractiva.
Además, se invoca la función LogCurrencyStrengths() para mostrar en la terminal un resumen textual del estado de las divisas, lo que ofrece a los operadores una visión general rápida y de alto nivel. Por último, EventSetTimer() programa la rutina de actualización periódica a los intervalos especificados por Update_Seconds, lo que permite que el panel de control se actualice automáticamente sin necesidad de intervención manual.
int OnInit() { PanelX = InitPanelX; PanelY = InitPanelY; for(int i=0; i<8; i++) for(int j=0; j<4; j++) SymbolSelect(Pairs[i][j], true); LastUpdate = 0; dataCount = 0; UpdateStrengths(); DrawPanel(); LogCurrencyStrengths(1); EventSetTimer(Update_Seconds); return(INIT_SUCCEEDED); }
Cuando el EA se desinicializa (OnDeinit()), lleva a cabo tareas de limpieza: elimina el evento del temporizador con EventKillTimer(), borra todos los objetos gráficos asociados al panel de control (incluidos el fondo, las etiquetas, las barras y los encabezados) y borra las líneas de tendencia del equity y el drawdown. Esta limpieza evita que los objetos residuales saturen el gráfico o consuman recursos, lo que garantiza un entorno ordenado cuando se elimina o se vuelve a cargar el EA.
void OnTimer() { if(TimeCurrent() - LastUpdate < Update_Seconds) return; LastUpdate = TimeCurrent(); UpdateStrengths(); DrawPanel(); LogCurrencyStrengths(1); double eq = AccountInfoDouble(ACCOUNT_EQUITY); if(dataCount < MAX_POINTS) { times[dataCount] = TimeCurrent(); equities[dataCount] = eq; dataCount++; } DrawEquityLines(); DrawDrawdownLines(); }
La lógica principal de la actualización se encuentra en la función OnTimer(), que se ejecuta periódicamente. En primer lugar, comprueba si ha transcurrido suficiente tiempo desde la última actualización comparando la hora actual con la fecha de la última actualización. Si no ha transcurrido el intervalo especificado, el programa finaliza antes de tiempo para evitar cálculos excesivos. Cuando se activa, actualiza LastUpdate con la hora actual y llama a UpdateStrengths() para volver a calcular las puntuaciones de fortaleza de las divisas basándose en los últimos datos del mercado.
A continuación, llama a DrawPanel() para actualizar el panel de control visual, modificando las etiquetas, los colores y las barras para que reflejen los valores de fortaleza actuales. Además, registra el estado actual de las divisas mediante LogCurrencyStrengths(), lo que proporciona información textual al respecto. A continuación, la función recupera el equity actual de la cuenta (AccountInfoDouble(ACCOUNT_EQUITY)), añadiendo la marca de tiempo y el valor del equity a las matrices correspondientes, siempre que no se haya alcanzado el número máximo de puntos de datos.
Los puntos de datos almacenados son utilizados por DrawEquityLines() y DrawDrawdownLines() para actualizar las líneas de tendencia de rendimiento, lo que permite representar visualmente el crecimiento y el riesgo de la cuenta a lo largo del tiempo. Este ciclo garantiza que todo el panel de control permanezca sincronizado con las condiciones del mercado en tiempo real y el rendimiento de la cuenta.
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id==CHARTEVENT_OBJECT_CLICK && sparam=="CS_BG") { dragging = true; dragOffsetX = (int)lparam - PanelX; dragOffsetY = (int)dparam - PanelY; } else if(id==CHARTEVENT_MOUSE_MOVE && dragging) { PanelX = (int)lparam - dragOffsetX; PanelY = (int)dparam - dragOffsetY; DrawPanel(); } else if(dragging && id==CHARTEVENT_OBJECT_CLICK) { dragging = false; } }
La interacción del usuario se gestiona en OnChartEvent(). Cuando el usuario hace clic en el rectángulo de fondo ("CS_BG"), se activa el modo de arrastre, que registra el desplazamiento entre la posición del ratón y la posición actual del panel. A medida que se mueve el ratón (CHARTEVENT_MOUSE_MOVE), la posición del panel se actualiza dinámicamente, lo que permite al operador reubicar el panel de control de forma interactiva para obtener una mejor visibilidad. Cuando el usuario suelta el botón del ratón o hace clic en otro lugar, el modo de arrastre se desactiva, bloqueando el panel en su nueva posición. Esta función mejora la usabilidad, permitiendo personalizar el panel de control para diferentes diseños de espacio de trabajo.
double CalculateStrength(int ci, ENUM_TIMEFRAMES tf, int lookback) { double sum = 0; int cnt = 0; for(int j=0; j<4; j++) { string sym = Pairs[ci][j]; if(Bars(sym, tf) < lookback+1) continue; double now = iClose(sym, tf, 0); double prev = iClose(sym, tf, lookback); if(prev == 0) continue; double pct = (now - prev) / prev * 100.0; if(StringFind(sym, Currencies[ci]) > 0) pct = -pct; sum += pct; cnt++; } return (cnt == 0) ? 0 : sum / cnt; }
El cálculo de la fortaleza de la moneda se lleva a cabo en UpdateStrengths() y CalculateStrength(). UpdateStrengths() recorre cada índice de divisas y llama a CalculateStrength() para cada uno de los tres intervalos de tiempo.
CalculateStrength() recupera el último precio de cierre (iClose()) de cada par relevante y, a continuación, obtiene los precios de cierre históricos correspondientes al periodo de análisis. Comprueba si hay suficientes barras disponibles para realizar el cálculo; si no, omite el par para evitar errores. Se calcula el cambio porcentual durante el período de análisis retrospectivo y, si la divisa en cuestión es la divisa cotizada en el par, se invierte el signo del cambio para medir con precisión la fortaleza relativa de la divisa base.
Esta inversión garantiza que una apreciación de la moneda cotizada refleje un debilitamiento de la moneda base, manteniendo la coherencia en todos los cálculos. La función suma estos cambios porcentuales en los cuatro pares para cada divisa y calcula su promedio para generar una puntuación de fortaleza representativa, que se almacena en la matriz Strength para su visualización y registro.
void DrawPanel() { RemovePanel(); ObjectCreate(0, "CS_BG", OBJ_RECTANGLE_LABEL, 0, 0, 0); ObjectSetInteger(0, "CS_BG", OBJPROP_CORNER, CORNER_LEFT_UPPER); ObjectSetInteger(0, "CS_BG", OBJPROP_XDISTANCE, PanelX); ObjectSetInteger(0, "CS_BG", OBJPROP_YDISTANCE, PanelY); ObjectSetInteger(0, "CS_BG", OBJPROP_XSIZE, PanelWidth); ObjectSetInteger(0, "CS_BG", OBJPROP_YSIZE, PanelHeight); // Add headers, labels, colored bars for each currency }
La presentación visual de estos datos corre a cargo de DrawPanel(), que crea un rectángulo que cubre el área designada del panel de control. Para mayor claridad, se añaden encabezados para cada período de tiempo en la parte superior. A continuación, la función recorre cada divisa, creando etiquetas para el nombre de la divisa, el valor numérico de su fortaleza (con dos decimales) y una barra de color que indica visualmente su fortaleza o debilidad.
La combinación de colores utiliza tonos verdes para las monedas más fuertes, naranja para las neutrales y rojo para las más débiles, lo que permite a los operadores evaluar rápidamente las condiciones del mercado de forma visual. El ancho de la barra es proporcional al valor de fortaleza, lo que proporciona una señal visual intuitiva. Estos elementos gráficos sistemáticos y coherentes hacen que el panel de control sea informativo y fácil de interpretar de un vistazo.
void RemovePanel() { for(int i=ObjectsTotal(0)-1; i>=0; i--) { string name = ObjectName(0, i); if(StringFind(name, "CS_") == 0 || StringFind(name, "Lbl_") == 0 || StringFind(name, "Bar_") == 0) ObjectDelete(0, name); } }
Cuando es necesario actualizar o eliminar el panel, la función RemovePanel() elimina todos los objetos con prefijos de nombre específicos relacionados con el panel, tales como «CS_», «Hdr_», «Lbl_», «Val_» y «Bar_». Esta eliminación sistemática garantiza que el gráfico permanezca limpio y evita la saturación gráfica, lo que permite reconstruir el panel de control desde cero en cada actualización sin que se acumulen objetos residuales con el tiempo.
void DrawEquityLines()
{
for(int i=1; i< dataCount; i++)
{
string id = StringFormat("EQ_%d", i);
ObjectDelete(0, id);
ObjectCreate(0, id, OBJ_TREND, 0,
times[i-1], equities[i-1],
times[i], equities[i]);
ObjectSetInteger(0, id, OBJPROP_COLOR, clrYellow);
ObjectSetInteger(0, id, OBJPROP_WIDTH, 2);
}
} Las funciones DrawEquityLines() y DrawDrawdownLines() permiten visualizar la evolución del rendimiento de la cuenta. Cada vez que se registran nuevos datos de equity, estas funciones eliminan los objetos de tendencia anteriores ("EQ_" y "DD_") para mantener el gráfico limpio. A continuación, crean nuevos objetos de tendencia que conectan los puntos de datos almacenados, con un estilo basado en colores distintos (amarillo para el equity y rojo para el drawdown) para diferenciar claramente ambos.
Las líneas de tendencia proporcionan un historial visual de cómo ha evolucionado el valor de la cuenta, así como de las reducciones máximas experimentadas. Estas representaciones visuales solo tienen verdadero sentido si el EA gestiona activamente las operaciones, ya que dependen de los cambios en el equity de la cuenta provocados por las órdenes ejecutadas.
void DrawDrawdownLines() { double peak = -DBL_MAX; for(int i=1; i< dataCount; i++) { peak = MathMax(peak, equities[i-1]); double dd = equities[i-1] - peak; string id = StringFormat("DD_%d", i); ObjectDelete(0, id); ObjectCreate(0, id, OBJ_TREND, 0, times[i-1], dd, times[i], equities[i] - peak); ObjectSetInteger(0, id, OBJPROP_COLOR, clrRed); ObjectSetInteger(0, id, OBJPROP_WIDTH, 2); } }
Este es un punto importante: si bien el código para representar gráficamente el equity y el drawdown está incluido y generará líneas de tendencia, su utilidad depende en gran medida de si el Asesor Experto realiza operaciones automatizadas. Si el Asesor Experto (EA) es puramente informativo o solo permite el uso manual, el equity de la cuenta solo cambiará cuando el operador realice operaciones o depósitos/retiros manualmente. En estos casos, el gráfico de equity puede no reflejar con precisión el rendimiento de las operaciones en tiempo real, y las líneas de tendencia podrían ser estáticas o menos significativas.
Por lo tanto, estas funciones de representación gráfica son más valiosas cuando se integran en un Asesor Experto (EA) que realiza operaciones automáticas de forma activa, modificando continuamente el equity de la cuenta. Cuando se implementa un sistema de negociación automatizada de este tipo, el gráfico de equity proporciona una representación visual en tiempo real del crecimiento de la cuenta, los drawdowns y el rendimiento general, lo que puede ser de gran valor para la gestión de riesgos y la evaluación del rendimiento.
void LogCurrencyStrengths(int tfIdx) { string sStrong="", sWeak="", sNeutral=""; for(int i=0; i<8; i++) { double v = Strength[i][tfIdx]; if(v > 0.3) sStrong += Currencies[i] + " "; else if(v < -0.3) sWeak += Currencies[i] + " "; else sNeutral += Currencies[i] + " "; } Print("Strong: ", sStrong, "| Weak: ", sWeak, "| Neutral: ", sNeutral); }
Por último, la función LogCurrencyStrengths() ofrece un resumen textual en el que se clasifica cada divisa como fuerte, débil o neutra en función de unos umbrales predefinidos (por ejemplo, superior al +0,3 % o inferior al -0,3 %). Concatena los códigos de moneda en cadenas de texto para cada categoría y muestra estos resúmenes en la ventana del terminal. Este resumen textual ofrece una visión general rápida del sentimiento del mercado en las principales divisas, complementando la representación gráfica para los operadores que prefieren información rápida y de alto nivel.
Resultados
En esta sección, revisaremos los resultados de nuestras pruebas de EA en MetaTrader 5.
| Divisa | M15 | H1 | H4 |
|---|---|---|---|
| USD | -0.11 | +1.12 | +2.20 |
| EUR | -0.23 | -0.38 | -0.38 |
| GBP | +0.20 | +0.49 | +0.67 |
| JPY | +0.01 | -1.44 | -2.48 |
| CHF | +0.32 | -0.25 | -0.33 |
| CAD | +0.17 | +0.34 | +0.16 |
| AUD | +0.05 | +0.71 | +0.52 |
| NZD | +0.10 | +0.76 | +0.13 |
- El USD es la divisa más fuerte tanto en H1 (+1,12) como en H4 (+2,20), a pesar de una breve caída en M15.
- El JPY y el EUR son los más débiles en H1 (–1,44 y –0,38 ) y H4 (–2,48 y –0,38).
- GBP, CAD, AUD y NZD muestran una fortaleza de leve a moderada en H1/H4, lo que los convierte en candidatos secundarios "fuertes".
Conclusión
El indicador de fortaleza de las divisas le ayuda a identificar cambios en un par de divisas en diferentes marcos temporales. Ofrece una visión clara de la posible dirección del mercado. Esto no significa que deba operar de inmediato; en cambio, úselo para encontrar niveles de entrada óptimos y aplicar sus estrategias de gestión de riesgos y confirmación. Esta herramienta es un punto de partida para medir la fortaleza de una divisa, y existe margen para perfeccionar el análisis y mejorar la forma en que se presentan los resultados. Permanezca atento a los próximos desarrollos.
| Fecha | Nombre de la herramienta | Descripción | Versión | Actualizaciones | Notas |
|---|---|---|---|---|---|
| 01/10/24 | Chart Projector | Script para superponer un efecto fantasma a la evolución del precio del día anterior. | 1.0 | Versión inicial | Herramienta número 1 |
| 18/11/24 | Analytical Comment | Proporciona la información del día anterior en formato tabular, además de anticipar la dirección futura del mercado. | 1.0 | Versión inicial | Herramienta número 2 |
| 27/11/24 | Analytics Master | Actualización periódica de las métricas del mercado cada dos horas. | 1.01 | Segundo lanzamiento | Herramienta número 3 |
| 02/12/24 | Analytics Forecaster | Actualización periódica de las métricas del mercado cada dos horas con integración de Telegram. | 1.1 | Tercera edición | Herramienta número 4 |
| 09/12/24 | Volatility Navigator | El EA analiza las condiciones del mercado utilizando los indicadores Bandas de Bollinger, RSI y ATR. | 1.0 | Versión inicial | Herramienta número 5 |
| 19/12/24 | Mean Reversion Signal Reaper | Analiza el mercado utilizando una estrategia de reversión a la media y proporciona una señal. | 1.0 | Versión inicial | Herramienta número 6 |
| 09/01/25 | Signal Pulse | Analizador de múltiples marcos temporales. | 1.0 | Versión inicial | Herramienta número 7 |
| 17/01/25 | Metrics Board | Panel con botón para análisis. | 1.0 | Versión inicial | Herramienta número 8 |
| 21/01/25 | External Flow | Análisis a través de bibliotecas externas. | 1.0 | Versión inicial | Herramienta número 9 |
| 27/01/25 | VWAP | Volume Weighted Average Price. | 1.3 | Versión inicial | Herramienta número 10 |
| 02/02/25 | Heikin Ashi | Suavizado de tendencias e identificación de señales de reversión. | 1.0 | Versión inicial | Herramienta número 11 |
| 04/02/25 | FibVWAP | Generación de señales mediante análisis con Python. | 1.0 | Versión inicial | Herramienta número 12 |
| 14/02/25 | RSI DIVERGENCE | Divergencias entre la acción del precio y el RSI. | 1.0 | Versión inicial | Herramienta número 13 |
| 17/02/25 | Parabolic Stop and Reverse (PSAR) | Automatización de la estrategia PSAR | 1.0 | Versión inicial | Herramienta número 14 |
| 20/02/25 | Quarters Drawer Script | Trazar los niveles de los cuartos en el gráfico. | 1.0 | Versión inicial | Herramienta número 15 |
| 27/02/25 | Intrusion Detector | Detecta y alerta cuando el precio alcanza niveles de cuartos. | 1.0 | Versión inicial | Herramienta número 16 |
| 27/02/25 | TrendLoom Tool | Panel de análisis de múltiples marcos temporales. | 1.0 | Versión inicial | Herramienta número 17 |
| 11/03/25 | Quarters Board | Panel con botones para activar o desactivar los niveles de cuartos. | 1.0 | Versión inicial | Herramienta número 18 |
| 26/03/25 | ZigZag Analyzer | Trazado de líneas de tendencia con el indicador ZigZag. | 1.0 | Versión inicial | Herramienta número 19 |
| 10/04/25 | Correlation Pathfinder | Representación gráfica de correlaciones monetarias mediante bibliotecas de Python. | 1.0 | Versión inicial | Herramienta número 20 |
| 23/04/25 | Market Structure Flip Detector Tool | Detección de cambios en la estructura del mercado. | 1.0 | Versión inicial | Herramienta número 21 |
| 08/05/25 | Correlation Dashboard | Relación entre diferentes pares. | 1.0 | Versión inicial | Herramienta número 22 |
| 13/05/25 | Currency Strength Meter | Medir la fortaleza de cada divisa en diferentes pares. | 1.0 | Versión inicial | Herramienta número 23 |
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/18108
Advertencia: todos los derechos de estos materiales pertenecen a MetaQuotes Ltd. Queda totalmente prohibido el copiado total o parcial.
Este artículo ha sido escrito por un usuario del sitio web y refleja su punto de vista personal. MetaQuotes Ltd. no se responsabiliza de la exactitud de la información ofrecida, ni de las posibles consecuencias del uso de las soluciones, estrategias o recomendaciones descritas.
Utilizando redes neuronales en MetaTrader
Aprendizaje automático y Data Science (Parte 40): Uso de retrocesos de Fibonacci en datos de aprendizaje automático
Particularidades del trabajo con números del tipo double en MQL4
Aprendizaje automático y Data Science (Parte 39): Noticias + Inteligencia artificial, ¿apostarías por ella?
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso