Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 24): Herramienta de cuantificación de la acción del precio
Contenido
Introducción
La mayoría de los operadores que se basan en la evolución de los precios se guían por formaciones de velas específicas, como las pin bars, los dojis, las velas envolventes y las velas marubozu. Estas velas se utilizan para identificar cambios en la tendencia del mercado y detectar posibles reversiones o movimientos de continuación. Buscar manualmente estas señales entre docenas de gráficos puede llevar mucho tiempo y dar lugar a omisiones.
Hemos desarrollado el EA «Price Action Quantification Analysis» para MetaTrader 5 con el fin de hacer frente a este reto. Este asesor técnico:
- Analiza automáticamente un número configurable de barras recientes en busca de cuatro patrones de acción del precio ampliamente reconocidos.
- Marca cada patrón detectado en el gráfico con flechas y etiquetas, ofreciendo claras indicaciones visuales.
- Emite alertas y registra el movimiento posterior en pips de la siguiente barra para ayudarte a evaluar la fuerza de la señal.
- Proporciona estadísticas de backtesting integradas al tratar cada patrón como una "operación" y calcular una tasa de éxito general.
En las siguientes secciones, profundizaremos en la estructura del EA, repasaremos sus ajustes personalizables y mostraremos cómo sus métricas de rendimiento pueden perfeccionar su enfoque de negociación basado en la acción del precio. Comencemos por explorar los patrones específicos de velas japonesas que este Asesor Experto (EA) monitorea, examinando la anatomía de cada vela y los cálculos utilizados para identificarlas.
Patrones de velas japonesas
- Pin Bars
Una vela pin bar es una vela simple con un cuerpo pequeño y una cola o sombra larga. Cuando vea una, significa que el precio intentó moverse mucho en una dirección, pero fue repelido hacia atrás.
En una barra pin bajista, la larga sombra superior indica que los compradores no pudieron sostener la subida y que los vendedores tomaron el control.

Figura 1: Pin barra bajista
Una barra pin alcista tiene una sombra inferior larga, lo que indica que los compradores entraron en escena e impulsaron un giro al alza.

Figura 2: Pin bar alcista
El color de la vela también puede reforzar la señal. En una vela pin bar bajista, un cuerpo rojo (o negro) resulta más convincente porque cierra por debajo del precio de apertura, lo que demuestra el dominio de los vendedores. En una vela pin bar alcista, un cuerpo verde (o blanco) refuerza la señal al cerrar por encima del precio de apertura, lo que refleja la presión compradora. Sin embargo, la forma y la longitud de la cola de la pin bar son más importantes que el color por sí solo. Para confiar en la señal, busque una cola que sea al menos dos o tres veces mayor que el tamaño del cuerpo, observe cualquier pico de volumen durante el rechazo y compruebe que la barra de pin aparezca cerca de niveles conocidos de soporte o resistencia. Estos pasos adicionales le ayudan a identificar verdaderos giros del mercado en lugar de confundirlos con mechas ordinarias.
Pasos lógicos
- Calcula candleBody, topShadow y bottomShadow.
- Se requiere que candleBody sea mayor que minBodyPoints * _Point.
Barra de pin bajista:
topShadow >= wickToBodyRatio * candleBody
bottomShadow < smallWickCap * candleBody
Barra de pin alcista:
bottomShadow >= wickToBodyRatio * candleBody
topShadow < smallWickCap * candleBody
// 1. Calculate parts double candleBody = MathAbs(closePrice - openPrice); double topShadow = highPrice - MathMax(openPrice, closePrice); double bottomShadow = MathMin(openPrice, closePrice) - lowPrice; // 2. Minimum body check if(candleBody > minBodyPoints * _Point) { // Bearish pin bar if(topShadow >= wickToBodyRatio * candleBody && bottomShadow < smallWickCap * candleBody) Print("Bearish Pin Bar detected"); // Bullish pin bar else if(bottomShadow >= wickToBodyRatio * candleBody && topShadow < smallWickCap * candleBody) Print("Bullish Pin Bar detected"); }
- Doji
Un «doji» aparece cuando el precio de apertura y el de cierre de una vela son prácticamente idénticos. Indica indecisión en el mercado y su sesgo depende de la tendencia previa. Las variaciones en la longitud de las sombras superior e inferior crean formaciones que se asemejan a un signo más, una cruz o una cruz invertida.

Figura 3: Doji
Pasos lógicos
- Calcula candleBody, fullRange, topShadow y bottomShadow.
- Se requiere que candleBody sea menor o igual que maxDojiRatio * fullRange.
- Se debe cumplir que topShadow > candleBody y bottomShadow > candleBody.
// 1. Calculate body and range double candleBody = MathAbs(closePrice - openPrice); double fullRange = highPrice - lowPrice; double topShadow = highPrice - MathMax(openPrice, closePrice); double bottomShadow = MathMin(openPrice, closePrice) - lowPrice; // 2. Tiny body test if(candleBody <= fullRange * maxDojiRatio) { // 3. Both shadows must extend beyond the body if(topShadow > candleBody && bottomShadow > candleBody) Print("Doji detected"); }
- Patrones envolventes de velas japonesas
Hay dos tipos de velas envolventes: la envolvente alcista y la envolvente bajista.
Envolvente alcista
Este patrón de reversión de dos velas aparece cuando finaliza una tendencia bajista o una consolidación. Una vela bajista más pequeña es seguida inmediatamente por una vela alcista más grande que cubre por completo el cuerpo anterior. El tamaño de la segunda vela muestra que los compradores superan con creces a los vendedores y, a menudo, marca el inicio de un fuerte movimiento alcista.

Figura 4: Envolvente alcista
Envolvente bajista
Esta es la configuración inversa. Una vela alcista más pequeña es seguida por una vela bajista más grande que envuelve por completo el cuerpo anterior. Este patrón indica que los vendedores han tomado el control y puede ser una señal del comienzo de una fuerte caída.

Figura 5: Envolvente bajista
Pasos lógicos
Calcula prevBody = |prevClose – prevOpen|, currBody = |close – open|.
Se requiere que currBody sea mayor que prevBody.
Patrón envolvente alcista:
- prevClose < prevOpen
- openPrice ≤ prevClose
- closePrice ≥ prevOpen
Patrón envolvente bajista:
- prevClose > prevOpen
- openPrice ≥ prevClose
- closePrice ≤ prevOpen
// 1. Compute body sizes double prevBody = MathAbs(prevClose - prevOpen); double currBody = MathAbs(closePrice - openPrice); // 2. Must be larger than previous if(currBody > prevBody) { // Bullish engulfing if(prevClose < prevOpen && openPrice <= prevClose && closePrice >= prevOpen) Print("Bullish Engulfing detected"); // Bearish engulfing else if(prevClose > prevOpen && openPrice >= prevClose && closePrice <= prevOpen) Print("Bearish Engulfing detected"); }
- Vela Marubozu

Figura 6: Marubozu
Las velas Marubozu se distinguen por su cuerpo alargado y la ausencia casi total de mechas. Sus precios de apertura y cierre abarcan prácticamente todo el rango, lo que indica una acción decisiva del mercado. Existen tres variantes de Marubozu, cada una con versiones alcistas y bajistas:
Marubozu completo
Versión alcista: Apertura en el mínimo, cierre en el máximo. Los compradores determinan el precio de principio a fin.
Versión bajista: Apertura en el máximo, cierre en el mínimo. Los vendedores dominan durante toda la sesión.
Marubozu de apertura
Versión alcista: Apertura en el mínimo, cierre ligeramente por debajo del máximo (una pequeña mecha superior). Los compradores toman el control de inmediato.
Versión bajista: Apertura en el máximo, cierre ligeramente por encima del mínimo (una pequeña cola inferior). Los vendedores marcan el ritmo de la sesión desde el principio.
Marubozu de cierre
Versión alcista: Cierre en el máximo, apertura ligeramente por encima del mínimo (una pequeña mecha inferior). La presión compradora va en aumento a medida que se acerca el cierre.
Versión bajista: Cierre en el mínimo, apertura ligeramente por debajo del máximo (una pequeña mecha superior). La presión vendedora se intensifica al cierre.
Pasos lógicos
- Calcula candleBody, fullRange, topShadow y bottomShadow.
- Se requiere que candleBody sea igual o mayor que marubozuRatio * fullRange.
- Se debe cumplir que topShadow ≤ (1 – marubozuRatio) * fullRange y bottomShadow ≤ (1 – marubozuRatio) * fullRange.
- Si el precio de cierre es mayor que el precio de apertura, la tendencia es alcista; en caso contrario, es bajista.
// 1. Calculate parts double candleBody = MathAbs(closePrice - openPrice); double fullRange = highPrice - lowPrice; double topShadow = highPrice - MathMax(openPrice, closePrice); double bottomShadow = MathMin(openPrice, closePrice) - lowPrice; // 2. Body covers most of the range if(candleBody >= marubozuRatio * fullRange) { // 3. Shadows must be small double maxWick = (1 - marubozuRatio) * fullRange; if(topShadow <= maxWick && bottomShadow <= maxWick) { // 4. Bullish or bearish if(closePrice > openPrice) Print("Bullish Marubozu detected"); else Print("Bearish Marubozu detected"); } }
Análisis detallado del EA de MQL5
Arriba se muestra el diagrama que ilustra el comportamiento del EA una vez aplicado al gráfico de MetaTrader 5. A continuación, hemos presentado los resultados en formato tabular; cada valor representa una variación porcentual. Cuando nos propusimos crear este asesor experto, nuestro objetivo principal era automatizar la detección de patrones clave de velas japonesas en los que los operadores suelen basarse para tomar decisiones de trading, como Pin Bars, Doji, Engulfing y Marubozu. Queríamos que el EA analizara de forma objetiva la evolución reciente de los precios, identificara estos patrones con precisión y ofreciera indicaciones visuales claras en el gráfico, junto con datos estadísticos sobre la eficacia del patrón.
Para lograrlo, empezamos por definir unos parámetros de entrada que permiten cierta flexibilidad en el análisis. Entre ellos se incluyen el número de barras hacia atrás que se analizarán (InpLookbackBars), el tamaño mínimo del cuerpo en puntos (InpMinBodySizePts) para descartar las velas insignificantes, y la relación entre la mecha y el cuerpo (InpWickBodyRatio) para la detección de barras pin. También hemos incluido un parámetro de período ATR para medir la volatilidad del mercado, que puede influir en las reglas de reconocimiento de patrones.
// Input parameters for customization input int InpLookbackBars = 200; // Bars to scan input int InpMinBodySizePts = 10; // Min body size (points) input double InpWickBodyRatio = 2.0; // Min wick-to-body ratio input int InpATRPeriod = 14; // ATR period
En la fase de inicialización (OnInit()), configuramos las matrices para almacenar los datos calculados de cada barra, como el tamaño del cuerpo, las mechas superior e inferior, el rango total y los valores de ATR. Nos hemos asegurado de que estas matrices estén organizadas en serie para poder procesar las barras recientes de forma eficiente. Además, hemos creado un pequeño búfer para registrar las señales recientes, lo que resulta útil a la hora de analizar posteriormente las tasas de éxito de los patrones.
int OnInit() { ArraySetAsSeries(Body,true); ArraySetAsSeries(UpperWick,true); ArraySetAsSeries(LowerWick,true); ArraySetAsSeries(TotalRange,true); ArraySetAsSeries(ATR,true); ArrayResize(Body, InpLookbackBars+2); ArrayResize(UpperWick, InpLookbackBars+2); ArrayResize(LowerWick, InpLookbackBars+2); ArrayResize(TotalRange, InpLookbackBars+2); ArrayResize(ATR, InpLookbackBars+2); for(int i=0;i<5;i++) g_history[i]=""; return(INIT_SUCCEEDED); }La lógica principal se encuentra en la función OnTick, que se ejecuta con cada nuevo tick del mercado. Para evitar cálculos innecesarios, hemos añadido un control que garantiza que el proceso solo se realice una vez por cada nueva barra, comparando las marcas de tiempo. Cuando se detecta una nueva barra, llamamos a AnalyzeAndDraw, que lleva a cabo el análisis principal.
void OnTick() { static datetime lastTime=0; datetime current = iTime(_Symbol, _Period, 0); if(current == lastTime) return; // Only process once per new bar lastTime = current; AnalyzeAndDraw(); }
En AnalyzeAndDraw, lo primero que hacemos es borrar cualquier dibujo anterior para que el gráfico quede despejado. A continuación, recorremos las barras más recientes para calcular las métricas clave de las velas japonesas: el tamaño del cuerpo (diferencia absoluta entre la apertura y el cierre), la mecha superior (máximo menos el mayor valor entre la apertura y el cierre), la mecha inferior (mínimo entre la apertura y el cierre menos el mínimo) y el rango total (máximo menos mínimo). También copiamos los valores de ATR para incorporar aspectos relacionados con la volatilidad en la detección de patrones.
void AnalyzeAndDraw() { int bars = MathMin(InpLookbackBars, (int)SeriesInfoInteger(_Symbol,_Period,SERIES_BARS_COUNT)); ObjectsDeleteAll(0,0,OBJ_ARROW); ObjectsDeleteAll(0,0,OBJ_LABEL); for(int i=0; i<bars; i++) { double op = iOpen(_Symbol,_Period,i); double cl = iClose(_Symbol,_Period,i); double hi = iHigh(_Symbol,_Period,i); double lo = iLow(_Symbol,_Period,i); // Calculate candlestick components Body[i] = MathAbs(cl-op); UpperWick[i] = hi - MathMax(op,cl); LowerWick[i] = MathMin(op,cl) - lo; TotalRange[i] = hi - lo; } // Copy ATR buffer if(CopyBuffer(iATR(_Symbol,_Period,InpATRPeriod),0,0,bars,ATR)<=0) return; // Exit if ATR data not available
A continuación, aplicamos nuestras reglas de reconocimiento de patrones. Por ejemplo, para identificar una «pin bar», comprobamos si la vela tiene un cuerpo pequeño y una mecha larga, y si la relación entre la mecha y el cuerpo supera nuestro umbral.
- Barra pin bajista: mecha superior larga >= ratio × cuerpo, mecha inferior pequeña
- Barra pin alcista: mecha inferior larga >= ratio × cuerpo, mecha superior pequeña
En primer lugar, descartamos los cuerpos más pequeños (Body > minPts). A continuación, nos aseguramos de que una de las mechas tenga una longitud de, como mínimo, InpWickBodyRatio veces la del cuerpo, y de que la mecha opuesta no supere el 50 % del cuerpo.
// assume Body[i], UpperWick[i], LowerWick[i] already computed if(InpShowPinBar && Body[i] > InpMinBodySizePts*_Point) { // Bearish: towering upper wick, stubby lower wick if( UpperWick[i] > Body[i]*InpWickBodyRatio && LowerWick[i] < Body[i]*0.5 ) type = "Bearish Pin Bar"; // Bullish: towering lower wick, stubby upper wick else if( LowerWick[i] > Body[i]*InpWickBodyRatio && UpperWick[i] < Body[i]*0.5 ) type = "Bullish Pin Bar"; }
En el caso del Doji, buscamos velas con cuerpos mínimos en relación con un umbral basado en puntos, y con mechas que indiquen una posible indecisión.
- Body <= DojiBodyRatio × totalRange
- Ambas mechas > cuerpo (para confirmar que hay sombras)
Limitamos el cuerpo a, digamos, el 10 % del rango total (InpDojiBodyRatio). El hecho de exigir que cada mecha sobrepasen el cuerpo permite descartar los «peonzas» que apenas tienen sombras.
// TotalRange[i] = high – low if(InpShowDoji && Body[i] <= TotalRange[i] * InpDojiBodyRatio // body tiny vs full range && UpperWick[i] > Body[i] // upper shadow present && LowerWick[i] > Body[i]) // lower shadow present type = "Doji";
Los patrones envolvente consisten en comparar la vela actual con la anterior, comprobando si la apertura y el cierre de la vela anterior se encuentran en lados opuestos y si la vela actual envuelve por completo a la anterior.
- Patrón envolvente alcista: la barra anterior fue bajista, la apertura actual es ≤ al cierre anterior, el cierre actual es ≥ a la apertura anterior y currBody > prevBody
- Patrón envolvente bajista: la barra anterior era alcista, la apertura actual es ≥ al cierre anterior, el cierre actual es ≤ a la apertura anterior y currBody > prevBody
double po = iOpen(_Symbol,_Period,i+1), pc = iClose(_Symbol,_Period,i+1); double prevBody = MathAbs(pc - po), currBody = Body[i]; if(InpShowEngulfing && currBody > prevBody) { // Bullish: current body engulfs prior’s if(pc < po && op <= pc && cl >= po) type = "Bullish Engulfing"; // Bearish: current body engulfs prior’s else if(pc > po && op >= pc && cl <= po) type = "Bearish Engulfing"; }
En el caso de las velas Marubozu, comprobamos si el cuerpo abarca la mayor parte del rango total, lo que indica un fuerte impulso.
- Body >= MarubozuBodyRatio × totalRange (p. ej., ≥ 90 %)
- Ambas mechas <= (1 – MarubozuBodyRatio) × totalRange
if(InpShowMarubozu
&& Body[i] >= TotalRange[i] * InpMarubozuBodyRatio
&& UpperWick[i] <= TotalRange[i] * (1 - InpMarubozuBodyRatio)
&& LowerWick[i] <= TotalRange[i] * (1 - InpMarubozuBodyRatio))
{
type = (cl > op) ? "Bullish Marubozu" : "Bearish Marubozu";
}
Cada vez que se detecta un patrón, incrementamos los contadores de señales totales y de ganancias. Definimos las «ganancias» en función de si la vela siguiente se mueve en la dirección esperada, lo que nos proporciona una medida de la fiabilidad del patrón.
if(type!="") { lastIdx = i; lastCl = cl; lastIsBuy = (StringFind(type,"Bullish")>=0); latestSignal = type; g_totalSignals++; double nextC = iClose(_Symbol,_Period,i-1); if(lastIsBuy && nextC>cl) g_totalWins++; if(!lastIsBuy && nextC<cl) g_totalWins++; DrawPattern(i, type, lastIsBuy); break; }
Para que estas señales sean fácilmente identificables, dibujamos flechas que apuntan hacia arriba o hacia abajo en el gráfico, junto con etiquetas que indican el tipo de patrón, utilizando la función DrawPattern. También generamos alertas para que se nos avise de inmediato cuando aparezca un patrón.
void DrawPattern(int idx, const string type, bool isBuy) { datetime t = iTime(_Symbol,_Period,idx); double y = iHigh(_Symbol,_Period,idx) + 15*_Point; string an = StringFormat("PAQ_%s_%d",type,idx); ObjectCreate(0,an,OBJ_ARROW,0,t,y); ObjectSetInteger(0,an,OBJPROP_ARROWCODE,isBuy?233:234); ObjectSetInteger(0,an,OBJPROP_COLOR,isBuy?clrLime:clrRed); string lbl = an+"_lbl"; ObjectCreate(0,lbl,OBJ_LABEL,0,t,y-25*_Point); ObjectSetString(0,lbl,OBJPROP_TEXT,type); ObjectSetInteger(0,lbl,OBJPROP_COLOR,isBuy?clrLime:clrRed); }A lo largo del proceso de desarrollo, nuestro objetivo ha sido conseguir que la EA sea flexible e informativa. Por eso, hemos incluido un búfer de historial de patrones para conservar las señales recientes y, al final del backtest o cuando desactivamos el EA, mostramos estadísticas de rendimiento como el número total de señales, las ganancias y la tasa de acierto. Esto nos ayuda a evaluar la eficacia de nuestra lógica de detección de patrones a lo largo del tiempo.
void OnDeinit(const int reason) { double rate = g_totalSignals>0 ? 100.0*g_totalWins/g_totalSignals : 0.0; PrintFormat("[PAQ] Backtest completed: Signals=%I64d Wins=%I64d WinRate=%.1f%%", g_totalSignals, g_totalWins, rate); }
En conclusión, este EA se ha desarrollado integrando la lógica de detección de patrones de velas japonesas con indicadores visuales y funciones de seguimiento del rendimiento. Nuestro objetivo era crear un sistema automatizado que simplificara la tarea, a menudo laboriosa, de identificar patrones, al tiempo que ofreciera señales visuales claras y estadísticas de rendimiento para facilitar la toma de decisiones de inversión más fundamentadas.
Resultados
Veamos cómo ha funcionado nuestro EA tanto en tiempo real como en backtesting. En primer lugar, observamos en el siguiente diagrama el patrón que el EA detectó en el mercado real: se trata del patrón de una envolvente bajista. Se ve claramente que es la auténtica, ya que la vela bajista envuelve por completo a la vela alcista anterior.
Figura 7: Envolvente bajista
A continuación, tenemos una vela pin bar bajista que se ha detectado correctamente. Se trata de una vela pin bar válida, lo que demuestra la precisión de la herramienta para identificar patrones de velas japonesas.

Figura 8: Pin barra bajista
Finalmente, aquí tenemos los resultados de nuestras pruebas retrospectivas. El EA identifica correctamente los patrones y registra el nombre de cada patrón detectado en el registro.

Figura 9: Backtesting
Conclusión
A partir de los resultados expuestos en la sección anterior, queda claro que nuestro EA detecta de forma fiable los cuatro patrones clave de velas japonesas. Este hito ayudará tanto a los operadores novatos como a los experimentados a identificar formaciones que pueden ser difíciles de detectar a simple vista. En mis pruebas retrospectivas y en los ensayos en el mercado real, el Asesor Experto identificó correctamente cada patrón. Si bien ningún sistema es perfecto, algunas señales pueden no materializarse; el EA no está diseñado para filtrar todas las señales falsas. En cambio, ofrece una capa adicional y precisa de análisis de la evolución de los precios. Los operadores pueden entonces aplicar sus propias técnicas de confirmación antes de comprometerse con una posición larga o corta.
En general, el EA destaca en su tarea principal: el reconocimiento de patrones. Lo recomiendo encarecidamente por su precisión a la hora de detectar las cuatro formaciones a las que se dirige. No dudes en ajustar los parámetros de entrada para adaptarlos a tu estrategia. Agradezco tus comentarios sobre cualquier aspecto que consideres que se podría mejorar aún más.
| 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 |
| 21/05/25 | PAQ Analysis Tool | Detector de formación de velas | 1.0 | Versión inicial | Herramienta número 24 |
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/18207
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.
Del básico al intermedio: Sobrecarga de operadores (III)
Simulación de mercado: La unión hace la fuerza (I)
Simulación de mercado: La unión hace la fuerza (II)
Del básico al intermedio: Sobrecarga de operadores (II)
- 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