MetaTrader 5 build 4730: Expansão do suporte ao OpenBLAS e otimização geral de desempenho

Nesta versão, o MQL5 ganhou suporte para mais algumas novas funções da biblioteca OpenBLAS, além das funções TransposeConjugate e CompareEqual. Elas oferecerão ainda mais possibilidades para trabalhar com matrizes e vetores. Além disso, corrigimos a compatibilidade do pacote de integração com Python. Agora ele funciona com qualquer versão do Python, até a 3.13

6 dezembro 2024

Terminal Cliente

  1. O cálculo do custo de posições, ordens e negociações foi alterado. Agora é exibido na moeda de depósito da conta, em vez da moeda base do instrumento de negociação:

    O custo de posições, ordens e negociações agora é exibido na moeda de depósito da conta

  2. Adicionado um campo para inserir a data de nascimento ao abrir contas demo.

    Adicionado um campo para inserir a data de nascimento ao abrir contas demo


  3. Corrigida a escalabilidade de indicadores exibidos no subjanela do gráfico. Para alguns osciladores, o valor mínimo e máximo da escala poderia ser selecionado incorretamente.
  4. Otimizada e acelerada a extração de dados de ticks e do histórico de preços, aumentando a velocidade de abertura de gráficos.
  5. Corrigido o problema de edição da cor do texto na janela de criação de mensagens de correio interno.
  6. Atualizadas traduções da interface do usuário.

MQL5

  1. Novos métodos adicionados ao OpenBLAS:

    • EigenSolver2 — cálculo de autovalores e autovetores generalizados para pares de matrizes quadradas comuns (função lapack GGEV).
    • EigenSolverX — cálculo de autovalores e autovetores de matrizes quadradas comuns no modo especialista (Expert mode), permitindo influenciar o algoritmo de cálculo e obter dados de cálculo auxiliares (função lapack GEEVX).
    • EigenSolver2X — cálculo de autovalores e autovetores generalizados para pares de matrizes quadradas comuns no modo especialista (Expert mode), permitindo influenciar o algoritmo de cálculo e obter dados de cálculo auxiliares (função lapack GGEVX).
    • EigenSolverShur — cálculo de autovalores, matriz triangular superior na forma de Schur e matriz de vetores de Schur (função lapack GEES).
    • EigenSolver2Shur — cálculo para pares de matrizes quadradas comuns de autovalores generalizados, autovetores generalizados, formas de Schur generalizadas e vetores de Schur à esquerda e à direita (função lapack GGES).
    • EigenSolver2Blocked — cálculo de autovalores e autovetores generalizados para pares de matrizes quadradas comuns usando o algoritmo por blocos (função lapack GGEV3).
    • EigenSolver2ShurBlocked — cálculo para pares de matrizes quadradas comuns de autovalores generalizados, autovetores generalizados, formas de Schur generalizadas e vetores de Schur à esquerda e à direita usando o algoritmo por blocos (função lapack GGES3).
    • EigenSymmetricRobust — cálculo de autovalores e autovetores de uma matriz simétrica ou hermitiana (conjugada complexa) usando o algoritmo Multiple Relatively Robust Representations, MRRR (funções lapack SYEVR, HEEVR).
    • EigenSymmetricBisect — cálculo de autovalores e autovetores de uma matriz simétrica ou hermitiana (conjugada complexa) usando o algoritmo de bissecção (funções lapack SYEVX, HEEVX).

  2. Novos métodos adicionados para matrizes complexas:

    • transposeConjugate — para criar uma matriz conjugada-transposta.
      matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;
      O método retorna uma nova matriz conjugada-transposta, na qual os elementos da matriz original são transpostos e convertidos em seus valores complexos conjugados.

      Em caso de erro, é retornada uma matriz vazia; para obter o código do erro, use a função GetLastError.

    • CompareEqual — comparação absoluta de duas matrizes.
      int matrix<T>::CompareEqual(const matrix<T>& mat) const
      Valores retornados:

      • -1 — se um elemento da matriz A for menor que o elemento correspondente da matriz B.
      • 0 — se todos os elementos das matrizes A e B forem idênticos.
      • 1 — se um elemento da matriz A for maior que o elemento correspondente da matriz B.

      O método também pode retornar erros em caso de estado incorreto dos dados de entrada. Para obter o código do erro, use a função GetLastError.

  3. Adicionado suporte ao Python até a versão 3.13 para o pacote de integração. Para atualizar o pacote, execute o comando:

    pip install --upgrade MetaTrader5

  4. Corrigida a omissão do primeiro evento Timer. O erro ocorria se o timer fosse ativado dentro do manipulador OnTimer.

MetaEditor

  • Corrigido o cálculo de valores para variáveis de entrada ao trabalhar no depurador. Em alguns casos, em vez do valor, era exibida a mensagem unknown identifier.

Tester

  • Corrigida a busca por taxas de câmbio cruzadas necessárias para a conversão de moedas ao testar instrumentos de mercado.

Web Terminal

  1. Adicionado suporte para o modo de execução «Sob consulta» para ordens de grande volume.
  2. Adicionado suporte para descrição detalhada do motivo de rejeição do pedido pela corretora.
  3. Corrigido o formulário de abertura de contas. Agora o conjunto de dados solicitados corresponde às configurações da corretora.
  4. Corrigida a identificação do país ao registrar uma conta demo.
  5. Corrigido o alinhamento do diálogo com o aviso sobre a ativação de negociação com um clique.