MetaTrader 5 build 4570: mejoras en la versión web e integración con OpenBLAS en MQL5

La versión web de la plataforma ha recibido muchas funciones nuevas y mejoras. Hemos introducido un modo de retícula para obtener valores precisos y medir distancias en los gráficos, así como una nueva vista de gráfico: la línea. La versión móvil ahora tiene la capacidad de incluir información adicional en la «Observación de mercado»

27 septiembre 2024

Terminal

  1. Limitado el acceso a las funciones de MQL5 para el comercio y la obtención de la historia cuando existe una suscripción a una señal en la cuenta.

    Al detectarse una suscripción en la cuenta (no importa si el copiado está activado en el terminal actual), se prohibirá llamar a cualquier función comercial de MQL5: obtener las órdenes y posiciones abiertas, obtener la historia, realizar operaciones comerciales. La advertencia correspondiente aparecerá en el diario de registro:
    'XXX': signal subscription detected, trading and history access functions in MQL5 and Python disabled
    Las restricciones también se aplicarán a las llamadas de las funciones comerciales de Python: positions_total, positions_get, orders_total, orders_get, history_orders_total, history_orders_get, history_deals_total, history_deals_get, order_check, order_send.

    Si la cuenta se da de baja de la señal o usted se conecta a otra cuenta que no esté suscrita a la señal, se eliminará la restricción y aparecerá un mensaje en el diario de registro:
    'XXX': no signal subscription detected, trading and history access functions in MQL5 and Python enabled
    Si existen restricciones en la cuenta, las funciones MQL5 retornarán los siguientes códigos de respuesta:

    • OrderSend, OrderSendAsync — RET_REQUEST_AT_DISABLED_CLIENT
    • OrdersTotal, PositionsTotal — 0
    • PositionGetSymbol, PositionSelect, PositionSelectByTicket, PositionGetTicket — ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • OrderGetTicket, OrderSelect — ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • HistorySelect — retorna ERR_MQLAPI_TRADE_DEAL_NOT_FOUND

  2. Corregida, optimizada y acelerada sustancialmente la consulta de la historia de ticks y su exportación a archivos CSV/HTML.
  3. Añadida compatibilidad con Microsoft Edge WebView2 para representar páginas HTML en la plataforma comercial en macOS. En comparación con el MSHTML, ya obsoleto, el nuevo componente amplía enormemente las posibilidades de muestra de contenido web, ofreciendo acceso a tecnologías modernas. El cambio a WebView2 ha mejorado el aspecto de las secciones «Mercado», «Señales», «VPS», etc., ha aumentado su rendimiento y ha creado interfaces más receptivas.

  4. Menú contextual fijo en la ventana de envío de correos electrónicos a través del correo incorporado.
  5. Corregido el filtrado en la ventana de diálogo de la selección de instrumentos comerciales. Ahora ya no tendrá que escribir primero su nombre en la barra de búsqueda para ocultar los instrumentos que han expirado.
  6. Corregido el cálculo de la garantía prevista (requisitos de margen) en la ventana de especificación del contrato. El error surgía en los instrumentos del tipo Exchange Stocks y Bonds.
  7. Mejorada la función de cierre masivo de posiciones comerciales para las cuentas con FIFO. Ahora no se mostrarán para ellas los tipos de transacciones incompatibles: cierre de todas las posiciones rentables/con pérdidas, posiciones en una dirección y posiciones opuestas.
  8. Corregido el error que impedía a los usuarios colocar órdenes pendientes multidireccionales en cuentas cuyas posiciones se cierran utilizando la regla FIFO.
  9. Corregido el cálculo fijo del valor de liquidación de una cuenta comercial cuando existen posiciones en instrumentos con el tipo Exchange Futures.
  10. Corregido el cálculo fijo del beneficio flotante para posiciones en instrumentos con el tipo Exchange Bonds y Exchange MOEX Bonds.
  11. Desactivada la función de creación automática de cuentas demo al iniciar la plataforma si no hay cuentas añadidas previamente.
  12. Mejorado el control sobre el nombre y el correo electrónico introducidos al registrar las cuentas.
  13. Corregido el cálculo del margen para las posiciones cubiertas. El error podría producirse en algunos casos cuando se utilizaba margen flotante en la cuenta (dependiendo del volumen/valor de las posiciones en la cuenta).
  14. Corregida la actualización del estado del botón "Siguiente" en la ventana de diálogo de apertura de una cuenta demo. Después de introducir el código de confirmación por teléfono o por correo electrónico, el botón podía quedar inactivo.
  15. Actualizadas las traducciones de la interfaz de usuario.

MQL5

  1. Añadida integración nativa con la biblioteca de cálculo matricial OpenBLAS.

    OpenBLAS es una biblioteca de álgebra lineal de código abierto y alto rendimiento que implementa BLAS (Basic Linear Algebra Subprograms) y algunas funciones de LAPACK. OpenBLAS pretende mejorar el rendimiento computacional, especialmente en operaciones matriciales y cálculos vectoriales que resultan importantes en tareas científicas y de ingeniería como el aprendizaje automático, los métodos numéricos y las simulaciones.

    Las principales características de OpenBLAS son:

    • Soporte multihilo: OpenBLAS puede usar eficazmente varios núcleos de procesador para la computación paralela, lo cual acelera considerablemente las operaciones en sistemas multiprocesador.
    • Optimización para arquitecturas de procesador: OpenBLAS incluye versiones optimizadas para varios procesadores como Intel, AMD, ARM y otros. La biblioteca detecta automáticamente las características del procesador (conjuntos de instrucciones AVX/AVX2/AVX512 compatibles) y elige las implementaciones de funciones más adecuadas.
    • Soporte para una amplia gama de operaciones BLAS: OpenBLAS implementa funciones BLAS básicas como operaciones con vectores (por ejemplo, suma de vectores y producto escalar), matrices (multiplicación) y operaciones vector-matriz.
    • Compatibilidad con LAPACK: la biblioteca soporta una serie de funciones LAPACK (Linear Algebra PACKage), necesarias para operaciones de álgebra lineal más complejas, como la resolución de sistemas de ecuaciones lineales, el cálculo de valores propios de matrices y otras.
    • Alto rendimiento: en comparación con otras bibliotecas BLAS, OpenBLAS suele ofrecer un mejor rendimiento gracias a la optimización manual de arquitecturas de procesador específicas.

    OpenBLAS se usa ampliamente en aplicaciones relacionadas con la computación numérica, como:

    • El entrenamiento de redes neuronales y otras tareas de aprendizaje automático.
    • La informática científica (por ejemplo, modelización de procesos físicos).
    • El manejo y análisis de grandes cantidades de datos.

    Los siguientes métodos están disponibles actualmente en MQL5:

    Descomposición singular:

    • SingularValueDecompositionDC es un algoritmo divide and conquer. Se considera el más rápido entre otros algoritmos SVD (función lapack de GESDD).
    • SingularValueDecompositionQR es un algoritmo QR. Se considera un algoritmo SVD clásico (función lapack de GESVD).
    • SingularValueDecompositionQRPivot es un algoritmo QR with pivoting (función lapack de GESVDQ).
    • SingularValueDecompositionBisect es un algoritmo bisection (función lapack de GESVDX).
    • SingularValueDecompositionJacobiHigh es un algoritmo Jacobi de alto nivel (función lapack GEJSV).
    • SingularValueDecompositionJacobiLow es un algoritmo Jacobi de bajo nivel (función lapack de GESVJ). En algunos casos, calcula valores singulares pequeños y sus vectores singulares con mucha más precisión que otras rutinas SVD.
    • SingularValueDecompositionBidiagDC es un algoritmo divide and conquer para matrices bidiagonales (función lapack BDSVDX).
    • SingularValueDecompositionBidiagBisect es un algoritmo bisection para matrices bidiagonales (función lapack de BDSVDX).

    Métodos Eigen:

    • EigenSolver supone el cálculo de los valores y vectores propios de una matriz cuadrada ordinaria mediante el algoritmo clásico (función lapack de GEEV).
    • EigenSymmetricDC supone el cálculo de valores y vectores propios de una matriz simétrica o hermítica (compleja-conjugada) utilizando el algoritmo divide and conquer (funciones lapack de SYEVD, HEEVD).

    En breve dispondrá de documentación detallada.

  2. Añadido el valor SYMBOL_SWAP_MODE_CURRENCY_PROFIT a la enumeración ENUM_SYMBOL_SWAP_MODE. Si la función SymbolInfoInteger retorna un valor de este tipo, significa que los swaps de la cuenta se acumularán en dinero en la divisa de cálculo del beneficio.
  3. Ampliada la compatibilidad con ONNX Runtime. Añadidos nuevos tipos de operaciones de aprendizaje automático que permiten ejecutar modelos neuronales más complejos.
  4. La transición a un compilador MQL5 más eficaz sigue progresando. Ya se usa para parte de las funciones. La transición permitirá usar nuevas optimizaciones y aumentar la velocidad de ejecución de los programas.
  5. Añadidos nuevos tipos de datos necesarios para soportar la biblioteca OpenBLAS:

    • complexf - número complejo con datos float
    • vectorcf - vector que contiene elementos de tipo complexf
    • matrixcf - matriz que contiene elementos de tipo complexf

  6. Mejorado el funcionamiento de WebRequest al trabajar con sitios web que infringen las normas de formación de URL, tienen errores de redirección o grandes listas de nombres DNS alternativos.
  7. Corregida la asignación simultánea a varias variables de tipo matrix o vector.

MetaEditor

  1. Actualizados los modelos disponibles para el AI Assistant. Ahora se usará el GPT-4o mini, más moderno, en lugar del GPT-3.5 Turbo. También se ha añadido el modelo 01-mini.
  2. Corregido un error en el depurador que, en algunos casos, provocaba que los valores de las variables no se actualizaran en la ventana de observación.
  3. Actualizadas las traducciones de la interfaz de usuario.

MetaTester

  1. Corregido el guardado de los coeficientes de margen en los ajustes personalizados de los símbolos.
  2. Corregidas las fugas de memoria que se producían en algunos casos entre pasadas de prueba.

Terminal web

  1. Añadido el modo «Retícula» para ver valores exactos y medir distancias en el gráfico.

    Haga clic en el botón correspondiente del panel izquierdo. Pase la retícula por encima de cualquier punto del gráfico: la fecha y el precio se mostrarán en las escalas correspondientes. Para medir la distancia, haga clic en cualquier punto del gráfico y desplace el cursor a otro punto sin soltar el botón del ratón.




    También podrá utilizar teclas de acceso rápido: el botón central del ratón para activar la retícula, y Esc o el botón derecho del ratón para desactivarla.

  2. Añadida la representación del gráfico como una línea simple trazada por los precios de cierre de las barras:




  3. Añadida la posibilidad de mostrar columnas adicionales en la «Observación de mercado» en la vista móvil. Para configurar, vaya al modo tabular y pulse «...»:




  4. Añadidas teclas de acceso rápido:

    • Home — desplazamiento hasta el principio del gráfico (la fecha más antigua)
    • End — desplazamiento hasta el final del gráfico (la fecha más reciente)
    • Page Up — desplazamiento del gráfico una pantalla hacia atrás
    • Page Down — desplazamiento del gráfico una pantalla hacia delante

  5. Se ha reforzado la seguridad del almacenamiento de datos de conexión de cuentas.
  6. Mejorado el desplazamiento, el movimiento y el zoom de los gráficos.
  7. Acelerada la carga inicial de la plataforma web en una página.
  8. Optimizada la carga de barras.
  9. Corregido el cálculo fijo del beneficio flotante para posiciones en instrumentos con el tipo Exchange Bonds y Exchange MOEX Bonds.
  10. Corregida la introducción del volumen en el panel de comercio rápido del gráfico.
  11. Corregido el error de actualización de los volúmenes de las órdenes en la profundidad de mercado. En algunos casos, los valores podían actualizarse con retraso.
  12. Corregida la comprobación fija del volumen mínimo admisible de una operación comercial al colocar órdenes.
  13. Corregido el cálculo del margen para las posiciones cubiertas. El error podría producirse en algunos casos cuando se utilizaba margen flotante en la cuenta (dependiendo del volumen/valor de las posiciones en la cuenta).
  14. Corregido el error que podía provocar que los botones Buy y Sell del panel de comercio rápido estuvieran inactivos antes de los cambios de volumen.