Últimas actualizaciones de MetaTrader 4

Plataforma comercial para Fórex MetaTrader 4

19 mayo 2017
MetaTrader 4 build 1090
Nueva actualización de la plataforma MetaTrader 4 contendrá varias correcciones en el funcionamiento del terminal de cliente.
12 mayo 2017
MetaTrader 4 build 1080

Hace un mes que Microsoft lanzó una gran actualización del sistema operativo Windows 10 Creators Update (versión 1703). Después de instalarla, algunos usuarios no han podido iniciar sus programas MQL4. En la nueva versión de la plataforma MetaTrader 4 build 1080 se ha solucionado este problema. Los asesores e indicadores se iniciarán correctamente en los gráficos, sin que para ello sea necesario su compilación en el nuevo MetaEditor.

A partir del 1 de octubre de 2017, los terminales de cliente de MetaTrader 4 inferiores al build 1065 dejarán de tener soporte. Dichos terminales no podrán conectarse a los servidores de las nuevas versiones. Le recomendamos encarecidamente que actualice sus terminales de antemano.


23 marzo 2017
MetaTrader 4 build 1065

En plataforma actualización se ha corregido el error de reinicio de los expertos en los gráficos después de cambiar el marco temporal. Ahora el funcionamiento de los asesores no se detiene, la reinicialización tiene lugar correctamente.

3 febrero 2017
MetaTrader 4 build 1045

Una nueva actualización de la plataforma MetaTrader 4, relacionada con la salida de la versión preliminar de Windows 10 Insider Preview build 15007. Los cambios en los mecanismos de seguridad del OS Windows 10 han causado que en ciertos casos los terminales de cliente MetaTrader 4 no puedan iniciarse.

Le rogamos que instale la nueva la nueva versión de la plataforma, así estará preparado para la salida de la nueva actualización de Windows 10.

16 diciembre 2016
MetaTrader 4 build 1031
Hemos corregido una serie de errores relacionados con crash logs.
14 octubre 2016
MetaTrader 4 Android build 996
  1. Añadido un chat en el que los miembros de MQL5.community podrán comunicarse entre sí. Indicando el login del usuario necesario en el remite del mensaje, podrá enviarle un mensaje directamente al dispositivo móvil.

  2. Añadida la posibilidad de editar los niveles de los indicadores.
  3. Añadidas las traducciones de la interfaz al indonesio y al hindi.
30 agosto 2016
MetaTrader 4 iOS build 975
  1. El aspecto externo de los mensajes ha sido renovado. Ahora la correspondencia en MQL5.community y las notificaciones de la plataforma de escritorio se muestran en forma de chat, como los acostumbrados en los servicios de chat móvil más populares.

  2. También se dispone de la posibilidad de pasar de uno a otro de los 22 idiomas directamente en la plataforma. Si prefiere comerciar usando la interfaz en inglés, active dicho idioma en el apartado "Ajustes" ("Sobre el programa", en iPad) sin cambiar el idioma de su dispositivo.

18 agosto 2016
MetaTrader 4 build 1010: Posibilidades ampliadas para MQL4

Terminal

  1. Corregido el error que provocaba que los programas MQL4 no se pudieran ejecutar en los terminales al trabajar con la versión de 32 bits de Windows 10, build 1607.
  2. Corregidos los errores que en ocasiones provocaban la representación errónea de los botones de búsqueda y chat.
  3. Corregido el error que provocaba en ciertos casos que las cartas de bienvenida se recibieran por duplicado en el terminal al abrir las cuentas demo.

MQL4

  1. Añadidos los punteros 'void *', lo que permitirá crear colecciones abstractas de objetos. En una variable de este tipo se puede guardar un puntero a un objeto de cualquier clase. Para esta transformación se recomienda usar el operador dynamic_cast<nombre de la clase *>(puntero void *). Si la transformación no es posible, el resultado será NULL.
    class CFoo { };
    class CBar { };
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       void *vptr[2];
       vptr[0]=new CFoo();
       vptr[1]=new CBar();
    //---
       for(int i=0;i<ArraySize(vptr);i++)
         {
          if(dynamic_cast<CFoo *>(vptr[i])!=NULL)
             Print("CFoo * object at index ",i);
          if(dynamic_cast<CBar *>(vptr[i])!=NULL)
             Print("CBar * object at index ",i);
         }
       CFoo *fptr=vptr[1];  // dará error de transformación de los punteros, vptr[1] no es un objeto de CFoo
      }
    //+------------------------------------------------------------------+
  2. Añadido el soporte del operador [ ] para la línea, lo que permitirá obtener el símbolo de la línea según el índice. Si el índice establecido sale de los límites de la línea, el resultado será 0.
    string text="Hello";
    ushort symb=text[0];  // retornará el código del símbolo 'H'
    
  3. Aumentada la velocidad de funcionamiento de la función de copiado de datos históricos y de ticks CopyXXX.
  4. Corregido el error de borrado masivo de objetos gráficos según el prefijo con la ayuda de la función ObjectDeleteAll. Anteriormente, después de ejecutar esta función los objetos restantes se podían representar en un orden incorrecto.
  5. Corregido el error que en ciertos casos provocaba la representación en un orden incorrecto de los objetos gráficos al cambiar de marco temporal.

Hosting

  1. En la sincronización del terminal con el servidor virtual ahora no participan gráficos sin expertos, incluso si en dichos gráficos han sido iniciados indicadores de usuario. Para la migración de un indicador de usuario que funcione por separado, inícielo en el gráfico de un experto "vacío" que no realice ninguna operación. Es posible generarlo con facilidad a través del Wizard MQL4 en el MetaEditor, eligiendo el punto "Asesor: plantilla". Esto garantiza que la migración de los indicadores de usuario se realizará de forma consciente.
  2. Ahora podemos sincronizar los expertos e indicadores de usuario que contengan en su nombre símbolos no latinos (por ejemplo, cirílico o jeroglíficos).

Correcciones de crash logs.

1 julio 2016
MetaTrader 4 build 985: Chat MQL5.community incorporado

Terminal

  1. Añadido chat incorporado. Ahora podrá intercambiar mensajes instantáneos con amigos y colegas en MQL5.community directamente en la plataforma comercial. En el chat se muestra la historia de mensajes completa, así como el número de mensajes no leídos. Para comenzar una conversación, entre en su cuenta MQL5 directamente desde la ventana del chat o a través de los ajustes de la plataforma: Servicio -> Ajustes -> Comunidad.




  2. Terminal: Optimizada la lectura de la base de datos del correo interno al iniciar el terminal.

MQL4

  1. Añadida la posibilidad de mostrar/ocultar la escala de precio y tiempo en cualquier gráfico. Antes un programa MQL4 podía cambiar las propiedades CHART_SHOW_PRICE_SCALE y CHART_SHOW_DATE_SCALE solo para el gráfico en el que había sido iniciado.
  2. Añadida la propiedad MODE_CLOSEBY_ALLOWED para la función MarketInfo. El valor TRUE significa que para el instrumento dado está permitida la operación Close By - cierre de una posición con la opuesta.
  3. Corregida la transmisión del parámetro de línea al punto de entrada OnChartEvent, que provocaba un valor erróneo del parámetro. OnChartEvent permite seguir los eventos del gráfico: la pulsación de un botón del teclado, el desplazamiento del ratón y otros.
  4. Se ha acelerado la eliminación masiva de objetos gráficos con la ayuda de la función ObjectsDeleteAll.

Signals

  1. Mejorada la comparación automática de parejas de divisas que contienen RUB y RUR.

Tester

  1. Corregida la inscripción de la hora de creación de los objetos gráficos durante la simulación. Antes se inscribía la hora actual del terminal, en lugar de la hora de la simulación.

MetaEditor

  1. Corregida la colocación del enfoque en el cuadro de texto de reemplazo al abrir el cuadro de diálogo de reemplazo.
  2. Corregido el reemplazo masivo de texto al buscar hacia arriba desde la posición actual.
  3. Correcciones de crash logs.


3 junio 2016
MetaTrader 4 build 970: Apertura sencilla de cuentas demo y posibilidades de MQL4 ampliadas

Terminal

  1. Simplificada la ventana de diálogo de apertura de la cuenta demo. Ahora no es necesario rellenar un formulario enorme, basta con indicar los datos principales y elegir los parámetros comerciales: el tipo de cuenta, el depósito y el apalancamiento.




MQL4

  1. Modificado el formato de los archivos ejecutables EX4, a raíz de la adición de nuevas posibilidades al lenguaje MQL4. Todos los programas EX4 antiguos compilados en el MetaEditor de builds anteriores funcionarán correctamente después de la actualización. De esta forma, la compatibilidad de abajo hacia arriba se conserva totalmente.

    Al mismo tiempo, los programas EX4 compilados en los builds 970 y superiores no funcionarán en los terminales con los builds antiguos, no existe la compatibilidad inversa.

  2.  Añadido el soporte de las clases abstractas y las funciones virtuales puras.

    Las clases abstractas están diseñadas para crear entidades genéricas, sobre cuya base se supone que se crearán clases derivadas más concretas en lo sucesivo. Una clase abstracta, es una clase que sólo puede ser utilizada como clase básica para alguna otra clase, por eso no se puede crear un objeto de tipo de clase abstracta.

    La clase que contenga aunque sea solo una función virtual pura, es abstracta. Por eso las clases derivadas de una clase abstracta deben implementar todas sus funciones virtuales puras, de lo contrario, también serán clases abstractas.

    Una función virtual se declara como "pura" con la ayuda de la sintaxis de un especificador puro. Veremos como ejemplo la clase CAnimal, que se crea solo para proporcionar las funciones generales, los propios objetos del tipo CAnimal tienen un carácter demasiado general para la aplicación práctica. De esta forma, la clase CAnimal es un buen candidato a clase abstracta:
    class CAnimal
      {
    public:
                          CAnimal();     // constructor
       virtual void       Sound() = 0;   // función virtual pura
    private:
       double             m_legs_count;  // número de patas del animal
      };
    
    Aquí la función Sound() es virtual pura, por eso se la declara con el especificador de función virtual pura PURE (=0).

    Las funciones virtuales puras son solo aquellas funciones virtuales para las que se indica el especificador puro  PURE, y  precisamente: (=NULL) o (=0). Ejemplo de declaración y uso de una clase abstracta:
    class CAnimal
      {
    public:
       virtual void       Sound()=NULL;   // PURE method, debe ser redefinido en la clase derivada, la propia clase CAnimal se ha convertido en abstracta y no puede ser creada
      };
    //--- derivada de la clase abstracta
    class CCat : public CAnimal
     {
    public:
      virtual void        Sound() { Print("Myau"); } // PURE es redefinido, la clase CCat no es abstracta y puede ser creada
     };
    
    //--- ejemplos de uso incorrecto
    new CAnimal;         // error 'CAnimal' - el compilador retorna el error "cannot instantiate abstract class"
    CAnimal some_animal; // error 'CAnimal' - el compilador retorna el error "cannot instantiate abstract class"
    
    //--- ejemplos de uso correcto
    new CCat;  // no hay error, la clase CCat no es abstracta
    CCat cat;  // no hay error, la clase CCat no es abstracta
    
    Limitaciones de uso de las clases abstractas
    Si el constructor de una clase abstracta invoca una función virtual pura (directa o indirectamente) el resultado es indefinido.
    //+------------------------------------------------------------------+
    //| Clase básica abstracta                                           |
    //+------------------------------------------------------------------+
    class CAnimal
      {
    public:
       //--- función virtual pura
       virtual void      Sound(void)=NULL;
       //--- función
       void              CallSound(void) { Sound(); }
       //--- constructor
       CAnimal()
        {
         //--- invocación directa del método virtual
         Sound();
         //--- invocación indirecta (a través de una tercera función)
         CallSound();
         //--- en el constructor y/o destructor siempre se invocan sus propias funciones,
         //--- a pesar del carácter virtual y de la redefinición de la función invocada en la derivada
         //--- si la función invocada es virtual pura, entonces
         //--- la invocación provocará el error de ejecución crítico: "pure virtual function call"
        }
      };
    
    Sin embargo, los constructores y destructores de las clases abstractas pueden invocar otras funciones miembro.

  3. Para que la organización de modelos de eventos sea más sencilla, se ha añadido el soporte de índices a una función.

    Para declarar un índice a una función, defina el tipo "índice a una función", por ejemplo:
    typedef int (*TFunc)(int,int);
    Ahora TFunc es un tipo y se puede declarar la variable-índice a una función:
    TFunc func_ptr;
    En la variable func_ptr se puede guardar el índice a una función para invocarla más tarde:
    int sub(int x,int y) { return(x-y); }
    int add(int x,int y) { return(x+y); }
    int neg(int x)       { return(~x);  }
    
    func_ptr=sub;
    Print(func_ptr(10,5));
    
    func_ptr=add;
    Print(func_ptr(10,5));
    
    func_ptr=neg;           // error: neg no tiene el tipo  int (int,int)
    Print(func_ptr(10));    // error: tiene que haber dos parámetros
    
    Los índices a una función se pueden guardar y transmitir como parámetros. No es posible recibir un índice a un método de clase no estático.

  4. A la enumeración de propiedades del terminal de cliente ENUM_TERMINAL_INFO_INTEGER se ha añadido el valor TERMINAL_SCREEN_DPI, la capacidad de resolución a la hora de mostrar información en la pantalla se mide por la cantidad de puntos por pulgada lineal de la superficie (DPI). El conocimiento de este parámetro permite definir las dimensiones de los objetos gráficos de tal forma que parezcan iguales en monitores con diferente capacidad de resolución.
  5. A la enumeración de propiedades del terminal de cliente ENUM_TERMINAL_INFO_INTEGER se ha añadido el valor TERMINAL_PING_LAST, el último valor conocido del ping hasta el servidor comercial en microsegundos. En un segundo hay un millón de microsegundos.
  6. En los indicadores de usuario, los búferes DRAW_NONE (no hay construcciones gráficas) ahora no participan en los cálculos del mínimo y el máximo de la ventana del gráfico.
  7. Corregida la formación de eventos relacionados con el desplazamiento del ratón y la pulsación de los botones del ratón sobre los objetos del tipo OBJ_LABEL y OBJ_TEXT. Antes, si se encontraban dentro de los límites de otros objetos del tipo OBJ_RECTANGLE_LABEL, OBJ_RECTANGLE, los eventos se formaban de manera incorrecta.
  8. En los indicadores de usuario se ha corregido el dibujado de las columnas del histograma de altura cero. Antes estas columnas no se dibujaban, ahora se dibujan con una altura de un píxel.

Signals

  1. Corregidos los errores de búsqueda de instrumentos comerciales al comparar los instrumentos comerciales disponibles de la fuente de la señal y del suscriptor.

Tester

  1. Corregida la aplicación del spread en un archivo fxt, si en los ajustes de la simulación se usa el spread actual.

Market

  1. Corregida una serie de errores en la representación del escaparate del Mercado.

MetaEditor

  1. Corregida la búsqueda de una palabra por los archivos en el modo "Solo palabra completa".
  2. Añadido el paso a un archivo con un doble click en la línea del resultado de la compilación del archivo correspondiente.
  3. Corregida la representación de algunos elementos de control en Windows XP.


Correcciones de crash logs.
18 mayo 2016
MetaTrader 4 Android build 952
  1. Añadida una ventana emergente con información detallada sobre las operaciones. Podrá ver con solo un toque la hora de apertura y cierre de las órdenes, ver los comentarios a la posición y conocer el volumen de la comisión del bróker.
  2. Añadida al gráfico una línea roja que corresponde al precio Ask de la última barra. Esto le ayudará a controlar con mayor precisión su proceso comercial.
  3. Mejorado el funcionamiento de las noticias, ahora puede elegir y leer las categorías de noticias que le interesen, así como añadir los materiales que le gusten a favoritos.
  4. Todos los cambios en los ajustes de los objetos analíticos se guardan después de cerrar la aplicación.
6 mayo 2016
MetaTrader 4 iOS build 947

Ahora, para acceder a la aplicación se puede establecer un código PIN. Sus cuentas estarán protegidas de forma adicional, incluso en el caso de que pierda su dispositivo móvil. Active "Bloqueo de pantalla" en los ajustes de la aplicación. Por defecto, usará el mismo código PIN que existe para el acceso al generador de contraseñas de un solo uso.

En la nueva versión también se han introducido múltiples correcciones y mejoras.

23 febrero 2016
Plataforma web MetaTrader 4: un conjunto completo de indicadores técnicos e interfaz en 38 idiomas

La nueva versión de la plataforma MetaTrader 4 recibió un conjunto completo de indicadores para el análisis técnico. Ahora ella tiene 30 de los indicadores técnicos más populares en el mundo, al igual que en la versión de escritorio de MetaTrader 4:

Acelerador Oscilador
DeMarker Moving Average
Acumulação/Distribuição  Envelopes Moving Average of Oscillator
Alligator Force Index
On Balance Volume
Average Directional Movement Index Fractais Parabolic SAR 
Average True Range
Oscilador Gator Relative Strength Index 
Oscilador Maravilhoso Ichimoku Kinko Hyo Relative Vigor Index
Bears Power
MACD Desviación Estándar
Bollinger Bands
Índice de facilitación de mercado
Stochastic Oscillator
Bulls Power
Momentum Volume
Commodity Channel Index
Índice de flujo de dinero Williams' Percent Range

Todavía estamos trabajando en el acceso a la aplicación, es por eso que ahora la interfaz de la plataforma web está disponible en 38 idiomas. Se agregaron traducciones en 14 idiomas:

Holandés
Lituano Croata
Griego Rumano Checo
Hebreo Serbio
Sueco
Italiano Esloveno
Estonio
Letón
Finlandés



¡Abra su plataforma web ahora y disfrute de su aplicación actualizada!

15 febrero 2016
Plataforma web MetaTrader 4: Fueron adicionados los indicadores Bill Williams

En la nueva versión de la plataforma MetaTrader 4, aceleramos significativamente los gráficos mediante el uso de tecnología moderna de gráficos WebGL, por lo que ahora incluso un conjunto de indicadores que se ejecutan al mismo tiempo no afectará el rendimiento de la plataforma web.

Fue iniciado un trabajo en la implementación de indicadores técnicos. Actualmente ya están disponibles los indicadores Bill Williams:

  1. Alligator,
  2. Fractals,
  3. Market Facilitation Index,
  4. Awesome Oscillator,
  5. Accelerator Oscillator,
  6. Gator Oscillator.
Seguimos trabajando en el acceso a la aplicación, es por eso que tradujimos la interfaz al Hindi, uzbeko y ucraniano.
15 enero 2016
MetaTrader 4 iOS build 945
  • Añadido el soporte de la orientación vertical en la pantalla en el iPad. Úsela para mirar con comodidad las listas largas de operaciones comerciales, para leer el correo y las noticias.
  • Añadido el soporte de iPad Pro.
  • Añadida la lengua coreana al interfaz.
  • Diversas correcciones y mejoras.
23 diciembre 2015
MetaTrader 4 build 950: Vídeos incorporados y mejora del funcionamiento

Virtual Hosting

  1. En la ventana de diálogo para destacar el servidor virtual se ha añadido el enlace al vídeo didáctico "Cómo alquilar una plataforma virtual". Vea este vídeo de dos minutos y sepa lo sencillo que es iniciar un robot comercial o el copiado de señales en el modo 24 horas al día, 7 días a la semana.


    Este y otros muchos vídeos están disponibles en el canal oficial de MetaQuotes Software Corp. en YouTube.

Terminal

  1. Corregida la clasificación de los programas MQL4 en las subcarpetas de la ventana "Navegador". La clasificación se realiza por nombre.
  2. Corregido el dibujado del indicador de estado de la conexión de red al trabajar en las pantallas de alta definición (4K).
  3. Corregida la muestra de la ventana de vista previa antes de imprimir las noticias.
  4. Añadida la búsqueda plenamente funcional al visualizador de archivos del registro del terminal, de los expertos, del simulador y del hosting virtual. Ahora la búsqueda se puede realizar hacia adelante y hacia atrás, teniendo en cuenta el registro y también introduciendo palabras completas.

MetaEditor

  1. Se ha añadido al Asistente MQL4 el enlace al vídeo didáctico "Cómo montar un robot comercial en el Asistente MQL5". Vea este vídeo de 3 minutos y cree su propio robot comercial, sin escribir una sola línea de código.


    Este y otros muchos vídeos están disponibles en el canal oficial de MetaQuotes Software Corp. en YouTube.

MQL4

  1. Se ha corregido el valor retornado por la función SignaBaseTotal. En algunos casos, en lugar de la cantidad total de señales disponibles en el terminal, se retornaba 0.
  2. Corregido el error de cambio de visibilidad del objeto gráfico en diferentes marcos temporales de los programas MQL4. En algunos casos, el objeto no se representaba en el gráfico después de cambiar esta propiedad.

Tester

  1. Cambiada la muestra de los valores de los precios y de los niveles SL\TP en la ventana de resultados de la simulación.
Correcciones de crash logs.


11 diciembre 2015
MetaTrader 4 build 940: Adaptación para las pantallas de alta definición

Terminal

  1. Se han finalizado los trabajos de adaptación del interfaz al funcionamiento de las pantallas de alta definición (4K). En las pantallas de grandes dimensiones todos los elemntos del interfaz se muestran con nitidez. En las pantallas de pequeñas dimensiones, el tamaño de los elementos aumenta de forma automática para que se puedan leer con facilidad.




MQL4

  1. Corregido el error que provocaba en ciertos casos el error de compilación "Error al grabar EX4" (Error writing EX4) utilizando Windows 10.
  2. Corregido el error que provocaba en ciertos casos el error de carga de DLL ajenos en los scripts o expertos.

Virtual Hosting

  1. Corregido el error de migración al invocarse la biblioteca EX4 en el indicador de usuario, que a su vez se invoca desde el experto.

Signals

  1. Corregidas las notificaciones sobre los errores en la página de suscripción a una señal. Por ejemplo, el mensaje sobre la ausencia de los símbolos necesarios para el copiado, sobre las condiciones comerciales diferenciadas, etcétera.

MetaEditor

  1. Corregido el funcionamiento de los comandos de puesta en orden de las ventanas abiertas, si una de las ventanas está completamente desplegada. A través del menú "Ventanas", los archivos abiertos se pueden disponer en forma de mosaico, verticalmente, horizontalmente y en forma de cascada.


Correcciones de crash logs.
26 noviembre 2015
MetaTrader 4 build 920: Aumento de la velocidad de funcionamiento y gestión del test visual desde el archivo de configuración

Terminal

  1. Corregido el error del escaneado inicial y periódico de servidores comerciales en el diálogo de inicio la cuenta comercial. Ahora la accesibilidad y los pings se determinan a su debido tiempo, sin que sea necesario escanear de forma manual.




  2. Optimizado y acelerado el funcionamiento del terminal de cliente.
  3. Se han continuado los trabajos de adaptación del interfaz al funcionamiento de las pantallas de alta defición (4K).

MQL4

  1. MQL4: Corregido el error de carga de los indicadores de usuario desde los recursos de los programas MQL4. Los indicadores son incluidos en los recursos con la ayuda de la directiva #resource. Esto permite crear programas "todo en uno", que son bastante más fáciles de distribuir.
  2. MQL4: Corregida la precisión de representación del valor de los niveles en los indicadores de usuario. Antes la precisión de representación era de 4 dígitos tras la coma, ahora se determina con la precisión de valores correspondiente al indicador de usuario.
  3. MQL4: Corregida la comprobación de la posibilidad de reducir un objeto de un tipo a otro tipo como resultado de la herencia al transmitir el objeto como parámetro de un método/función.
  4. MQL4: Corregido el recálculo de los indicadores estándar en el búfer indicado (iIndicatorOnArray), en el caso de que los datos hayan sido establecidos por una matriz de tamaño fijo. En algunos casos el indicador se recalculaba.
  5. MQL4: Corregidos los errores en las plantillas de clases.

Tester

  1. Tester: Añadida la posibilidad de gestionar el modo de visualización al iniciar el simulador desde el archivo de configuración ini. El nuevo parámetro TestVisualEnable (true/false) es el responsable de ello. Si el parámetro no ha sido indicado, entonces se usa el ajuste actual.
  2. Tester: Corregido el error en las funciones CopyXXX, a causa del cual se retornaban los datos de la historia real, en lugar de los de la historia de prueba.
  3. Tester: Corregida la lectura de los parámetros de testado desde el archivo ini de configuración transmitido en la línea de comando.
  4. Tester: Corregido el error de liberación excesiva de memoria después de cerrar el gráfico de testado visual. En una serie de casos, esto provocaba que los datos históricos no estuviesen accesibles para los expertos que operan realmente.

Correciones de crash logs.

12 noviembre 2015
MetaTrader 4 build 910: Mejoras en la Biblioteca de códigos y elaboración definitiva del interfaz para Windows 10

Code Base

  1. Corregida y aumentada la velocidad de carga de los programas MQL4 de la Biblioteca. Descargue los códigos fuente gratuitos de los robots comerciales e indicadores directamente en el terminal.

Terminal

  1. Corregidos los errores al liberar de la memoria la historia de precio cargada. El error surgía cuando faltaba memoria.
  2. Corregida la representación de una serie de elementos del interfaz de usuario al trabajar con Windows 10.
  3. Corregida la eliminación de objetos gráficos del gráfico con la ayuda de la tecla Backspace.

Signals

  1. Completadas y corregidas las traducciones del escaparate de señales comerciales.

MQL4

  1. Añadida la propiedad read-only SYMBOL_VISIBLE a la enumeración ENUM_SYMBOL_INFO_INTEGER .
  2. Corregida una serie de errores al usar las plantillas.
  3. Corregido el comportamiento de la función ArrayCopy al copiar la matriz de línea, cuando la zona de datos de la fuente y el receptor de datos se cruzaban completa o parcialmente.

Tester

  1. Añadida la limitación al testar las versiones demo de los indicadores y expertos de MQL5 Market. Ahora el testado de las versiones demo de los productos de pago se ve finalizado de forma forzosa una semana antes de la fecha actual en el terminal.

MetaEditor

  1. Corregido el error que causaba en ciertos casos un conflicto de las descripciones emergentes con otras aplicaciones.


Correciones de crash logs.

22 octubre 2015
MetaTrader 4 Build 900: Plantillas de clases en MQL4 y optimización del trabajo con la memoria

Terminal

  1. Corregido el error del cambio de contraseña de una cuenta inactiva (no conectada).



  2. Terminal: Optimizado el uso y liberación de memoria al trabajar con grandes volúmenes de datos históricos.
  3. Terminal: Corregido y optimizado el trabajo con grandes cantidades de categorías de noticias.

Signals

  1. Corregida la baja del servicio de señales en el menú de contexto de la ventana "Navegador".



MQL4

  1. Añadidas las plantillas de clases, que permiten crear clases parametrizadas como en C++. Esto permitirá lograr una mayor abstracción y usar el mismo código para trabajar de una manera uniforme con objetos de diferentes clases. Ejemplo de uso:
    //+------------------------------------------------------------------+
    //|                                                    TemplTest.mq5 |
    //|                        Copyright 2015, MetaQuotes Software Corp. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2015, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    //+------------------------------------------------------------------+
    //| Anunciamos la plantilla de clase                                        |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArray
      {
    protected:
       T                 m_data[];
    
    public:
    
       bool              Append(T item)
         {
          int new_size=ArraySize(m_data)+1;
          int reserve =(new_size/2+15)&~15;
          //---
          if(ArrayResize(m_data,new_size,reserve)!=new_size)
             return(false);
          //---
          m_data[new_size-1]=item;
          return(true);
         }
       T                 operator[](int index)
         {
          static T invalid_index;
          //---
          if(index<0 || index>=ArraySize(m_data))
             return(invalid_index);
          //---
          return(m_data[index]);
         }   
      };
    //+------------------------------------------------------------------+
    //| La plantilla de clase de la matriz de índices, en el destructor elimina     |
    //| aquellos objetos a los que se referían los índices guardados en la matriz.                   |
    //|                                                                  |
    //| Preste atención a la herencia de la plantilla de la clase TArray    |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArrayPtr : public TArray<T *>
      {
    public:
       void             ~TArrayPtr()
         {
          for(int n=0,count=ArraySize(m_data);n<count;n++)
             if(CheckPointer(m_data[n])==POINTER_DYNAMIC)
                delete m_data[n];
         }
      };
    //+------------------------------------------------------------------+
    //| Anunciamos la clase, los índices a sus objetos los guardaremos en la matriz  |
    //+------------------------------------------------------------------+
    class CFoo
      {
       int               m_x;
    public:
                         CFoo(int x):m_x(x) { }
       int               X(void) const { return(m_x); }
      };
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    TArray<int>     ExtIntArray;   // instanciamos la plantilla TArray (especializamos la plantilla TArray con el tipo int)
    TArray<double>  ExtDblArray;   // instanciamos la plantilla TArray (especializamos la plantilla TArray con el tipo double)
    TArrayPtr<CFoo> ExtPtrArray;   // instanciamos la plantilla TArrayPtr (especializamos la plantilla TArrayPtr con el tipo CFoo)
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- llenamos las matrices con datos
       for(int i=0;i<10;i++)
         {
          int integer=i+10;
          ExtIntArray.Append(integer);
          
          double dbl=i+20.0;
          ExtDblArray.Append(dbl);
          
          CFoo *ptr=new CFoo(i+30);
          ExtPtrArray.Append(ptr);
         }
    //--- generamos el contenido de las matrices
       string str="Int:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtIntArray[i];      
       Print(str);   
       str="Dbl:";
       for(i=0;i<10;i++)
          str+=" "+DoubleToString(ExtDblArray[i],1);
       Print(str);   
       str="Ptr:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtPtrArray[i].X();      
       Print(str);
    //--- no es necesario eliminar los objetos CFoo creados a través de new, se eliminan en el destructor del objeto TArrayPtr<CFoo>  
      }
    Resultado de la ejecución:
    TemplTest EURUSD,M1: Ptr: 30 31 32 33 34 35 36 37 38 39
    TemplTest EURUSD,M1: Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
    TemplTest EURUSD,M1: Int: 10 11 12 13 14 15 16 17 18 19
  2. Corregida la redistribución de la memoria en la función ArrayCopy, que en ciertos casos provocaba la caída de los programas MQL4.

Tester

  1. Corregido el error que provocaba la puesta a cero de las variables anunciadas a nivel global después de finalizar la simulación del indicador.
  2. Corregida la simulación en ausencia de conexión con el servidor comercial.

MetaEditor

  1. MetaEditor: En MetaAssist se ha corregido la determinación del nombre de la función, en caso de que se muestre el tipo.
  2. MetaEditor: Corregida la apertura de grandes archivos.
  3. MetaEditor: Añadido el botón de acceso rápido F para iniciar la búsqueda desde la pestaña Biblioteca, así como multitud de pistas en la línea de estado, para los comandos de trabajo con el código: aumento/reducción de la sangría, desplazamiento, cambio de registro, etcétera.


Correciones de crash logs.
previa123456