MetaTrader 5 build 1570: escaparate del Mercado mejorado y funciones de plantilla ampliadas en MQL5

¿Qué novedades tiene MetaTrader 5?

24 marzo 2017

Terminal

  1. Actualizado el escaparate de la tienda de aplicaciones MetaTrader Market. Elegir robots comerciales e indicadores técnicos es ahora más fácil. Hemos actualizado el diseño, y también hemos aumentado la selección de productos:

    • En la página principal ahora se muestran los expertos e indicadores más buscados, las novedades del Mercado, así como las aplicaciones gratuitas más populares.
    • En los apartados de los expertos, indicadores y utilidades han aparecido nuevas subcategorías: robots de cuadrícula y robots de cobertura, indicadores de tendencia y multivisa y mucho más.




  2. Se ha corregido la actualización del terminal de cliente y el funcionamiento de las compras incorporadas en el Mercado, las Señales y el Hosting virtual al usar las cuentas de usuario de Windows con privilegios limitados.
  3. Corregido el error que causaba en ocasiones la clasificación defectuosa de la historia de posiciones.
  4. Optimizada la representación de la pestaña "Activos".

MQL5

  1. Añadido el soporte de la sobrecarga de funciones de plantilla según el parámetro. Por ejemplo, hay una función de plantilla que graba en el primer parámetro el valor del segundo parámetro con la ayuda de una conversión explícita de códigos. En el lenguaje MQL5 está prohibida la conversión del tipo string al tipo bool, pero podemos hacer esto por nosotros mismos. Creamos la sobrecarga de la función de plantilla:
    //+------------------------------------------------------------------+
    //| Función de plantilla                                             |
    //+------------------------------------------------------------------+
    template<typename T1,typename T2>
    string Assign(T1 &var1,T2 var2)
      {
       var1=(T1)var2;
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Sobrecarga especial para el caso bool+string                     |
    //+------------------------------------------------------------------+
    string Assign(bool &var1,string var2)
      {
       var1=(StringCompare(var2,"true",false) || StringToInteger(var2)!=0);
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int i;
       bool b;
       Print(Assign(i,"test"));
       Print(Assign(b,"test"));
      }
    Como resultado de la ejecución de este código, veremos que para la pareja int+string se ha usado la función de plantilla Assign(), y en la segunda llamada bool+string ya se ha usado la función sobrecargada.
    string Assign<int,string>(int&,string)
    string Assign(bool&,string)

  2. Añadida la posibilidad de especialización explícita de las funciones de plantilla. Para ello, antes de la lista con los parámetros de llamada es necesario indicar los parámetros de tipado:
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // especialización explícita de la función de plantilla
      }
    De esta forma, la especialización tiene lugar no a través de los parámetros de llamada, sino mediante la indicación directa de los tipos.

  3. Optimizada la representación de los indicadores de usuario con el tipo de dibujado DRAW_ZIGZAG.
  4. A la enumeración de los tipos de operaciones ENUM_DEAL_TYPE se han añadido nuevos valores:

    • DEAL_DIVIDEND — operación con dividendos.
    • DEAL_DIVIDEND_FRANKED — operación con dividendos franqueados (no tributables, la compañía paga el impuesto por el cliente).
    • DEAL_TAX — operación de carga impositiva.

  5. Corregida la representación de los indicadores de usuario con el tipo de dibujado DRAW_FILLING. Ahora, cuando las coordenadas de la línea superior e inferior coinciden, se dibuja una línea delgada.
  6. Corregido el cálculo de las coordenadas del objeto "Etiqueta gráfica" (Bitmap Label) al establecer el parámetro CHART_SHOW en el estado false. Este parámetro se define con la ayuda de la función ChartSetInteger y permite ocultar todos los elementos del gráfico de precio para crear una interfaz de programa propia.
  7. Corregido el error de recodificación de las imágenes de 24 bits al colocarlas en los recursos de la aplicación MQL5.
  8. Corregido el error de impresión de estructuras con la función ArrayPrint.
  9. Actualizadas las bibliotecas estándar MQL5.

MetaEditor

  1. Añadida la traducción de la interfaz de usuario al malayo.

Signals

  1. Corregida la apertura de la página de la señal en el terminal al pasar desde la página MQL5.community, en caso de que no exista conexión en la cuenta comercial.

Tester

  1. Corregidos los errores al trabajar con la función CopyTicks en el simulador de estrategias.
  2. Corregida la clasificación de operaciones del tipo "Retirada" (Withdrawal) al formar el informe de simulación.
  3. Corregida la modificación de órdenes pendientes.

Hosting

  1. Corregida la representación del wizard del hosting virtual en las pantallas de resolución ultra alta (4K).

Actualización de la documentación.