Nova versão da plataforma MetaTrader 5 build 5570: melhorias em ONNX e na exibição de gráficos

Nesta versão, melhoramos o trabalho com ONNX em MQL5. Agora, esses modelos serão executados de forma significativamente mais rápida ao trabalhar em placas de vídeo com suporte a CUDA

29 janeiro 2026

Terminal

  1. Corrigida a exibição de texto nos gráficos ao trabalhar em sistemas macOS e Linux, onde é utilizado o Wine.
  2. Corrigida a renderização de indicadores exibidos como linha com cor variável.
  3. Corrigida a renderização dos objetos "Rótulo de texto" e "Botão".
  4. Corrigida a formatação de alguns indicadores estatísticos nos relatórios de negociação. Eles podiam ser arredondados de forma incorreta.
  5. Alterado o cálculo dos indicadores "Lucro total" e "Prejuízo total" no relatório de negociação. Agora eles incluem comissões e swaps.
  6. Corrigido o salvamento do estado da barra de ferramentas para gráfico desacoplado. Ao reiniciar a plataforma, a barra oculta podia aparecer novamente.
  7. Corrigido o carregamento das configurações de instrumentos de negociação personalizados a partir de arquivos JSON. Em particular, as configurações de swaps, sessões de negociação e o valor do tick podiam ser importadas de forma incorreta.
  8. Adicionada a indicação do instrumento e do timeframe no título da janela ao iniciar um script no gráfico.



    Adicionada a indicação do instrumento e do timeframe no título da janela ao iniciar um script no gráfico.


  9. Corrigida a duplicação de instrumentos de negociação na dica exibida ao pesquisar instrumentos no "Observação do Mercado".
  10. Corrigida a exibição das fontes Wingdings no gráfico.
  11. Corrigida a exibição de indicadores na forma de velas multicoloridas (DRAW_COLOR_CANDLES) e linhas multicoloridas (DRAW_COLOR_LINE).
  12. Adicionada a exibição de uma mensagem no log informando que o servidor da corretora possui uma versão desatualizada. Se o servidor tiver uma versão inferior à 5200, lançada há meio ano, você verá o aviso:
    outdated server build - must be at least 5200, contact your broker please
    A mensagem é exibida apenas para fins informativos e não afeta a possibilidade de conexão ao servidor.
  13. As traduções da interface do usuário foram atualizadas.

MQL5

  1. A ordem de instalação da biblioteca ONNX foi alterada. Agora ela é baixada na primeira execução de um programa MQL5 que utiliza ONNX, e não junto com a plataforma. A atualização da biblioteca ocorre automaticamente.
  2. Foi adicionada a compatibilidade com CUDA para ONNX. Se sua placa de vídeo suportar a tecnologia correspondente, isso acelerará significativamente a inferência dos modelos. Recomendamos fortemente atualizar os drivers da NVIDIA para melhorar a estabilidade e aumentar o desempenho.

    As permissões de uso do CUDA podem ser gerenciadas nas configurações da plataforma: 


    Gerenciamento do CUDA nas configurações da plataforma


  3. Os flags na enumeração ENUM_ONNX_FLAGS foram atualizados. Eles são usados na criação e execução de modelos ONNX:

    Trabalho com logs
    Em vez do flag obsoleto ONNX_DEBUG_LOGS, agora são utilizados os seguintes para trabalhar com logs:

    • ONNX_LOGLEVEL_VERBOSE — exibir todas as mensagens.
    • ONNX_LOGLEVEL_INFO — exibir mensagens informativas, além de avisos e erros. Substitui o flag obsoleto ONNX_DEBUG_LOGS.
    • ONNX_LOGLEVEL_WARNING — exibir avisos e erros. Usado por padrão.
    • ONNX_LOGLEVEL_ERROR — exibir apenas erros.

    Gerenciamento de CUDA e GPU
    O flag ONNX_CUDA_DISABLE foi removido. Em vez dele, utilize o novo ONNX_USE_CPU_ONLY. Se ele estiver ativado, apenas o processador será usado para trabalhar com os modelos.

    Foram adicionados flags para selecionar a placa de vídeo na qual o modelo será executado:

    • ONNX_GPU_DEVICE_0
    • ONNX_GPU_DEVICE_1
    • ONNX_GPU_DEVICE_2
    • ONNX_GPU_DEVICE_3
    • ONNX_GPU_DEVICE_4
    • ONNX_GPU_DEVICE_5
    • ONNX_GPU_DEVICE_6
    • ONNX_GPU_DEVICE_7

    Use-os se o sistema tiver 2 ou mais dispositivos com suporte a CUDA. Se vários flags forem definidos, será selecionado o dispositivo com o menor índice.

    Profiling de modelos
    Foi adicionado o flag ONNX_ENABLE_PROFILING, que ativa o profiling do modelo ONNX.

    Ao executar um modelo com esse flag ativado, será criado um arquivo na pasta /MQL5/Files/OnnxProfileReports/ com o nome [nome do arquivo EX5][data][hora].json, contendo o relatório de profiling.

  4. O limite para arquivos que podem ser incluídos no programa como recurso foi aumentado. Agora ele é de 1 GB. Isso permite incluir grandes modelos ONNX nos projetos. 
  5. A estabilidade ao trabalhar com OpenCL foi melhorada.
  6. Foi adicionado o método ReplaceToZero. Ele substitui valores pequenos em uma matriz ou vetor por valores zero e retorna a quantidade de elementos substituídos.
  7. Foram adicionados novos métodos OpenBLAS:

    • FactorizationLDLComplexSyRaw — calcula a fatoração de uma matriz complexa utilizando seleção diagonal do elemento principal pelo método de Bunch-Kaufman.
    • LDLComplexSyLinearEquationsSolution — resolve o sistema de equações lineares A X = B com uma matriz complexa simétrica indefinida, utilizando a decomposição A = UT D U ou A = L D * LT, calculada pelo método FactorizationLDLComplexSyRaw, com vários lados direitos.
    • LDLComplexSyInverse — calcula a matriz inversa para uma matriz complexa simétrica indefinida utilizando a decomposição A = UT D U ou A = L D LT, calculada pelo método FactorizationLDLComplexSyRaw.
    • LDLComplexSyCondNumReciprocal — avalia o número recíproco de condicionamento para uma matriz complexa simétrica indefinida utilizando a decomposição LDLT, calculada pelo método FactorizationLDLComplexSyRaw.

  8. Foi adicionada a função ColorToPRGB. Ela converte o tipo color para o tipo uint para obter a representação PRGB da cor. Esse formato é utilizado na criação de recursos gráficos, exibição de texto e na classe da biblioteca padrão CCanvas ao trabalhar com cores no formato COLOR_FORMAT_ARGB_RAW.
    uint ColorToPRGB(
       color clr, // cor no formato color
       uchar alpha=255 // canal alfa que controla a transparência da cor
    );
    A cor PRGB é calculada pela fórmula:
    R = R * A / 255
    G = G * A / 255
    B = B * A / 255
    A = A
  9. Foi corrigida a definição programática de texto para os objetos OBJ_LABEL, OBJ_TEXT, OBJ_BUTTON e OBJ_EDIT. Em alguns casos, o texto definido podia não ser exibido.
  10. Foi corrigida a definição de cor para objetos gráficos por meio de ObjectSetInteger. O valor clrNONE podia não ser considerado.
  11. Foi corrigido o travamento da função Bars na ausência de histórico de preços no servidor.
  12. Foi corrigida a busca de variáveis globais no escopo. O erro não permitia usar dentro de namespace variáveis com os mesmos nomes das variáveis no nível global.
  13. Foi corrigido o funcionamento do atributo final. Agora, ao tentar sobrescrever uma função marcada como final, o compilador emitirá o erro correspondente.
  14. Foi corrigido um aviso falso do compilador que ocorria ao usar declarações antecipadas de funções em arquivos incluídos *.mqh sem a diretiva #import. Agora o compilador processa corretamente essas declarações e não exige #import se as funções não forem importadas de DLLs.

    Exemplo

    Arquivo utils.mqh: 
    // Declaração antecipada da função
    double CalcLot(double risk, double stop);
    Arquivo expert.mq5:
    #include "utils.mqh"
    
    double CalcLot(double risk, double stop)
      {   
       return risk / stop;
      }
    Anteriormente, o compilador podia emitir um aviso informando que a diretiva #import estava ausente para a função CalcLot no arquivo utils.mqh, apesar de a função ser definida pelo usuário e implementada no código do projeto. Agora, esse código é compilado sem avisos. A diretiva #import é necessária apenas para funções realmente importadas de DLLs externas. 

MetaEditor

  1. Foi corrigido um erro de falta de memória ao trabalhar com arquivos de código-fonte grandes, em megabytes.
  2. Foi corrigida a exibição do valor e do nome de enumeração na janela de observação de expressões durante a depuração.

Tester

  1. Foi corrigida a interrupção do teste para EAs em loop. Agora, mesmo na presença de um ciclo infinito, o processo será interrompido instantaneamente ao pressionar o botão "Stop".
  2. Foi corrigida a chamada da função EventChartCustom durante o teste visual. Anteriormente, o evento era enviado incorretamente duas vezes.
  3. Foi corrigida a verificação do nível de congelamento (SYMBOL_TRADE_FREEZE_LEVEL) ao excluir ordens pendentes recém-criadas.
  4. Foi corrigida a exportação de dados de forward testing. Ao exportar dados de um teste no qual o modo forward não era utilizado, podiam ser salvos dados de testes forward anteriores.

Web Terminal

  1. Foi adicionada a exibição do tamanho aproximado do lucro/prejuízo em dinheiro ao definir Stop Loss e Take Profit no gráfico.


    Foi adicionada a exibição do tamanho aproximado do lucro/prejuízo em dinheiro


  2. Foi corrigida a exibição da especificação para instrumentos de negociação que possuem caracteres especiais no nome.
  3. Foi corrigida a exibição de preços negativos no diálogo de negociação.
  4. Foi corrigida a exibição dos indicadores financeiros da conta nos casos em que a moeda do depósito possui precisão superior a 2 casas decimais.