Nova versão da plataforma MetaTrader 5 build 4570: melhorias na versão web e integração com OpenBLAS no MQL5

 

Na sexta-feira, 27 de setembro de 2024, será lançada a versão atualizada da plataforma MetaTrader 5.

Adicionamos diversas novas funcionalidades e melhorias à versão web da plataforma. Foi incluído o modo de cruzamento para obter valores precisos e medir distâncias no gráfico, além de um novo tipo de gráfico — linha. Na versão móvel, agora é possível incluir informações adicionais na "Observação de mercado". Também foi ampliada a lista de teclas de atalho suportadas para facilitar o uso dos gráficos.

No MQL5, novas funções para aprendizado de máquina estão disponíveis. Foi implementada a integração com a biblioteca de cálculos matriciais OpenBLAS e melhorado o suporte ao ONNX Runtime, permitindo o uso de modelos neurais mais complexos.


Além disso, a plataforma teve melhorias no carregamento e exportação do histórico de ticks, e foram corrigidos erros nos agentes de teste que poderiam causar uso excessivo de memória.


MetaTrader 5 Client Terminal

  1. Terminal: o acesso às funções de MQL5 para negociação e obtenção de histórico foi restrito em contas com assinatura de sinais.

    Ao detectar uma assinatura em uma conta (independentemente de o espelhamento estar ativado no terminal atual), a chamada de quaisquer funções de negociação MQL5 é bloqueada: obtenção de ordens abertas e posições, histórico de operações e execução de operações de trading. Um aviso correspondente é registrado no log:
    'XXX': assinatura de sinal detectada, funções de negociação e acesso ao histórico no MQL5 e Python desativadas.
    As restrições também se aplicam às chamadas de funções de negociação em 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.

    Se a conta for removida da assinatura ou você se conectar a uma conta que não está assinada, a restrição é removida e o log exibe a mensagem:
    'XXX': nenhuma assinatura de sinal detectada, funções de negociação e acesso ao histórico no MQL5 e Python ativadas.
    Com a restrição ativa na conta, as funções do MQL5 retornam os seguintes códigos de resposta:

    • 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. Terminal: o pedido de histórico de ticks foi corrigido, otimizado e significativamente acelerado, assim como sua exportação para arquivos CSV\HTML.
  3. Terminal: foi adicionada a compatibilidade com Microsoft Edge WebView2 para exibir páginas HTML na plataforma de trading no macOS. Comparado ao desatualizado MSHTML, o novo componente amplia significativamente as possibilidades de exibição de conteúdo web, proporcionando acesso a tecnologias modernas. A transição para o WebView2 permitiu melhorar a aparência das seções "Market", "Sinais", "VPS" etc., aumentar o desempenho e criar interfaces mais responsivas.

  4. Terminal: corrigido o menu de contexto na janela de envio de e-mail através do correio integrado.
  5. Terminal: corrigido o filtro no diálogo de seleção de instrumentos de trading. Agora, não é mais necessário inserir o nome do instrumento expirado na barra de pesquisa para ocultá-lo.
  6. Terminal: corrigido o cálculo da margem de garantia esperada na janela de especificação de contrato. O erro ocorria para instrumentos do tipo Ações e Títulos da Bolsa.
  7. Terminal: aprimorada a função de fechamento em massa de posições de trading para contas com FIFO. Agora, tipos de operações incompatíveis, como o fechamento de todas as posições lucrativas/perdedoras, posições em uma única direção e posições opostas, não são exibidos.
  8. Terminal: corrigido um erro que impedia os usuários de colocarem ordens pendentes em direções opostas em contas onde as posições são fechadas de acordo com a regra FIFO.
  9. Terminal: corrigido o cálculo do valor de liquidação da conta de trading para instrumentos do tipo Futuros de Bolsa.
  10. Terminal: corrigido o cálculo do lucro flutuante para posições de instrumentos do tipo Títulos de Bolsa e Títulos MOEX.
  11. Terminal: a função de criação automática de conta demo ao iniciar a plataforma foi desativada, caso não haja contas previamente adicionadas.
  12. Terminal: melhorado o controle de entrada de nome e e-mail durante o registro de contas.
  13. Terminal: corrigido o cálculo da margem para posições com cobertura. O erro poderia ocorrer em alguns casos ao usar margem flutuante na conta (dependente do volume/valor das posições na conta).
  14. Terminal: corrigida a atualização do estado do botão "Próximo" no diálogo de abertura de conta demo. Após inserir o código de confirmação de telefone ou e-mail, o botão poderia permanecer inativo.
  15. Terminal: atualizadas as traduções da interface do usuário.
  16. MQL5: adicionada integração nativa com a biblioteca de cálculos matriciais OpenBLAS.

    OpenBLAS é uma biblioteca de álgebra linear de alto desempenho e código aberto, que implementa BLAS (Basic Linear Algebra Subprograms) e algumas funções LAPACK. O OpenBLAS visa aumentar o desempenho dos cálculos, especialmente em operações com matrizes e vetores, essenciais para tarefas científicas e de engenharia, como aprendizado de máquina, métodos numéricos e simulações.

    Principais características do OpenBLAS:

    • Suporte a multithreading: o OpenBLAS pode usar eficientemente vários núcleos de processador para cálculos paralelos, acelerando significativamente a execução de operações em sistemas multiprocessadores.
    • Otimização para arquiteturas de processadores: o OpenBLAS inclui compilações otimizadas para vários processadores, como Intel, AMD, ARM e outros. A biblioteca detecta automaticamente as características do processador (conjuntos de instruções suportados, como AVX/AVX2/AVX512) e escolhe as implementações de funções mais adequadas.
    • Suporte para uma ampla gama de operações BLAS: OpenBLAS implementa as principais funções BLAS, como operações com vetores (por exemplo, soma de vetores e produto escalar), matrizes (multiplicação) e operações entre vetores e matrizes.
    • Compatibilidade com LAPACK: a biblioteca suporta várias funções LAPACK (Linear Algebra PACKage), que são necessárias para operações mais complexas de álgebra linear, como a resolução de sistemas de equações lineares, cálculo de autovalores de matrizes, entre outras.
    • Alto desempenho: em comparação com outras bibliotecas BLAS, o OpenBLAS frequentemente apresenta melhores resultados devido à otimização manual para arquiteturas de processadores específicas.

    O OpenBLAS é amplamente utilizado em aplicativos relacionados a cálculos numéricos, como:

    • Treinamento de redes neurais e outras tarefas de aprendizado de máquina.
    • Cálculos científicos (por exemplo, simulações de processos físicos).
    • Processamento e análise de grandes volumes de dados.

    Atualmente, os seguintes métodos estão disponíveis no MQL5:

    Decomposição em valores singulares:

    • SingularValueDecompositionDC — algoritmo divide and conquer. Considerado o mais rápido entre outros algoritmos SVD (função LAPACK GESDD).
    • SingularValueDecompositionQR — algoritmo QR. Considerado o algoritmo clássico de SVD (função LAPACK GESVD).
    • SingularValueDecompositionQRPivot — algoritmo QR com pivotamento (função LAPACK GESVDQ).
    • SingularValueDecompositionBisect — algoritmo de bisseção (função LAPACK GESVDX).
    • SingularValueDecompositionJacobiHigh — algoritmo Jacobi de alto nível (função LAPACK GEJSV).
    • SingularValueDecompositionJacobiLow — algoritmo Jacobi de baixo nível (função LAPACK GESVJ). Em alguns casos, calcula pequenos valores singulares e seus vetores singulares com muito mais precisão do que outros subprogramas SVD.
    • SingularValueDecompositionBidiagDC — algoritmo divide and conquer para matrizes bidiagonais (função LAPACK BDSVDX).
    • SingularValueDecompositionBidiagBisect — algoritmo de bisseção para matrizes bidiagonais (função LAPACK BDSVDX).

    Métodos Eigen:

    • EigenSolver — cálculo de autovalores e autovetores de uma matriz quadrada clássica (função LAPACK GEEV).
    • EigenSymmetricDC — cálculo de autovalores e autovetores de uma matriz simétrica ou hermitiana (conjugada complexa) usando o algoritmo divide and conquer (funções LAPACK SYEVD, HEEVD).

    A documentação detalhada estará disponível em breve.

  17. MQL5: foi adicionado o valor SYMBOL_SWAP_MODE_CURRENCY_PROFIT na enumeração ENUM_SYMBOL_SWAP_MODE. Se a função SymbolInfoInteger retornar esse valor, significa que os swaps na conta são creditados em dinheiro na moeda de cálculo do lucro.
  18. MQL5: suporte expandido para ONNX Runtime. Novos tipos de operações de aprendizado de máquina foram adicionados, permitindo a execução de modelos neurais mais complexos.
  19. MQL5: a transição para um compilador MQL5 mais eficiente continua. Ele já é utilizado para algumas funções. A transição permitirá o uso de novas otimizações e aumentará a velocidade de execução dos programas.
  20. MQL5: novos tipos de dados foram adicionados, necessários para o suporte à biblioteca OpenBLAS.

    • complexf — número complexo com dados float
    • vectorcf — vetor contendo elementos do tipo complexf
    • matrixcf — matriz contendo elementos do tipo complexf

  21. MQL5: melhorado o funcionamento de WebRequest ao lidar com sites que violam as regras de formação de URL, possuem erros em redirecionamentos ou longas listas de nomes DNS alternativos.
  22. MQL5: corrigida a atribuição simultânea para várias variáveis do tipo matrix ou vector.
  23. MetaEditor: modelos disponíveis para AI Assistant foram atualizados. Agora, em vez do GPT-3.5 Turbo, utiliza-se o mais moderno GPT-4o mini. Também foi adicionada a versão da modelo 01-mini.
  24. MetaEditor: corrigido um erro no depurador, onde, em alguns casos, os valores das variáveis não eram atualizados na janela de observação.
  25. MetaEditor: atualizadas as traduções da interface do usuário.
  26. MetaTester: corrigida a gravação dos coeficientes de margem nas configurações personalizadas de símbolo.
  27. MetaTester: corrigidos vazamentos de memória que ocorriam em alguns casos entre os ciclos de teste.

MetaTrader 5 Web Terminal

  1. Adicionado o modo "Cruz" para exibir valores precisos e medir distâncias no gráfico.

    Clique no botão correspondente na barra lateral esquerda. Posicione a cruz em qualquer ponto do gráfico — a data e o preço serão exibidos nas escalas apropriadas. Para medir distâncias, clique em qualquer ponto do gráfico e arraste o cursor até outro ponto, sem soltar o botão do mouse.




    Você também pode usar atalhos de teclado: o botão do meio do mouse para ativar o cruzamento, Esc ou o botão direito do mouse para desativá-lo.

  2. Adicionada a visualização de gráfico em linha simples, construída com base nos preços de fechamento das barras:




  3. Adicionada a capacidade de exibir colunas adicionais na "Observação de mercado" na visualização móvel. Para configurar, vá para o modo de tabela e clique em "…":




  4. Novos atalhos de teclado adicionados:

    • Home — rola até o início do gráfico (data mais antiga)
    • End — rola até o final do gráfico (data mais recente)
    • Page Up — rola o gráfico uma tela para trás
    • Page Down — rola o gráfico uma tela para frente

  5. Segurança aprimorada no armazenamento de dados de conexão à conta.
  6. Melhorias na rolagem, movimentação e zoom dos gráficos.
  7. Acelerado o carregamento inicial da web-plataforma na página.
  8. Otimizado carregamento de barras.
  9. Corrigido o cálculo do lucro flutuante para posições de instrumentos do tipo Títulos de Bolsa e Títulos MOEX.
  10. Corrigida a entrada de volume no painel de negociação rápida no gráfico.
  11. Corrigido o erro de atualização de volumes de pedidos no livro de ofertas. Em alguns casos, os valores poderiam ser atualizados com atraso.
  12. Corrigida a verificação do volume mínimo permitido para operações de trading ao colocar ordens.
  13. corrigido o cálculo da margem para posições com cobertura. O erro poderia ocorrer em alguns casos ao usar margem flutuante na conta (dependente do volume/valor das posições na conta).
  14. Corrigido o erro em que os botões Buy e Sell no painel de negociação rápida poderiam ficar inativos até a alteração do volume.

A atualização estará disponível através do sistema Live Update.