Terminal
- Corrigida a exibição de texto nos gráficos ao trabalhar em sistemas macOS e Linux, onde é utilizado o Wine.
- Corrigida a renderização de indicadores exibidos como linha com cor variável.
- Corrigida a renderização dos objetos "Rótulo de texto" e "Botão".
- Corrigida a formatação de alguns indicadores estatísticos nos relatórios de negociação. Eles podiam ser arredondados de forma incorreta.
- 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.
- Corrigido o salvamento do estado da barra de ferramentas para gráfico desacoplado. Ao reiniciar a plataforma, a barra oculta podia aparecer novamente.
- 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.
- Adicionada a indicação do instrumento e do timeframe no título da janela ao iniciar um script no gráfico.
- Corrigida a duplicação de instrumentos de negociação na dica exibida ao pesquisar instrumentos no "Observação do Mercado".
- Corrigida a exibição das fontes Wingdings no gráfico.
- Corrigida a exibição de indicadores na forma de velas multicoloridas (DRAW_COLOR_CANDLES) e linhas multicoloridas (DRAW_COLOR_LINE).
- 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 pleaseA mensagem é exibida apenas para fins informativos e não afeta a possibilidade de conexão ao servidor.
- As traduções da interface do usuário foram atualizadas.
MQL5
- 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.
- 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:
- 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. - 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.
- A estabilidade ao trabalhar com OpenCL foi melhorada.
- 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.
- 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.
- 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 - 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.
- Foi corrigida a definição de cor para objetos gráficos por meio de ObjectSetInteger. O valor clrNONE podia não ser considerado.
- Foi corrigido o travamento da função Bars na ausência de histórico de preços no servidor.
- 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.
- Foi corrigido o funcionamento do atributo final. Agora, ao tentar sobrescrever uma função marcada como final, o compilador emitirá o erro correspondente.
- 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
- Foi corrigido um erro de falta de memória ao trabalhar com arquivos de código-fonte grandes, em megabytes.
- 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
- 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".
- Foi corrigida a chamada da função EventChartCustom durante o teste visual. Anteriormente, o evento era enviado incorretamente duas vezes.
- Foi corrigida a verificação do nível de congelamento (SYMBOL_TRADE_FREEZE_LEVEL) ao excluir ordens pendentes recém-criadas.
- 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
- 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 corrigida a exibição da especificação para instrumentos de negociação que possuem caracteres especiais no nome.
- Foi corrigida a exibição de preços negativos no diálogo de negociação.
- 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.
Veja as notícias anteriores:
- Nova versão da plataforma MetaTrader 5 build 5430: gráficos aprimorados com o motor Blend2D
- Nova versão da plataforma MetaTrader 5 build 5370: melhorias na versão web
- Nova versão do MetaTrader 5 build 5326: melhorias e correções
- Nova versão da plataforma MetaTrader 5 build 5320: serviços na Biblioteca de códigos e trabalho facilitado com input no MQL5
- Nova versão da plataforma MetaTrader 5 build 5260: melhorias no Algo Forge e novas regras de herança no MQL5