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

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

27 setembro 2024

Terminal

  1. 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. O pedido de histórico de ticks foi corrigido, otimizado e significativamente acelerado, assim como sua exportação para arquivos CSV\HTML.
  3. 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. Corrigido o menu de contexto na janela de envio de e-mail através do correio integrado.
  5. 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. 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. 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. 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. Corrigido o cálculo do valor de liquidação da conta de trading para instrumentos do tipo Futuros de Bolsa.
  10. Corrigido o cálculo do lucro flutuante para posições de instrumentos do tipo Títulos de Bolsa e Títulos MOEX.
  11. 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. Melhorado o controle de entrada de nome e e-mail durante o registro de contas.
  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. 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. Atualizadas as traduções da interface do usuário.

MQL5

  1. 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.

  2. 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.
  3. 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.
  4. 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.
  5. 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

  6. 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.
  7. Corrigida a atribuição simultânea para várias variáveis do tipo matrix ou vector.

MetaEditor

  1. 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.
  2. Corrigido um erro no depurador, onde, em alguns casos, os valores das variáveis não eram atualizados na janela de observação.
  3. Atualizadas as traduções da interface do usuário.

MetaTester

  1. Corrigida a gravação dos coeficientes de margem nas configurações personalizadas de símbolo.
  2. Corrigidos vazamentos de memória que ocorriam em alguns casos entre os ciclos de teste.

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.