O que há de novo no MetaTrader 5?

Histórico de atualizações das plataformas desktop, móvel e web

11 outubro 2024
MetaTrader 5 build 4620: correções de erros no MQL5 e novos métodos OpenBLAS

Terminal

  1. Terminal: corrigido um erro que, em alguns casos, solicitava um histórico de ticks incompleto.
  2. Terminal: corrigido o autocompletar na seleção de símbolos para idiomas diferentes do inglês. Quando o usuário insere o nome de um símbolo no campo de busca, o sistema começa a sugerir automaticamente as opções correspondentes. Agora a busca funciona corretamente e sem distinção de maiúsculas/minúsculas para qualquer localidade.

MQL5

  1. Na documentação do MQL5, foi adicionado a descrição de novos métodos OpenBLAS. Atualmente, foram adicionados 15 novos métodos para matrizes e vetores, e o trabalho de expansão continua.
    OpenBLAS é uma solução eficiente de código aberto para cálculos de alto desempenho, especialmente ao lidar com grandes conjuntos de dados.
    Função Ação

    SingularValueDecompositionDC

    Singular Value Decomposition, algoritmo divide and conquer. Considerado o mais rápido entre os outros algoritmos SVD (função lapack GESDD).

    SingularValueDecompositionQR

    Singular Value Decomposition, algoritmo QR. Considerado o algoritmo clássico de SVD (função lapack GESVD).

    SingularValueDecompositionQRPivot

    Singular Value Decomposition, algoritmo QR com pivotamento (função lapack GESVDQ).

    SingularValueDecompositionBisect

    Singular Value Decomposition, algoritmo bissecção (função lapack GESVDX).

    SingularValueDecompositionJacobiHigh

    Singular Value Decomposition, algoritmo Jacobi de alto nível (função lapack GEJSV).

    SingularValueDecompositionJacobiLow

    Singular Value Decomposition, algoritmo Jacobi de baixo nível (função lapack GESVJ). Em alguns casos, calcula valores singulares pequenos e seus vetores singulares com muito mais precisão do que outros subprogramas SVD.

    SingularValueDecompositionBidiagDC

    Singular Value Decomposition, algoritmo divide and conquer para matriz bidiagonal (função lapack BDSDC).

    SingularValueDecompositionBidiagBisect

    Singular Value Decomposition, algoritmo bissecção para matrizes bidiagonais (função lapack BDSVDX).

    EigenSolver

    Cálculo de valores próprios e vetores próprios de uma matriz quadrada comum usando o algoritmo clássico (função lapack GEEV).

    EigenSymmetricDC

    Cálculo de valores próprios e vetores próprios de uma matriz simétrica ou hermitiana (complexo-conjugada) usando o algoritmo divide and conquer (funções lapack SYEVD, HEEVD).

    SingularSpectrumAnalysisSpectrum

    Método-função para calcular as contribuições relativas dos componentes espectrais com base nos valores próprios.

    SingularSpectrumAnalysisForecast

    Função-método para cálculo de dados reconstruídos e previstos usando componentes espectrais da série temporal de entrada.

    SingularSpectrumAnalysisReconstructComponents

    Função-método para cálculo das componentes reconstruídas da série temporal de entrada e suas contribuições.

    SingularSpectrumAnalysisReconstructSeries

    Função-método para cálculo da série temporal reconstruída usando as primeiras component_count componentes.

  2. Corrigidos erros ao executar versões antigas de arquivos executáveis de programas MQL5 (.ex5), nos quais são usados os métodos matrix::CopyRates. Esses erros não ocorriam em arquivos compilados após a instalação das atualizações necessárias.
  3. Corrigida a verificação de tipos de objetos permitidos em union.

MetaTester

  1. Corrigidas falhas que ocorriam em alguns casos durante a desinicialização de indicadores personalizados.


    4 outubro 2024
    MetaTrader 5 Platform build 4585: melhorias no funcionamento


    Terminal

    • Corrigidos os travamentos que ocorriam em alguns casos ao interromper a perfilagem de programas MQL5.

    MetaEditor

    MetaTester

    • Сorrigidos os travamentos que ocorriam em alguns casos ao reiniciar um único passe de teste.
    27 setembro 2024
    Nova versão da plataforma MetaTrader 5 build 4570: melhorias na versão web e integração com OpenBLAS no MQL5

    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.

    21 junho 2024
    MetaTrader 5 build 4410: melhorias no desempenho
    MetaTrader 5 build 4410: melhorias no desempenho

    Terminal

    1. Corrigida a falha do terminal que ocorria em alguns casos durante a inicialização dos testes.

    MQL5

    1. Corrigido o funcionamento da propriedade MQL_PROGRAM_NAME para programas de serviço. Anteriormente, ela podia retornar um nome incorreto da instância do serviço.

    Terminal Web

    1. Corrigida a verificação de compatibilidade do navegador com o web terminal. Em alguns casos, os usuários podiam receber uma mensagem de erro informando que seu navegador não era suportado.
    2. Corrigida a abertura de contas demo.
    3. Pequenas correções e melhorias.

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

    MetaTrader 5 Android

    1. Interface totalmente renovada para a versão do aplicativo para tablets. Agora, utiliza um design moderno, já testado nas versões para iOS e web da plataforma. As seções principais agora estão localizadas na parte inferior da tela, e os comandos para trabalhar com gráficos, na parte esquerda.




    2. Adicionado menu contextual na seção de histórico de posições, permitindo acesso rápido ao diálogo de negociação ou ao gráfico do símbolo correspondente.
    3. Ocultado o comando de acesso ao diálogo de negociação para símbolos não negociáveis.
    4. Corrigido o funcionamento com o servidor MetaQuotes-Demo.

    Atualize seus aplicativos móveis para o build 4360 através do Google Play, Huawei AppGallery ou baixe o arquivo APK.



    7 junho 2024
    MetaTrader 5 build 4380: melhorias no desempenho

    Terminal

    1. Correção de bugs que, em alguns casos, causavam mau funcionamento do sistema Live Update.
    2. Adicionada a tecla de atalho Alt+X para chamar a lista de experts.
    3. Correções de crash logs.

    MetaTester

    1. Correção de erros na definição de algumas propriedades do objeto gráfico "Imagem".
    2. É proibido conectar agentes de teste à MQL5 Cloud Network quando estiver trabalhando em ambientes virtuais e quando o processador não for compatível com o conjunto de instruções AVX.

    Terminal Web

    1. Foi corrigido um erro no painel Quick Trade no gráfico.
    2. Corrigida a caixa de diálogo de aviso que se abre quando o painel Quick Trade é ativado em um gráfico.
    31 maio 2024
    MetaTrader 5 build 4350: mais objetos analíticos na plataforma web e página inicial no MetaEditor

    MetaEditor

    1. Adicionada uma página inicial, que ajudará você a começar sua jornada no trading algorítmico e no desenvolvimento de aplicativos de trading.



      Materiais para iniciantes
      A seção "Introdução" fornece detalhes sobre os materiais de aprendizado disponíveis no MQL5.com: documentação completa da linguagem, livros, artigos, fórum de desenvolvedores, além de uma biblioteca de códigos prontos. Aqui você também conhecerá os serviços onde pode aplicar e monetizar seus conhecimentos: mercado de aplicativos, plataforma de freelancers e sinais de trading.

      Nas seções de documentação e livros, você encontrará uma descrição mais detalhada dos materiais de aprendizado disponíveis.

      Recursos úteis para quem já desenvolve
      Na seção "Novidades", reunimos o máximo de informações necessárias para o desenvolvedor se manter atualizado:


      Aqui também há uma lista dos últimos arquivos abertos para acesso rápido.



      Se você já está ativamente vendendo seus aplicativos no Market, o relatório "Minhas vendas" ajuda a avaliar seu desempenho. Estão disponíveis para você:

      • Estatísticas gerais de vendas e downloads ao longo do tempo.
      • Geografia das vendas, para entender onde suas criações são mais populares. Isso pode sugerir ideias para o desenvolvimento futuro do projeto, como localização para determinados idiomas ou lançamento de campanhas publicitárias em regiões específicas.
      • Dados sobre os produtos mais populares em termos de quantidade de vendas e receita total. O gráfico pode ser filtrado pelo tipo de licença: completa ou aluguel por um período específico. Também há um gráfico mostrando a variação de preço do produto. Tudo isso ajuda a entender melhor seus clientes.
      • Estatísticas detalhadas de downloads e vendas para cada produto.


    2. Melhoramos a busca integrada. Agora, a barra de pesquisa superior é usada apenas para procurar texto no documento atual ou em arquivos locais. Para pesquisa global em materiais de aprendizagem e códigos, use a seção separada em "Ferramentas".


    3. Para o AI Assistant, adicionamos suporte ao GPT-4 — o mais recente modelo do ChatGPT. Agora você pode usá-lo para autocompletar código e obter sugestões. Escolha o novo modelo nas configurações do MetaEditor.


    4. Atualizamos as traduções da interface do usuário.

    Terminal

    1. Aumentamos a precisão da exibição do preço calculado na especificação do instrumento de negociação.
    2. Corrigimos o cálculo dos indicadores MFE e MAE no relatório de negociação.
    3. Corrigimos a salvaguarda e restauração das configurações de filtragem do calendário econômico por país e moeda.
    4. Corrigimos a aplicação de templates aos gráficos. Agora, se a exibição do histórico de negociação estiver ativada no gráfico, os objetos correspondentes não desaparecerão após a aplicação do template.
    5. Corrigimos um erro na tabela de opções. Em alguns casos, ao adicionar símbolos, a plataforma poderia travar.
    6. Corrigimos um erro no diálogo de edição de posições. Em alguns casos, valores incorretos de Stop Loss e Take Profit poderiam ser inseridos nos campos correspondentes.
    7. Atualizamos as traduções da interface do usuário.

    MQL5

    1. Otimizamos e aceleramos significativamente a função ArrayResize. Em alguns casos, o desempenho pode ser até 40% mais rápido.
    2. Atualizamos o suporte para ONNX.
    3. Corrigimos a chamada da função MessageBox em programas-serviços. Independentemente do botão que o usuário clicava no diálogo, a função retornava um valor nulo.
    4. Corrigimos um erro que, em alguns casos, levava à inicialização incompleta dos programas MQL5.
    5. Corrigimos um erro de análise de alguns macros. O erro ocorria ao usar um grande número de constantes.


    MetaTrader 5 Web Terminal

    1. Ampliamos o conjunto de objetos analíticos disponíveis. Agora você pode usar a "régua" para medir tempo e preços, figuras (retângulo, elipse, triângulo, círculo), além de adicionar qualquer anotação ao gráfico. Todos os objetos estão disponíveis no painel esquerdo:


    2. Adicionada a possibilidade de renomear objetos.
    3. Melhoramos a integração com o calendário econômico. Otimizamos e aceleramos a solicitação de dados.
    4. Aceleramos a performance dos gráficos.
    5. Acelerados o início do aplicativo e a conexão à conta de negociação.
    6. Corrigida a configuração que controla a exibição de operações de negociação no gráfico.
    7. Corrigimos a exibição dos requisitos de margem na especificação do contrato.
    8. Corrigimos a exibição do estado da conta na seção de histórico. O problema ocorria em dispositivos com tela estreita.
    9. Corrigimos a exibição do livro de ofertas.
    22 março 2024
    MetaTrader 5 build 4260: melhorias gerais

    Terminal

    1. Corrigido um erro de assinatura de produtos gratuitos no serviço "Assinaturas". Em alguns casos, o botão correspondente pode estar ausente na caixa de diálogo.
    2. Atualizações nas traduções da interface do usuário.

    MQL5

    1. Expandido o suporte para eventos de teclado:

      • Adicionado o evento CHARTEVENT_KEYUP para o manipulador OnChartEvent. Ele permite monitorar quando um usuário solta uma tecla no teclado.
      • Adicionado o tratamento de teclas "Mortas" (Dead keys), que são teclas que permitem alterar a aparência do próximo caractere a ser inserido. Por exemplo, no layout grego, para colocar acentos em vogais ά, έ, ύ, etc., é necessário pressionar a tecla ";", e então digitar a letra. Agora, o pressionamento dessas teclas pode ser monitorado usando a função TranslateKey.
      • As funções TranslateKey e TerminalInfoInteger foram melhoradas. Agora, ao receber eventos CHARTEVENT_KEYUP ou CHARTEVENT_KEYDOWN no OnChartEvent, você pode obter o estado completo do teclado no momento do evento. Por exemplo, se um usuário pressionou a tecla Z, você poderá saber se a tecla Ctrl ou Shift foi pressionada naquele momento. Para outros eventos, as funções funcionarão como antes, retornando o estado do teclado no momento atual.

    2. Atualizada biblioteca Alglib. Devido à atualização, os seguintes métodos nas classes CMatrixDouble e CMatrixComplex foram alterados:
      vector<double/complex> operator[](const int i) const;
      vector<double/complex> operator[](const ulong i) const;
      Agora, em vez deles, é usado um método com um valor de retorno constante:
      const vector<double/complex> operator[](const ulong i) const;
      A correção permitirá capturar o uso incorreto do resultado no na nova versão do Alglib, o código mat[row][col]=x funciona de forma diferente do antigo. Antes, era uma escrita na matriz, e agora - escrita em um objeto vector<double/complex> temporário, que é destruído imediatamente após a escrita.

      Adicionar const ao valor de retorno torna impossível usar a gravação mat[row][col]=x. Como mat[row] agora retorna um vetor constante, tentar reescrever seu elemento através de mat[row][col] levará a um erro de compilação.

    3. Corrigido um erro que, em alguns casos, poderia levar a um funcionamento incorreto das funções ChartGet*.

    MetaEditor

    1. Adicionada pesquisa pelo livro "Redes Neurais e Algotrading no MQL5". Agora, ele está unificado em uma seção com o livro anteriormente lançado "Programação em MQL5 para Traders".



    Tester

    1. Corrigida a otimização em um grande número de agentes remotos. Em alguns casos, o erro poderia levar a uma carga excessiva no CPU.


    MetaTrader 5 Web Terminal

    1. Corrigida a emissão de ordens limitadas para instrumentos com execução a mercado. Agora, ao alterar o preço de uma ordem limitada em relação ao atual (mais alto ou mais baixo), o tipo de ordem proposto não mudará de Buy Limit para Sell Limit e vice-versa, como acontece para instrumentos de outros tipos. Assim, o usuário poderá, se necessário, emitir ordens Buy Limit acima do mercado e Sell Limit abaixo do mercado, para garantir limitação de preço na transação.
    2. Corrigida a exibição de contadores de símbolos selecionados na "Observação do Mercado".
    7 março 2024
    MetaTrader 5 build 4230: mais aplicativos embutidos e expansão do suporte ONNX

    Terminal

    1. Adicionados 28 novos EAs e 12 novos indicadores ao pacote padrão da plataforma. Os aplicativos estão disponíveis nas seções "Advisors\Free Robots" e "Indicators\Free Indicators" no Navegador. Para cada um deles, o código fonte está disponível com comentários detalhados, o que ajudará você a estudar a linguagem MQL5.

      Nos robôs, foram implementadas estratégias de negociação baseadas em indicadores técnicos e padrões de velas, como 3 Black Crows – 3 White Soldiers, Bullish Engulfing – Bearish Engulfing, Bullish Harami – Bearish Harami e outros. Os novos indicadores são a implementação de canais populares: Camarilla, DeMark, Donchian, Fibonacci, Keltner e outros.



    2. Estão em andamento preparativos para lançar assinaturas de dados de mercado Nasdaq. Diretamente da plataforma, os traders poderão acessar cotações em tempo real e um histórico de preços profundo de centenas de instrumentos financeiros de uma das maiores bolsas. Para isso, é necessário apenas uma conta demo no servidor MetaQuotes-Demo e uma conta MQL5.community.



      Ao assinar, basta adicionar os instrumentos relevantes à "Observação do Mercado" e começar a trabalhar. Você poderá abrir gráficos, analisá-los com qualquer objeto e indicador, bem como usar os dados para testar estratégias de negociação no testador. O acesso a todas as informações é feito de maneira padrão, como para os instrumentos financeiros comuns com os quais você trabalha com a corretora.

    3. A seção de margem na especificação do instrumento foi aprimorada. Agora ela mostra tanto os coeficientes de margem para cada tipo de instrumento quanto os valores finais de margem calculados.



      Também foram corrigidos erros na exibição da margem para alguns tipos de instrumentos.

    4. Adicionado um link para o canal do Telegram MQL5 no menu "Ajuda". No canal, são publicados regularmente materiais interessantes para desenvolvedores: revisões de novos artigos sobre programação e robôs e indicadores gratuitos da biblioteca de códigos CodeBase. Inscreva-se no canal para não perder informações importantes.



    5. Adicionado suporte para o parâmetro ShutdownTerminal na seção [StartUp] dos arquivos de configuração personalizados. Use este parâmetro para iniciar a plataforma e executar tarefas únicas por meio de scripts. Por exemplo, você tem um script que tira um screenshot do gráfico. Você cria um arquivo de configuração que inicia este script junto com a plataforma. Se adicionar a ele ShutdownTerminal com o valor "Yes", a plataforma será automaticamente desligada logo após a conclusão do script.
    6. Reforçada a segurança dos protocolos de rede e produtos no Mercado.
    7. o suporte ao serviço de "Sinais" foi desativado para contas demo. Para obter estatísticas avançadas sobre suas contas de treinamento, use o novo relatório de negociação. Ele fornece uma série de indicadores sobre a rentabilidade e o risco da sua estratégia, contém gráficos de crescimento, balanço e patrimônio líquido, diagramas de distribuição de operações por direção e instrumentos, e muito mais.
    8. Corrigida a exibição de links para contratos de corretagem no menu "Ajuda".
    9. Melhorada a seleção do melhor servidor ao alugar um VPS.
    10. Corrigida a atualização da página de assinaturas ao alternar entre seções no Navegador.
    11. Corrigida a atualização da lista de contratos ao abrir uma conta preliminar.
    12. Atualizadas as traduções da interface do usuário.

    MQL5

    1. Adicionada a propriedade MQL_STARTED_FROM_CONFIG à enumeração ENUM_MQL_INFO_INTEGER. Retorna verdadeiro se o script/expert foi iniciado na seção StartUp do arquivo de configuração. Isso significa que este script/expert foi escrito no arquivo de configuração com o qual o terminal foi iniciado.
    2. Continua o trabalho de expansão do suporte para modelos ONNX.

      As tarefas de aprendizado de máquina nem sempre exigem maior precisão computacional. Para acelerar os cálculos, alguns modelos usam tipos de dados com menor precisão, como Float16 e até mesmo Float8. Para que os usuários possam fornecer esses dados como entrada para os modelos, as seguintes funções foram adicionadas ao MQL5:
      bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt);
      bool ArrayToFP16(ushort &dst_array[],const double &src_array[],ENUM_FLOAT16_FORMAT fmt);
      bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt);
      bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt);
      
      bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
      bool ArrayFromFP16(double &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
      bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
      bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
      Como os formatos de números reais para 16 e 8 bits podem variar, no parâmetro fmt nas funções de conversão é necessário especificar qual formato de número precisa ser processado. Para versões de 16 bits, é utilizada a nova enumeração NUM_FLOAT16_FORMAT, que atualmente possui os seguintes valores:

      • FLOAT_FP16 — formato padrão de 16 bits, também conhecido como half.
      • FLOAT_BFP16 — formato especial brain float point.

      Para versões de 8 bits, é utilizada a nova enumeração ENUM_FLOAT8_FORMAT, que atualmente possui os seguintes valores:

      • FLOAT_FP8_E4M3FN — número de ponto flutuante de 8 bits, 4 bits para o expoente e 3 bits para a mantissa. Geralmente usado como coeficientes.
      • FLOAT_FP8_E4M3FNUZ — número de ponto flutuante de 8 bits, 4 bits de expoente e 3 bits de mantissa. Suporta NaN, não suporta zero negativo e Inf. Geralmente usado como coeficientes.
      • FLOAT_FP8_E5M2FN — número de ponto flutuante de 8 bits, 5 bits de expoente e 2 bits de mantissa. Suporta NaN e Inf. Geralmente usado para gradientes.
      • FLOAT_FP8_E5M2FNUZ — número de ponto flutuante de 8 bits, 5 bits de expoente e 2 bits de mantissa. Suporta NaN e Inf, não suporta zero negativo. Também usado para gradientes.


    3. Adicionados novos métodos de matrizes e vetores usados em aprendizado de máquina:

      • PrecisionRecall — calcula valores para a construção da curva precision-recall. Este método, assim como o método ClassificationScore, é aplicado a um vetor de valores verdadeiros
      • ReceiverOperatingCharacteristic — calcula valores para a construção da curva Receiver Operating Characteristic (ROC). Este método, assim como o método ClassificationScore, é aplicado a um vetor de valores verdadeiros.

    4. ONNX Runtime atualizado para a versão 1.17. Detalhes do lançamento estão disponíveis no GitHub.
    5. pacote de integração com Python atualizado para a versão 5.0.4200, adicionado suporte para Python 3.12. Atualize seu pacote com o comando "pip install --upgrade MetaTrader5" para obter as últimas mudanças.
    6. Corrigido o funcionamento da função OrderCalcMargin para alguns casos.
    7. Adicionado o valor DEAL_REASON_CORPORATE_ACTION à enumeração ENUM_DEAL_REASON - operação realizada como resultado de uma ação corporativa: fusão ou renomeação de um título, transferência de um cliente para outra conta, etc.
    8. Adicionado suporte para comparação de vetores e matrizes complexos para o método Compare. A comparação envolve estimar a distância entre números complexos. A distância é calculada usando a seguinte fórmula sqrt(pow(r1-r2, 2) + pow(i1-i2, 2)) e é um número real que já pode ser comparado com épsilon.
    9. Corrigida a conversão de variáveis ​​de tipo de cor para texto no formato RGB.
    10. Corrigido o retorno do resultado da obtenção de autovetores no método Eig no caso de autovalor complexo. Adicionada sobrecarga de método para soluções complexas.

    MetaEditor

    1. Adicionado um link para o recém-publicado livro "Programação no MQL5 para traders" no menu Ajuda\MQL5.community. O livro também foi adicionado ao sistema de busca, permitindo que você encontre materiais necessários diretamente do MetaEditor:




    2. O recurso de busca embutido foi aprimorado:

      • A seção de resultados de busca na janela "Ferramentas" foi dividida em duas abas: "Busca" — para resultados de busca online (documentação, artigos, livro, etc.), "Busca em arquivos" — para resultados locais.
      • Na seção de resultados, foi adicionada uma linha de busca separada. Você pode usá-la em vez da linha de busca na barra de ferramentas principal do MetaEditor.

    3. Adicionado suporte aos modos AVX, AVX2 e AVX512 na compilação de programas a partir da linha de comando. Para isso, adicione um dos seguintes parâmetros ao comando: /avx, /avx2 ou /avx512.
    4. O motor SQLite para trabalhar com bancos de dados foi atualizado para a versão 3.45.
    5. Suporte ao Internet Explorer foi descontinuado. Agora, para a exibição de páginas HTML, é utilizado apenas Microsoft Edge WebView2. Comparado com o obsoleto MSHTML, o novo componente expande significativamente as capacidades de exibição de conteúdo web, fornecendo acesso a tecnologias modernas. A transição para o WebView2 permitirá melhorar a aparência de algumas seções do MetaEditor, aumentar sua performance, criar interfaces mais responsivas.
    6. Corrigido um travamento que ocorria em casos raros durante o preenchimento automático de funções.
    7. Corrigido um travamento que ocorria em casos raros durante o preenchimento automático de funções.

    Testador

    1. Corrigido o cálculo do swap triplo caso o dia de início do teste caia no dia do swap triplo.

    Correções de acordo com os logs de erro.

    MetaTrader 5 Web Terminal

    A exibição dos requisitos de margem na especificação do contrato foi melhorada. Agora, além dos coeficientes e parâmetros iniciais para cálculo, é exibido o valor da margem final. Se o valor da margem depender do volume da posição, os níveis correspondentes serão mostrados na caixa de diálogo.



    A margem é calculada considerando o preço do instrumento no momento da abertura da janela de especificação e não muda em tempo real. Por isso, os valores devem ser considerados como aproximados. Para recalcular os valores com base nos preços atuais, reabra a especificação do instrumento.
    18 janeiro 2024
    MetaTrader 5 build 4150: exportação de relatórios de negociação e novos métodos de aprendizado de máquina em MQL5

    Terminal

    1. Adicionada exportação de relatório de negociação para arquivo HTML e PDF. Agora você pode compartilhar facilmente seu performance de negociação com colegas ou investidores. Para exportar, use o menu no próprio relatório ou o menu Arquivo.




    2. Adicionada a capacidade de salvar o estado atual da janela Observação do Mercado em um arquivo CSV. Para fazer isso, clique em “Exportar” no menu de contexto. O arquivo armazenará os valores dos indicadores selecionados no momento da exportação. Para carregue mais dados, ative colunas adicionais por meio do menu de contexto.




    3. Aprimorada exibição dos requisitos de margem nas especificações do contrato. Agora, em vez de coeficientes e parâmetros iniciais para cálculo, é exibido o valor da margem final. Se o valor da margem depender do volume da posição, a caixa de diálogo mostrará os níveis correspondentes.



      A margem é calculada levando em consideração o preço do instrumento no momento da abertura da janela de especificação e não muda em tempo real. Dessa forma, os valores devem ser tomados apenas como indicativos. Para recalcular os valores a preços atuais, reabra a especificação do instrumento.

    4. Desativado o suporte ao serviço "Sinais" para contas demo. Para obter estatísticas avançadas sobre suas contas de demonstração, use o novo relatório de negociação. Ele apresenta uma série de indicadores sobre a lucratividade e o risco de sua estratégia, além de conter gráficos de crescimento, saldo e patrimônio líquido, gráficos de distribuição de negociações por direção e instrumentos e muito mais.
    5. Corrigida a exibição de lucro/perda potencial ao editar Take Profit e Stop Loss para ordens Stop Limit.
    6. Inúmeras correções e melhorias no sistema de pagamentos.
    7. Corrigida a verificação de duplicatas ao carregar o conjunto de ferramentas na Observação do Mercado a partir de um arquivo *.set.
    8. Corrigido o instalador web do Paralles. Agora, a plataforma será instalada corretamente ao usar esse sistema de virtualização no macOS com processadores M1/M2/M3.
    9. Atualizadas traduções da interface do usuário.
    10. Correções de log de falhas.

    MQL5

    1. Adicionados novos métodos para trabalhar com matrizes e vetores. Eles são usados ​​​​em aprendizado de máquina.

      • ConfusionMatrix — calcula a matriz de erros. O método é aplicado a um vetor de valores previstos.
      • ConfusionMatrixMultilabel — calcula a matriz de erros para cada etiqueta. O método é aplicado a um vetor de valores previstos.
      • ClassificationMetric — calcula uma métrica de classificação para avaliar a qualidade dos dados previstos em relação aos dados reais. O método é aplicado ao vetor de valores previstos.
      • ClassificationScore — calcula uma métrica de classificação para avaliar a qualidade dos dados previstos em relação aos dados reais. O método é aplicado a um vetor de valores verdadeiros.
       
    2. Corrigido o salvamento de dados em um arquivo de texto UTF-8 usando a função FileWrite.
    3. Desativadas e feitas obsoletas as funções Signal*. Agora, elas retornarão conjuntos de sinais vazios.

    MetaEditor

    1. Aumentada a frequência de amostragem durante a criação de perfis. Agora, o estado do aplicativo é amostrado 10.000 vezes por segundo, o que permite medir a velocidade de execução da função com muito mais precisão.
    2. Atualizados os modelos disponíveis na ferramenta de auto-preenchimento de código AI Assistant. Adicionado modelo ChatGPT-4 Turbo, removidas implementações desatualizadas.
    3. Corrigidos erros ao substituir palavras no fragmento de texto selecionado.

    Tester

    1. Corrigido o travamento do teste avançado. O problema podia ocorrer no modo de otimização genética.
    2. Otimizado e significativamente acelerado o trabalho com o histórico de negociação dos programas MQL5.
    3. Corrigido o cálculo do lucro em transações de fechamento com oposta. O erro podia ocorrer para instrumentos de negociação que não são a principal ferramenta de teste.

    Terminal Web

    1. Corrigida atualização das propriedades dos instrumentos de negociação quando elas são alteradas por parte da corretora.
    2. Corrigida a exibição do corpo da vela no gráfico. O corpo podia não ser visível se fosse pequeno.
    3. Corrigido o funcionamento do campo “País” no formulário de abertura de conta.
    20 outubro 2023
    MetaTrader 5 build 4040: Melhorias e correções

    Terminal

    1. Melhorado o novo relatório de negociação. Corrigida a exibição do primeiro valor no gráfico de crescimento, bem como o cálculo da rebaixamento.



    2. Ao abrir uma conta, cada trader recebe várias mensagens por e-mail interno. Além dos dados de conexão, é possível encontrar muitas informações úteis sobre os recursos da plataforma e serviços integrados. Atualizamos e complementamos esses emails, traduzimos para 50 idiomas e renovamos completamente o design.
    3. Otimizadas as páginas de depósito e retirada de fundos da conta.
    4. Corrigido o erro de alteração de volume ao emitir uma nova ordem. Em algumas combinações de configurações do instrumento de negociação, o campo estava indisponível para edição.
    5. Corrigida a exibição de links para acordos com corretores no diálogo de abertura de uma conta demo.
    6. Atualizadas as traduções da interface do usuário.

    MQL5

    1. Corrigido um erro que, em alguns casos, levava à falha do programa MQL5 ao iniciar a plataforma.

    Terminal da Web MetaTrader 5

    1. Corrigida a exibição de Stop Loss e Take Profit no histórico de negociações.
    2. Expandida a saída no log. Agora, ele exibirá mensagens sobre conexões bem-sucedidas e malsucedidas.
    3. Corrigido o funcionamento do menu de contexto em "Observação do mercado".
    4. Corrigida a exibição de notificações sobre os resultados das operações ao negociar a partir do livro de ofertas.
    5. Corrigido um erro pelo qual a janela do indicador poderia ser removida do gráfico ao chamar o diálogo de negociação.
    6. Corrigido o arrasto de níveis de negociação no gráfico no caso de eles serem exibidos sobre objetos analíticos.
    29 setembro 2023
    MetaTrader 5 build 4000: Melhorias no relatório de negociação e no terminal da Web

    Terminal

    1. Agora, você pode visualizar o crescimento mensal em dinheiro no novo relatório de negociação. Para acessar essas informações, vá para o relatório "Summary" e selecione o modo "Balance".



    2. Aprimoramos e corrigimos a exibição do novo relatório de negociação.
    3. Atualizamos o ONNX Runtime para a versão 1.16. Os detalhes da versão estão disponíveis no GitHub.
    4. Também atualizamos as traduções da interface do usuário.

    MetaTrader 5 Web Terminal

    1. Corrigimos a exibição dos diálogos de alteração de senha e abertura de conta.
    2. Corrigimos um erro na exibição de Stop Loss e Take Profit no histórico, que ocorria após modificações.
    3. Adicionamos a capacidade de rolar na caixa de diálogo de alerta de riscos.
    4. também atualizamos as traduções da interface do usuário.
    5. Realizamos várias melhorias e correções.
    21 setembro 2023
    MetaTrader 5 build 3980: Melhorias e correções

    Terminal

    1. Aprimorado o novo relatório de negociação. Corrigida a exibição dos valores totais dos swaps, bem como o gráfico de lucros para os símbolos.
    2. Otimizadas as páginas de depósito e saque. Saiba mais sobre a nova integração da plataforma com sistemas de pagamento lendo nossa anterior notícia sobre o build 3950.
    3. Otimizado o recálculo de operações financeiras em toda a plataforma, incluindo o testador de estratégias. Os lucros, as margens e muitos outros parâmetros agora são calculados mais rapidamente.
    4. Atualizadas as traduções da interface do usuário.

    MQL5

    1. adicionados os métodos Conjugate para os tipos complex, vetor<complex> e matrix<complex>. Eles realizam a conjugação para números complexos.
      //+------------------------------------------------------------------+
      //| Script program start function                                    |
      //+------------------------------------------------------------------+
      void OnStart()
        {
         complex a=1+1i;
         complex b=a.Conjugate();
         Print(a, "  ", b);
         /*
         (1,1)  (1,-1)
         */
      
         vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
         vectorc vb=va.Conjugate();
         Print(va, "  ", vb);
         /*
         [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
         */
      
         matrixc ma(2, 3);
         ma.Row(va, 0);
         ma.Row(vb, 1);
         matrixc mb=ma.Conjugate();
         Print(ma);
         Print(mb);
         /*
         [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
          [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
      
         [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
          [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
         */
         
         ma=mb.Transpose().Conjugate();
         Print(ma);
         /*
         [[(0.1,0.1),(0.1,-0.1)]
          [(0.2,0.2),(0.2,-0.2)]
          [(0.3,0.3),(0.3,-0.3)]]
         */
        }
    2. Adicionado o processamento da saída do modelo ONNX do tipo Sequence of maps.

      Para modelos ONNX que fornecem sequências Map (ONNX_TYPE_SEQUENCE of ONNX_TYPE_MAP) na camada de saída, um array dinâmico ou fixo de estruturas deve ser passado como parâmetro de saída. Os dois primeiros campos dessa estrutura devem corresponder aos tipos de chave e valor de ONNX_TYPE_MAP e devem ser arrays fixos ou dinâmicos.

      Veja o modelo iris.onnx criado pelo seguinte script Python:
      from sys import argv
      data_path=argv[0]
      last_index=data_path.rfind("\\")+1
      data_path=data_path[0:last_index]
      
      from sklearn.datasets import load_iris
      iris_dataset = load_iris()
      from sklearn.model_selection import train_test_split
      X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
      from sklearn.neighbors import KNeighborsClassifier
      knn = KNeighborsClassifier(n_neighbors=1)
      knn.fit(X_train, y_train)
      
      #  Convert into ONNX format
      from skl2onnx import convert_sklearn
      from skl2onnx.common.data_types import FloatTensorType
      initial_type = [('float_input', FloatTensorType([None, 4]))]
      onx = convert_sklearn(knn, initial_types=initial_type)
      path = data_path+"iris.onnx"
      with open(path, "wb") as f:
          f.write(onx.SerializeToString())
      Abra o arquivo onnx criado no MetaEditor:

      Visualização do modelo ONNX no MetaEditor


      A saída "output_probability" é uma sequência Map, cuja chave tem o tipo INT64 (que corresponde ao tipo long da linguagem MQL5) e o valor do tipo float. Para obter dados dessa saída, declaramos a seguinte estrutura:
      struct MyMap
        {
         long              key[];
         float             value[];
        };
      Aqui usamos arrays dinâmicos com tipos apropriados. Nesse caso, é possível usar arrays fixos, já que para esse modelo o Map sempre contém 3 pares de chave+valor.

      Como uma sequência é retornada do Map, como parâmetro para aceitar os dados com a saída output_probability deve ser passada um array de tais estruturas - dinâmico ou fixo, com base nas propriedades do modelo específico. Por exemplo:
      //--- declaramos um array para receber dados da camada de saída output_probability
      MyMap output_probability[];
      
      ...
      
      //--- execução do modelo
      OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);

    MetaEditor

    1. Corrigida a exibição do tipo de parâmetro de saída no visualizador de modelos ONNX.

    MetaTrader 5 Web Terminal build 3980

    1. Adicionada a seção de contato da corretora ao menu principal.
    2. Adicionado o tratamento de erro de autorização com certificado SSL. Esse tipo de autorização não é compatível com o terminal da Web e, em vez disso, a autorização por senha de uso único pode ser ativada.
    3. Corrigido o link para download da versão desktop da plataforma no menu principal.
    4. Alterado o diálogo de gerenciamento de contas. Se a corretora não tiver contas de demonstração ou reais disponíveis, o item de menu correspondente ficará oculto.
    14 setembro 2023
    MetaTrader 5 build 3950: Retirada/depósito no terminal e relatório de negociação atualizado

    Terminal

    1. Adicionado suporte para operações de saldo, retirada e reposição de saldo da conta de negociação diretamente no terminal do cliente.

      Adicionamos a integração dos sistemas de pagamento mais populares diretamente na plataforma MetaTrader 5, o que permite às corretoras fornecer aos traders um novo nível de serviço. Ao depositar ou recarregar, basta selecionar o método que melhor se adapta a você e realizar a transação. Para maior comodidade, os traders podem salvar os cartões selecionados para que não precisem inserir os detalhes do cartão todas as vezes. Ao mesmo tempo, a corretora não armazena detalhes de pagamento e números de cartão. Todos os dados inseridos pelo usuário durante o pagamento são enviados através de canais seguros para verificação pelo sistema de pagamento que você escolheu para efetuar o pagamento.

      A nova funcionalidade oferece aos traders a oportunidade de gerenciar fundos com um clique, sem sair do terminal do cliente.



    2. O relatório do histórico de negociação foi reformulado e completamente atualizado - agora é mais visual. Revisamos a abordagem de apresentação de informações e traduzimos relatórios estatísticos áridos em gráficos e tabelas interativos. O trabalho ainda está em andamento, mas agora você pode avaliar as mudanças.

      Para visualizar estatísticas de negociação, clique em “Relatórios” no menu “Visualizar”.




      O relatório está dividido em quatro guias, cada uma contendo informações agregadas em seu próprio contexto:

      • Summary — visão geral das suas atividades ao longo do tempo: dados da conta, indicadores gerais de lucro e perda, montante de depósitos e retiradas, gráficos de saldo, crescimento e dividendos, bem como outros dados.
      • Profit/Loss — informações históricas sobre negociações lucrativas e não lucrativas. Dividido por tipos de negociação (manual, cópia e negociação algorítmica), pode ser analisado por negociações individuais, proporções percentuais ou valores monetários por dias, meses e anos.
      • Long/Short — relatório sobre ordens de compra e venda em intervalos de tempo específicos.
      • Symbols — análise detalhada de negociações em instrumentos financeiros. Aqui você verá com quais símbolos você ganha ou perde, com que frequência você negocia com eles, gráficos de negociações e volumes de dinheiro neles.


      Novos relatórios permitem avaliar visualmente vários aspectos dos resultados de negociação, simplesmente clicando nas guias. Os histogramas, gráficos e tabelas são interativos e apresentam informações adicionais ao passar o cursor do mouse sobre eles. Nossos designers trabalharam arduamente para garantir que as informações dos relatórios fossem lidas da maneira mais simples e clara possível. Experimente você mesmo e avalie o resultado!

    3. Adicionado o uso de instruções AVX2 nos casos em que elas são suportadas pelo processador. Isso permitirá o uso mais eficiente dos recursos do processador no qual o terminal está sendo executado. Agora, ao instalar ou atualizar, o próprio terminal detectará a arquitetura do processador e instalará a versão ideal para ele. Quando iniciado, o terminal grava uma mensagem (AVX/AVX2) no log, que mostra para qual conjunto de instruções o terminal foi desenvolvido.
      Terminal	MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
      Terminal	Windows 10 build 19045, 20 x Intel Xeon  E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
      

      Advanced Vector Extensions (AVX) é uma extensão do conjunto de instruções x86 para microprocessadores Intel e AMD, proposta em 2008. O desenvolvimento adicional levou ao aparecimento do AVX2 e AVX-512 (2013).

    4. Além de duas versões dos terminais MetaTrader 5 em X64 e AVX, lançamos uma terceira versão do terminal desktop, compilada com suporte direto para comandos AVX2. Ao mesmo tempo, os modelos ONNX agora também podem funcionar com suporte para comandos AVX2.
    5. Adicionada exibição de links para os documentos regulatórios necessários da corretora. Agora você pode obter todas as informações legais necessárias da corretora diretamente no terminal do cliente no menu Ajuda/Termos e Condições.



    6. Corrigida a autorização 2FA quando é usada a autenticação de autorização estendida opcional.
    7. Corrigida a exibição de mensagens de correio interno ao trabalhar no MacOS.
    8. Corrigida a exibição da janela Sinais ao executar no Wine.
    9. Lançados novos instaladores para terminais MT4/MT5 para Linux.
    10. Adicionados comandos ao menu Ajuda para ir para as páginas de download das versões Linux e Mac do terminal. Para a conveniência dos traders, criamos uma seção especial do site, onde é possível encontrar variantes do terminal de negociação para todas as plataformas e para negociação no navegador.



    11. Corrigida inserção de fotos em e-mails internos.
    12. Lançados novos instaladores do MetaTrader 5 para Mac com suporte para processadores M1/M2. Devido à transição para o Wine 8.0.1, é altamente recomendável desinstalar as versões antigas e instalar as novas. Ao usar versões antigas do Wine < 8.0.0, uma mensagem sobre a necessidade de atualização é exibida no registro do terminal.
    13. Adicionada a exibição "VPS Hosting Speed Up" no menu de verificação de rede com ping para seu servidor de negociação. Isso permitirá que você veja claramente como a latência da sua rede será reduzida ao alugar um VPS incorporado.




    14. Reforçados as exigências de complexidade mínima da senha, nomeadamenter

      • comprimento da senha — pelo menos 8 caracteres
      • a senha deve conter pelo menos 1 caractere em maiúsculas e minúsculas, pelo menos 1 dígito e pelo menos 1 caractere especial.

    15. Links clicáveis nos registros do terminal. Agora, ao clicar duas vezes em linhas com links https, ocorre uma transição para o navegador com abertura de links.
    16. Corrigida a pesquisa de instrumentos de negociação na Observação do mercado. Agora o símbolo é pesquisado primeiro pelo nome e depois por outros campos: descrição, ISIN, etc.
    17. Corrigida a contabilização do lucro nas negociações ao calcular o saldo nos relatórios sobre o histórico de negociações da conta. Em alguns casos, o cálculo não levava em conta o tipo de instrumento.

    VPS Hosting

    1. Você pode enviar e executar programas EX5 compilados para o conjunto de comandos x64/AVX/AVX2. Os programas em AVX512 não são compatíveis com o VPS incorporado.
    2. O número de locais para aluguel de VPS incorporado foi aumentado para 27. Agora, a escolha do servidor mais próximo é ainda mais ampla.

    MQL5

    1. Adicionado o gerenciamento de configurações de compilação, incluindo a seleção de conjuntos de instruções de processadores estendidos — AVX, AVX2, AVX512, FMA3.

      Os processadores modernos têm um conjunto de instruções estendidas que aceleram significativamente os cálculos matemáticos, mas a grande maioria dos programas modernos não usa esses recursos. Adicionamos suporte a essas instruções ao compilador MQL5, o que permite gerar códigos mais eficientes e mais rápidos.

      Também adicionamos a possibilidade de escolher com que tipo de instruções você deseja compilar seu programa MQL5. Você pode especificar configurações gerais para programas individuais nas Configurações do MetaEditor e configurações pessoais para projetos:



    2. Adicionadas as enumerações ENUM_AVERAGE_MODE e ENUM_CLASSIFICATION_METRIC aos métodos matriciais e vetoriais.
    3. Adicionado método Set para vetores.
    4. Reformulada a inicialização do OpenCL - agora ele é inicializado no primeiro uso real, em vez de no carregamento de um programa MQL5 contendo funções OpenCL.
    5. Corrigido erro ao chamar a função SocketIsConnected.
    6. Corrigido atraso na chamada do método OnDeinit ao descarregar indicadores personalizados.
    7. Corrigido um erro do compilador que causava o cálculo incorreto do comprimento da linha na propriedade indicator_label, o que resultava na exibição incorreta de dicas de ferramentas para objetos gráficos.
    8. Corrigido o uso de comentários multilinhas no corpo da macro. Esse é um exemplo de macro onde ocorria o erro:
      #define MACRO1 /*
      #define MACRO2 */
      void OnStart()
      {
      #ifdef MACRO2
          Print( 2 );
      #else
          Print( 1 );
      #endif
      }
    9. Corrigida a ordem dos parâmetros da função MathAtan2. A ordem agora corresponde à mesma função em C++.
    10. Adicionado o novo valor TERMINAL_CPU_ARCHITECTURE à enumeração ENUM_TERMINAL_INFO_STRING. adicionada também a macro __CPU_ARCHITECTURE__ que obtém a arquitetura da CPU do computador no qual o terminal está sendo executado. Exemplo de uso:
      void OnStart()
        {
         Print("CPU name:         ",TerminalInfoString(TERMINAL_CPU_NAME));
         Print("CPU cores:        ",TerminalInfoInteger(TERMINAL_CPU_CORES));
         Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE));  
         Print("");
         Print("EX5 architecture: ",__CPU_ARCHITECTURE__);                            
        }
      
      CPU name:         12th Gen Intel Core i9-12900K
      CPU cores:        24
      CPU architecture: AVX2 + FMA3
      
      EX5 architecture: AVX

    11. Alterado o comportamento do modificador extern. Agora, uma declaração de variável com o modificador extern é uma declaração de variável.

      Novas restrições:
      1. Não deve haver inicialização em uma variável predefinida. Por exemplo, ao compilar o código a seguir, obtemos o erro "X - extern variable initialization is not allowed":
        extern int X=0;
        
        void OnStart()
          {
          }

      2. A variável extern deve ser declarada no programa sem a palavra-chave extern. Por exemplo, ao compilar o código a seguir, obtemos o erro "unresolved extern variable X":
        extern int X;
        
        void OnStart()
          {
          }

      3. Ao usar extern, é importante prestar atenção na ordem de inicialização, pois uma variável pode ser acessada antes de ser inicializada. Por exemplo, o código a seguir imprimirá "Y=0 X=5" porque a inicialização da variável Y ocorre antes da inicialização da variável X:
        extern int X;
        int        Y=X;
        
        void OnStart(void)
          {
           Print("Y=",Y," X=",X);
          }
          
        int X=_Digits;

    MetaEditor

    1. Adicionado o uso de instruções AVX2 nos casos em que elas são suportadas pelo processador.
    2. Exibição aprimorada de variáveis ​​locais durante a depuração.
    3. Corrigido um bug podia causar congelamento durante a compilação

    Tester

    1. adicionado o uso de instruções AVX2 quando suportadas pelo processador.

    Traduções atualizadas da interface do usuário.

    Correções de registros de falhas.


    MetaTrader 5 Web Terminal build 3950

    1. Adicionada exibição do preço Ask às configurações do gráfico.



    2. Acelerado o carregamento inicial do terminal.
    3. Adicionada a capacidade de alterar a senha.
    4. Adicionada a capacidade de excluir e salvar a senha.
    5. Adicionado período personalizado para exibir o histórico de negociação.
    6. Corrigido um bug ao forçar uma alteração de senha.
    7. Corrigido o cálculo do diff - a distância entre o preço de abertura e os níveis TP/SL.



    8. Corrigido um erro de travamento dos ticks ao fechar todas as ordens/operações.
    9. Corrigida a exibição dos eventos do Calendário Econômico – eles podiam não ser exibidos no gráfico, apesar da opção estar habilitada.
    10. Corrigido bug onde os indicadores eram redefinidos ao alterar um símbolo no gráfico.
    11. Corrigido bug no formulário de abertura de conta real ao confirmar seu telefone/e-mail.
    12. Adicionadas e corrigidas traduções.
    8 junho 2023
    MetaTrader 5 build 3800: ordens Book or Cancel, assistência de IA ao escrever código e suporte aprimorado para ONNX

    Terminal

    1. Adicionado suporte para nova política de execução de ordens — Passiva / Book or Cancel (BOC).



      A política BOC significa que a ordem só pode ser colocada no livro de ofertas. Se a ordem puder ser executada imediatamente ao ser colocada, ela será retirada. Na verdade, com essa política, é garantido que o preço da ordem colocada será pior que o mercado atual. O BOC é usado para implementar negociações passivas, de modo que a ordem não será garantidamente executada imediatamente após ser colocada e não afetará a liquidez atual. É suportado apenas para ordens limitadas e stop-limitadas e apenas no modo de execução a mercado.

      A disponibilidade da nova política de execução para instrumentos depende do sua corretora.

    2. A plataforma passa a utilizar o componente Microsoft Edge WebView2 para exibir páginas HTML.

      Em comparação com o MSHTML desatualizado, o novo componente expande significativamente as possibilidades para exibir conteúdo web, oferecendo acesso a tecnologias modernas. A mudança para o WebView2 permitirá melhorar a aparência de algumas seções da plataforma, aumentar seu desempenho, criar interfaces mais responsivas. Em particular, isso afetará as seções "Mercado", "Sinais" e "VPS".
      O suporte completo ao WebView2 está disponível apenas no Windows 10. Recomendamos fortemente que todos os usuários migrem para as versões mais recentes do sistema operacional, se possível. Ao trabalhar com o Windows 7 e o Wine, a plataforma continuará a usar o componente MSHTML desatualizado, e as novas funções não estarão disponíveis. Também recomendamos fortemente que instale todas as atualizações disponíveis para o sistema operacional. Agora, a versão mínima recomendada é o Windows 10 21H2 (build 19044 de novembro de 2021).

    3. Melhorado o sistema de segurança no Mercado. Agora, para iniciar um produto, o usuário precisa estar autenticado na plataforma com sua conta MQL5, através da qual o produto foi adquirido. A conta deve estar indicada na seção "Serviço \ Configurações \ Comunidade":



      Se a conta não for indicada ou se a conta errada for indicada, o produto não será iniciado e uma mensagem aparecerá no log da plataforma:
      'O nome do produto' requer uma conta MQL5 ativa em Ferramentas->Opções->Comunidade
    4. Adicionado o comando "Visão Geral" ao menu de contexto da seção de histórico. Permite abrir um relatório de negociação da conta:



    5. Corrigidos erros de exibição do diálogo de autenticação de dois fatores. Se havia várias contas com o mesmo número em diferentes corretores no terminal, o campo para inserir a senha única não aparecia no formulário de conexão à conta.
    6. Acelerada a renderização de indicadores com o estilo de exibição DRAW_COLOR_CANDLES.
    7. Corrigidos erros na construção do relatório de negociação. Em alguns casos, os valores de lucro e capital líquido nos gráficos poderiam ser exibidos incorretamente.
    8. Adicionada a exibição do indicador "Custos" no relatório de negociação. Ele mostra a soma dos custos por transação em relação ao preço médio atual do instrumento (custo de spread mid-point). Na verdade, é a quantidade que o trader perde no spread ao negociar. A disponibilidade deste indicador depende da corretora.
    9. Traduções da interface do usuário atualizadas.
    10. Melhorada a estabilidade ao trabalhar sob o Wine, especialmente em sistemas macOS. Recomendamos que você remova completamente os terminais antigos e reinstale-os:


    11. Acelerada a instalação e o download de atualizações, bem como melhorada a detecção da disponibilidade do AVX no computador do usuário ao escolher a distribuição.
    12. Suporte habilitado para TLS 1.3 nos protocolos web. TLS 1.0 desativado como obsoleto e inseguro.
    13. Corrigido o cálculo da comissão do agente nos relatórios de histórico de negociações. As operações correspondentes podem não ter sido consideradas ao calcular o lucro total.
    14. Corrigido um bug que impossibilitava a alteração do servidor na caixa de diálogo de conexão da conta. O problema surgia quando havia várias contas no terminal com o mesmo número para diferentes corretoras.
    Os instaladores estão sendo migrados para trabalhar apenas com versões de plataforma de 64 bits. O suporte para versões de 32 bits está terminando. As versões de plataforma de 32 bits previamente instaladas continuarão funcionando até 1º de janeiro de 2024.

    MQL5

    1. Adicionado um novo valor STAT_COMPLEX_CRITERION na enumeração ENUM_STATISTICS. Isso permite obter o valor do critério complexo, calculado como resultado da otimização.
    2. Perfeiçoado o método RegressionMetric, usado para calcular a métrica de regressão para a matriz ou vetor fornecido. adicionados os parâmetros vector_true e matrix_true para passar os valores verdadeiros pelos quais a qualidade dos dados previstos é avaliada.
      double vector::RegressionMetric(
         const vector& vector_true,            // valores reais
         const ENUM_REGRESSION_METRIC  metric  // métrica
         );
       
      double matrix::RegressionMetric(
         const matrix& matrix_true,            // valores reais
         const ENUM_REGRESSION_METRIC metric   // métrica
         );
       
      vector matrix::RegressionMetric(
         const matrix& matrix_true,            // valores reais
         const ENUM_REGRESSION_METRIC metric,  // métrica
         const int                      axis   // eixo
         );
    3. Adicionado o método LinearRegression. Ele retorna um vetor/matriz com valores de regressão linear calculados para o vetor/matriz passado.
      vector vector::LinearRegression();
       
      matriz::RegressãoLinear(
         ENUM_MATRIX_AXIS axis=AXIS_NONE       // eixo ao longo do qual é calculada a regressão 
         );
      Exemplo:
      vector vector_a;
      //--- preenchemos o vetor com preços
      vector_a.CopyRates(_Symbol,_Period,COPY_RATES_CLOSE,1,100);
      //--- obtemos uma regressão linear
      vector vector_r=vector_a.LinearRegression();
      Visualização do resultado em forma de gráfico:




    4. Adicionado o método HasNan que retorna o número de valores NaN em uma matriz/vetor.
      ulong vector::HasNan();
      ulong matrix::HasNan();
      Os métodos Compare e CompareByDigits, ao comparar os respectivos pares de elementos que têm valores NaN, considera esses elementos iguais, enquanto em uma comparação normal de ponto flutuante NaN != NaN.

    5. A estrutura OnnxTypeInfo, usada para trabalhar com modelos ONNX, foi modificada:

      struct OnnxTypeInfo
        {
         ENUM_ONNX_TYPE       type;            // tipo de parâmetro
         OnnxTensorTypeInfo   tensor;          // descrição do tensor
         OnnxMapTypeInfo      map;             // descrição do mapa
         OnnxSequenceTypeInfo sequence;        // descrição da sequência
        };

      Agora, o tipo de dados é especificado usando novas subestruturas:

      • OnnxTensorTypeInfo - tensor
      • OnnxMapTypeInfo - mapa
      • OnnxSequenceTypeInfo - sequência

      struct OnnxTensorTypeInfo
            {
             ENUM_ONNX_DATATYPE   data_type;       // tipo de dados no tensor
             long                 dimensions[];    // número de elementos
            };
          
          struct OnnxMapTypeInfo
            {
             ENUM_ONNX_DATA_TYPE  key_type;        // tipo de chave
             OnnxTypeInfo         type_info;       // tipo de valor
            };
          
          struct OnnxSequenceTypeInfo
            {
             OnnxTypeInfo         type_info;       // tipo de dados na sequência
            };
      Dependendo de OnnxTypeInfo::type (ONNX_TYPE_TENSOR, ONNX_TYPE_MAP ou ONNX_TYPE_SEQUENCE), a subestrutura correspondente é preenchida.

    6. Suporte aprimorado para modelos ONNX (Open Neural Network Exchange).
    7. foram adicionados os métodos CopyIndicatorBuffer, que permitem obter dados do buffer do indicador em um vetor.
      bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,ulong start_pos,ulong count);
      bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,ulong count);
      bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,datetime stop_time);
    8. Corrigido o trabalho com arrays de duas ou mais dimensões nos métodos FrameAdd e FrameNext.
    9. Corrigido o funcionamento do método CRedBlackTree::Remove na biblioteca padrão.
    10. Foram feitas correções na biblioteca de lógica difusa Fuzzy.

    MetaEditor

    1. Foi adicionada a integração com o AI Assistant — uma ferramenta avançada para a conclusão automática de código. Seu funcionamento é baseado em modelos da OpenAI. Você insere um comentário ou parte de uma função, envia uma instrução (prompt), a rede neural analisa e propõe opções de código para implementar sua ideia.

      Dependendo do tipo de arquivo em que você está trabalhando, a frase "Linguagem MQL5", "Linguagem Python" ou "Linguagem C++" é automaticamente adicionada ao início de cada prompt. Assim, a rede neural fornecerá o resultado no idioma apropriado.

      No momento, o AI Assistant está funcionando gratuitamente, e não é necessário ativá-lo separadamente. No menu Serviços \ Configurações \ AI Assistant, há vários parâmetros:




      Configurações de pagamento:

      • Usar conta MQL5 — atualmente, este modo está funcionando gratuitamente. No futuro, você poderá pagar a assinatura diretamente com o saldo de sua conta MQL5.
      • Usar a chave OpenAI — se você já pagou a assinatura e possui uma chave, pode usá-la.

      Configurações de solicitações:

      • Modelo — a rede neural que processará suas solicitações. Atualmente, estão disponíveis text-davinci-003 e gpt-3.5-turbo. No futuro, será adicionado suporte para gpt-4.
      • Máximo de tokens — a quantidade de unidades de texto que o modelo pode retornar em resposta ao prompt.
      • Variabilidade — influencia o quão rigorosamente a rede neural seguirá o prompt. Quanto maior o valor, mais aleatório pode ser o resultado. Nos modelos da OpenAI, corresponde ao parâmetro de temperature.

    2. Adicionada a possibilidade de visualizar as propriedades dos modelos ONNX.

      Agora, diretamente no editor, você pode visualizar o conteúdo do arquivo *.onnx de uma maneira conveniente. Para ver como é, encontre o projeto ONNX.Price.Prediction na seção "Ferramentas \ Projetos Públicos", e então clique em "Participar" no menu de contexto. O projeto será baixado para o seu computador e aparecerá no Navegador.



    3. Adicionada a capacidade de visualizar modelos de aprendizado de máquina e redes neurais através do Netron. Este visualizador suporta muitos modelos populares: ONNX, TensorFlow Lite, Caffe, Keras, ncnn, etc.

      Para visualizar o modelo, selecione seu arquivo no Navegador e clique em "Abrir no Netron". Se esta ferramenta ainda não estiver instalada, sua página no GitHub será aberta, de onde você pode baixar o arquivo de instalação para o seu sistema operacional. Por exemplo, Netron-Setup-X.X.X.exe — para o Windows. Após a instalação do programa, o modelo será imediatamente aberto para visualização a partir do Navegador.


      Formatos suportados:

      • armnn, caffemodel, circle, ckpt, cmf, dlc, dnn, h5, har, hd5, hdf5, hn, keras, kmodel,
      • lite, mar, meta, mge, mlmodel, mlnet, mlpackage, mnn, model, nb, ngf, nn, nnp,
      • om, onnx, ort, paddle, param, pb, pbtxt, pdiparams, pdmodel, pdopt, pdparams, prototxt, pt, pth, ptl,
      • rknn, t7, tfl, tflite, tmfile, tm, tnnproto, torchscript, uff, xmodel

    4. Atualizações das traduções da interface do usuário

    Tester

    1. Correção no cálculo do indicador "Transação Média Perdedora" no relatório de teste. Anteriormente, as transações de entrada poderiam ser erroneamente contabilizadas se uma comissão fosse cobrada sobre elas.
    2. Aperfeiçoamento da configuração de comissões personalizadas no testador de estratégias. Para definir um símbolo, agora basta inserir apenas seu nome, e não o caminho completo.
    3. Ícones atualizados no testador de estratégias. Novas metáforas e aparência moderna facilitam a percepção das informações.

    Correções de registro de falhas.

    Web Terminal

    1. Aperfeiçoada a seção de histórico de negociação:

      • Adicionada a exibição de operações de saldo no histórico de negociação: depósitos e retiradas, comissões, correções, etc.
      • Adicionada a exibição de indicadores finais no histórico de negociação: saldo, lucro, comissão, depósitos, retiradas, número de ordens, etc.
      • Na versão móvel, foi adicionada a capacidade de classificar operações, bem como filtrar o histórico por profundidade.




    2. Especificação de contrato complementada para instrumentos. Agora, também mostra o limite de volume, tamanho e custo do tick, margem inicial e margem de cobertura.
    3. Melhorados os esquemas de cores:

      • No gráfico, as ordens pendentes agora são exibidas em cinza, enquanto as posições são coloridas de acordo com a direção: vermelho para venda, azul para compra. Com um grande número de operações, o gráfico não parecerá sobrecarregado.
      • Ao visualizar/editar uma posição, apenas ela e seus níveis são destacados, todas as outras posições e ordens se tornam cinzas, e seus níveis são ocultados na escala de preços. Será mais conveniente trabalhar com operações no gráfico.
      • As Stop Loss agora são exibidas não em vermelho, mas em laranja, para não confundi-las com as posições de venda.
      • As ícones que indicam o fechamento de posições no gráfico foram aprimoradas. Se uma posição for fechada no Take Profit, a ícone será verde, se for fechada no Stop Loss, será vermelha.

    4. Adicionada a tradução da interface para árabe, búlgaro, vietnamita, grego, indonésio, malaio, holandês, persa, polonês, tailandês, ucraniano e hindi. Agora, o terminal web está disponível em 24 idiomas.
    5. Corrigida a tradução para o turco.
    6. Corrigida a modificação e exclusão de ordens pendentes na versão móvel do terminal web.
    7. Corrigida a dica de mercado fechado exibida no gráfico.
    8. Corrigida a exibição de lucro no botão de fechamento de posição no diálogo de negociação. O erro ocorreu ao fechar parcialmente.
    9. Corrigida a exibição de notificações de negociação no gráfico.
    10. Corrigida a alteração do volume usando as setas no livro de ofertas.
    11. Corrigido um erro que, em alguns casos, levava à redefinição das configurações dos indicadores no gráfico.
    12. Corrigida a verificação do nome de usuário ao abrir novas contas. Anteriormente, a presença de um apóstrofo no nome era considerada um erro.
    13. Corrigido o tratamento de recotações. Em alguns casos, o diálogo com a oferta de novos preços pode não ter sido exibido.
    14. Corrigida a exibição do indicador Ichimoku Kinko Hyo. Agora, as linhas Chikou-span, Up kumo e Down kumo são exibidas com o deslocamento correto.
    15. Corrigida a verificação da margem inicial ao abrir uma nova ordem. O erro surgia ao usar o sistema de cobertura para o registro de posições.
    16. Corrigida a rolagem na janela de especificação do contrato.

    MQL5.community

    1. O site da rede de computação distribuída MQL5 Cloud Network foi completamente atualizado — https://cloud.mql5.com.

      Descubra como utilizar a capacidade de milhares de computadores em todo o mundo para otimizar suas estratégias de negociação. Graças à MQL5 Cloud Network, até os cálculos mais longos e pesados podem ser realizados em poucos minutos. Aqui, você também aprenderá como se tornar um membro da rede e ganhar dinheiro ao disponibilizar seus recursos de computação.




    2. A seção de capturas de tela para produtos no Mercado foi melhorada. Agora, os autores podem carregar ilustrações com até 1920*1800 pixels, permitindo uma melhor demonstração do funcionamento dos aplicativos. Além disso, a galeria de capturas de tela foi atualizada. As miniaturas das imagens são exibidas em um carrossel conveniente, e ao clicar nelas, você pode abrir imagens em tamanho real.



    3. A seção Freelance foi melhorada. Agora, ao fazer os primeiros pedidos, os usuários receberão mais dicas:

      • Exemplos de especificações técnicas e lembretes sobre a necessidade de anexá-las
      • Instruções para completar etapas
      • Dicas para o uso de modelos

      Tudo isso ajudará a não se perder no processo e a obter o resultado desejado.




    24 março 2023
    MetaTrader 5 build 3660: Aprimoramentos e correções

    Terminal

    1. Correção de erros que, em alguns casos, resultavam em registros incorretos no log da plataforma.
    2. Atualizações nas traduções da interface do usuário.

    MQL5

    • Correção na verificação de variáveis globais. Quando declaradas variáveis idênticas em diferentes namespaces, o compilador emitia um alerta equivocado de que a variável já havia sido declarada.

    Web Terminal

    1. Adicionada a tradução da interface do usuário para o português. O terminal web agora está disponível em 12 idiomas.
    2. Correção na caixa de diálogo para adicionar o indicador Standard Deviation.
    3. Pequenos ajustes e aprimoramentos.
    17 março 2023
    MetaTrader 5 build 3640: terminal web disponível em 11 idiomas

    WebTerminal

    1. Foram adicionadas traduções de interface em 10 idiomas amplamente utilizados: russo, francês, alemão, italiano, japonês, coreano, espanhol, turco, chinês simplificado e chinês tradicional. Esta lista será expandida ainda mais nas próximas versões. Utilize o menu para alterar a interface para o seu idioma preferido:


      Interface do terminal web disponível em 11 idiomas


    2. Foi otimizado o mecanismo de conexão com o servidor de negociação.

    MQL5

    1. MQL5: adicionados os sinalizadores COPY_TICKS_VERTICAL e COPY_RATES_VERTICAL aos métodos CopyTicks, CopyTicksRange e CopyRates, respectivamente.

      Por padrão, os ticks e as séries são copiados para a matriz ao longo do eixo horizontal, ou seja, os dados são adicionados à esquerda no final da linha. Nas tarefas de execução de um modelo ONNX treinado, tal matriz deve ser transposta para fornecer dados de entrada:

      const long                             ExtOutputShape[] = {1,1};    // model output shape
      const long                             ExtInputShape [] = {1,10,4}; // model input form
      #resource "Python/model.onnx" as uchar ExtModel[]                   // model as resource
      //+------------------------------------------------------------------+
      //| Script program start function                                    |
      //+------------------------------------------------------------------+
      int OnStart(void)
        {
         matrix rates;
      //--- get 10 bars
         if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC,2,10))
            return(-1);
      //--- input a set of OHLC vectors
         matrix x_norm=rates.Transpose();
         vector m=x_norm.Mean(0);               
         vector s=x_norm.Std(0);
         matrix mm(10,4);
         matrix ms(10,4);

      Agora, ao chamar o método, basta especificar um sinalizador adicional COPY_RATES_VERTICAL (COPY_TICKS_VERTICAL para ticks) para evitar uma operação de transformação de dados desnecessária:

      //+------------------------------------------------------------------+
      //| Script program start function                                    |
      //+------------------------------------------------------------------+
      int OnStart(void)
        {
         matrix rates;
      //--- get 10 bars
         if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC|COPY_RATES_VERTICAL,2,10))
            return(-1);
      //--- input a set of OHLC vectors
    2. Adicionado o valor CHART_SHOW_TRADE_HISTORY à enumeração ENUM_CHART_PROPERTY_INTEGER. A propriedade controla a exibição das negociações a partir do histórico de negociação no gráfico. Use as funções ChartGetInteger e ChartSetInteger para obter e definir propriedades. Consulte a documentação da plataforma para saber mais sobre como as negociações são exibidas no gráfico.

    MetaEditor

    • Corrigido travamento da interface, que ocorria em casos raros durante a compilação de arquivos.

    Terminal

    • Correções relacionadas a relatórios de erros.
    10 março 2023
    MetaTrader 5 build 3620: melhorias no terminal web, suporte ONNX e multiplicação mais rápida de matrizes em MQL5

    Terminal

    1. Corrigido o erro ao calcular o lucro total norelatório de negociação.
    2. Atualizados dados fundamentais sobre instrumentos de negociação disponíveis através da Observação do Mercado.
    3. Corrigida inicialização da plataforma de negociação no Wine 7.0.1 ao trabalhar em sistemas Linux.
    4. Corrigida a adição de símbolos à Observação do Mercado por meio da barra de pesquisa. O símbolo encontrado por descrição não podia ser adicionado à lista clicando em sua linha.

    MQL5

    1. Adicionado suporte para trabalhar com modelos ONNX (Open Neural Network Exchange).

      ONNX é uma biblioteca de código aberto para a construção de redes neurais de aprendizado profundo. Este formato é suportado por muitas plataformas, incluindo Chainer, Caffee2 e PyTorch. Depois de criar um modelo ONNX usando ferramentas especializadas, você pode integrá-lo ao seu programa MQL5 e usá-lo para tomar decisões de negociação.

      Uma descrição de todas as funções suportadas está disponível na documentação. Um exemplo de como trabalhar com um modelo de teste está disponível em projetos públicos dentro do MetaEditor. Encontre o projeto ONNX.Price.Prediction em "Ferramentas > Projetos públicos" e clique em "Participar" no menu de contexto. O projeto será baixado para o seu computador e aparecerá no Navegador:


      Exemplo de trabalho com modelo ONNX em projetos públicos


      Compile o projeto e execute-o com EURUSD H1 para ver o resultado.

      Além do modelo finalizado e do código MQL5 para executá-lo, o projeto também inclui o script de Python PricePredictionTraining.py. Ele mostra como criar um modelo ONNX sozinho. Para que o script funcione, instale o Python em seu computador, bem como os módulos necessários a partir da linha de comando:

      python.exe -m pip install --upgrade pip
      python -m pip install --upgrade tensorflow
      python -m pip install --upgrade pandas
      python -m pip install --upgrade scikit-learn
      python -m pip install --upgrade matplotlib
      python -m pip install --upgrade tqdm
      python -m pip install --upgrade metatrader5
      python -m pip install --upgrade onnx==1.12
      python -m pip install --upgrade tf2onnx
      Instruções detalhadas para trabalhar com ONNX estão disponíveis na documentação.

    2. Adicionado suporte para o novo algoritmo para multiplicação de matrizes General Matrix Multiplication (GeMM). Ele permite que você acelere significativamente os cálculos na maioria dos processadores por conta da paralelização de tarefas e do uso mais correto dos caches L1/L2/L3. A velocidade de cálculo é comparável a pacotes conhecidos como Math Kernel Library (MKL) e OpenBLAS. Num futuro próximo iremos publicar testes comparativos detalhados.

      O novo algoritmo é atualmente suportado no método matrix::GeMM. Se o seu processador suportar as instruções AVX e FMA (a maioria dos processadores lançados após 2013), o algoritmo será ativado automaticamente.

    3. Adicionado suporte para passar matrizes e vetores para DLLs. Agora você pode importar funções que usam esse tipo de dados de bibliotecas externas.

      Matrizes e vetores são passados para a DLL como um ponteiro para um buffer. Por exemplo, para passar uma matriz do tipo float, o parâmetro correspondente da função DLL exportada deve levar um ponteiro para um buffer do tipo float. Por exemplo:

      MQL5
      #import "mmlib.dll"
      bool sgemm(uint flags,matrix<float> &C,const matrix<float> &A,const matrix<float> &B,ulong M,ulong N,ulong K,float alpha,float beta);
      #import
      C++
      extern "C" __declspec(dllexport) bool sgemm(UINT flags,float *C,const float *A,const float *B,UINT64 M,UINT64 N,UINT64 K,float alpha,float beta)
      Para um processamento adequado de matrizes e vetores, além de seus buffers, devem ser passados seus tamanhos.

    4. Adicionada a nova função CopySeries para copiar séries temporais sincronizadas de MqlRates para arrays separados.

      A função CopySeries permite obter apenas as séries temporais necessárias, de cada vez, em diferentes matrizes especificadas, garantindo que todas elas estejam sincronizadas entre si. Isso significa que todos os valores nas matrizes resultantes, em um índice específico N, pertencem à mesma barra no par símbolo/período de tempo especificado. Dessa forma, não é necessário garantir que todas as séries temporais recebidas estejam sincronizadas com o tempo de abertura da barra.

      Ao contrário da função CopyRates, que retorna um conjunto completo de séries temporais como uma matriz MQLRates, a função CopySeries permite que o programador obtenha somente as séries temporais necessárias, com base em uma combinação de sinalizadores que indicam o tipo de série temporal solicitado. Neste caso, a ordem dos arrays passados para a função deve corresponder à ordem dos campos na estrutura MqlRates:

      struct MqlRates
        {
         datetime time;         // período de início
         double   open;         // preço de abertura
         double   high;         // preço mais alto no período
         double   low;          // preço mais baixo no período
         double   close;        // preço de fechamento
         long     tick_volume;  // volume de ticks
         int      spread;       // spread
         long     real_volume;  // volume de negociação
        }

      Assim, caso seja necessário obter os valores das séries temporais time, close e real_volume para as últimas 100 barras do símbolo/timeframe atual, a chamada deve ser a seguinte:

      datetime  time[];
      double    close[];
      long      volume[];
      CopySeries(NULL,0,0,100,COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_VOLUME_REAL,time,close,volume);
      

      Ao mesmo tempo, a ordem dos arrays "time, close, volume" é importante — deve corresponder à ordem dos campos Estrutura MqlRates. Mas a ordem dos valores na máscara rates_mask não importa, a máscara poderia ser assim:

      COPY_RATES_VOLUME_REAL|COPY_RATES_TIME|COPY_RATES_CLOSE

      Exemplo

      //--- input parameters
      input datetime InpDateFrom=D'2022.01.01 00:00:00';
      input datetime InpDateTo  =D'2023.01.01 00:00:00';
      input uint     InpCount   =20;
      //+------------------------------------------------------------------+
      //| Script program start function                                    |
      //+------------------------------------------------------------------+
      void OnStart(void)
        {
      //--- obtemos séries temporais a partir da estrutura de preços Rates
         double   open[];
         double   close[];
         float    closef[];
         datetime time1[], time2[];
      //--- solicitamos os preços de fechamento em uma matriz do tipo double
         ResetLastError();
         int res1=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                             COPY_RATES_TIME|COPY_RATES_CLOSE, time1, close);
         PrintFormat("1. CopySeries  returns %d values. Error code=%d", res1, GetLastError());
         ArrayPrint(close);
         
      
      //--- agora pedimos mais preços de abertura e fechamento em uma série de preços do tipo float
         ResetLastError();
         int res2=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                             COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_OPEN, time2, open, closef);
         PrintFormat("2. CopySeries  returns %d values. Error code=%d", res2, GetLastError());
         ArrayPrint(closef);
      //--- comparamos os dados
         if((res1==res2) && (time1[0]==time2[0]))
           {
            Print("  | Time             |    Open      | Close double | Close float |");
            for(int i=0; i<10; i++)
              {
               PrintFormat("%d | %s |   %.5f    |   %.5f    |   %.5f   |",
                           i, TimeToString(time1[i]), open[i], close[i], closef[i]);
              }
           }
      /*  Resultado
              1. CopySeries  returns 0 values. Error code=0
              [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
              [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
              2. CopySeries  returns 0 values. Error code=0
              [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
              [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
                | Time             |    Open      | Close double | Close float |
              0 | 2023.03.01 17:00 |   1.06660    |   1.06722    |   1.06722   |
              1 | 2023.03.01 18:00 |   1.06722    |   1.06733    |   1.06733   |
              2 | 2023.03.01 19:00 |   1.06734    |   1.06653    |   1.06653   |
              3 | 2023.03.01 20:00 |   1.06654    |   1.06520    |   1.06520   |
              4 | 2023.03.01 21:00 |   1.06520    |   1.06573    |   1.06573   |
              5 | 2023.03.01 22:00 |   1.06572    |   1.06649    |   1.06649   |
              6 | 2023.03.01 23:00 |   1.06649    |   1.06694    |   1.06694   |
              7 | 2023.03.02 00:00 |   1.06683    |   1.06675    |   1.06675   |
              8 | 2023.03.02 01:00 |   1.06675    |   1.06684    |   1.06684   |
              9 | 2023.03.02 02:00 |   1.06687    |   1.06604    |   1.06604   |
      */
        }
    5. Corrigido um bug que, em casos raros, resultava no recebimento de um bilhete de ordem incorreto após o envio de uma solicitação pela função OrderSend. O erro pode ocorrer durante a negociação paralela na mesma conta por meio de diferentes plataformas.
    6. Corrigido bug com importação de bibliotecas EX5. Antes acontecia se o nome da biblioteca importada correspondia ao nome do arquivo para o qual ela era importada.

    MetaEditor

    1. Adicionado envio de notificações push para participantes de projetos de grupo. Agora cada participante estará sempre ciente de qualquer alteração nos arquivos ou nas configurações do projeto. Para receber notificações, especifique seu ID MetaQuotes na seção "Configurações > Segurança" do seu perfil na MQL5.community.


      Notificações push sobre mudanças no projeto


    2. Icones de arquivo atualizados no Navegador. Metáforas novas e mais simples tornam as informações mais fáceis de entender.

    Tester

    1. Corrigido um erro que fazia com que o parâmetro de string de entrada fosse truncado quando contia o caratere "|".

    MetaTrader 5 WebTerminal, build 3620

    1. Adicionados vários esquemas de cores prontos para a interface, que afetam a exibição de barras e linhas no gráfico, os preços na Observação do Mercado e os indicadores financeiros da conta. Nossos designers selecionaram combinações de cores confortáveis, levando em consideração os desejos dos traders, para que possam escolher o esquema que melhor atenda às suas necessidades e preferências.


      Novos esquemas de cores para o terminal web


    2. Redesenhamos a janela de especificação do instrumento de negociação. Todos os dados são reempacotados em blocos lógicos compactos para facilitar a visualização.


      Janela de especificação do instrumento de negociação atualizada


    3. Corrigida a abertura de contas reais via terminal web. Em alguns casos, após preencher o formulário de registro, o servidor podia retornar um erro.
    4. Corrigido um erro na caixa de diálogo de negociação. Se o usuário abria a caixa de diálogo de modificação de posição e depois fechava a posição com o botão "X" na janela de instrumentos, o conteúdo da caixa de diálogo não era redefinido. Agora, a caixa de diálogo retorna automaticamente ao modo de colocação de novo pedido.
    5. Corrigida a exibição do campo Server na caixa de diálogo de gerenciamento de contas.
    6. Corrigida a exibição do período atual na barra de ferramentas.
    7. Corrigida a exibição de volume no número de unidades do ativo subjacente na caixa de diálogo de negociação.
    8. Corrigida a modificação dos níveis "Stop Loss" e "Take Profit". Em alguns casos, modificar um valor podia redefinir o segundo.
    9. Corrigida a exibição do aviso de risco do investidor.
    6 março 2023
    Nova versão do MetaTrader 5 para iPhone/iPad: melhoria das funções de negociação e de análise dos gráficos
    1. Adicionada a capacidade de colocar ordens stop e stop-limit no gráfico.

      Agora você não está limitado apenas a colocar ordens restritas. Selecione o tipo de ordem pendente desejada pressionando logo o botão correspondente no painel inferior do gráfico.


      Colocar stop e stop limit no gráfico


    2. Adicionada a capacidade de fechar posições e excluir ordens pendentes do gráfico. Selecione o ícone de posição ou nível de ordem no gráfico e o comando correspondente aparecerá no painel de negociação inferior:


      Gerenciar posições e ordens via gráfico


    3. Melhorada a função de deslocamento da borda direita do gráfico de preços. Agora, para alterar o deslocamento, basta rolar o gráfico até o último preço até que apareça um separador vertical. Em seguida, é necessário arrastar o triângulo na escala inferior do gráfico:


      Altere o recuo do gráfico arrastando o triângulo da escala inferior


    4. Adicionada a capacidade de copiar objetos analíticos no gráfico, para facilitar a marcação. Chame o menu do objeto pressionando-o longamente e selecione "Copiar":

      Criar cópias de objetos analíticos


    5. Adicionada a capacidade de controlar a exibição de indicadores em diferentes períodos gráficos. Se o indicador não for adequado para determinados períodos gráfico, ele pode ser ocultado para liberar espaço na tela para outras ferramentas analíticas.


      Controle a exibição de indicadores em diferentes períodos


    6. Adicionada exibição de comissões do instrumento na janela de especificação.


      Saiba a taxa de comissão na especificação do instrumento


    7. Adicionado um link para redefinir a senha da sua conta. O acesso só pode ser restaurado através da corretora com o qual a conta foi aberta. O link mostra detalhes de contato onde você pode obter ajuda.


      Ajuda com recuperação de senha


    8. Adicionada a capacidade de compartilhar links para o canal na MQL5.community.


      Compartilhe um link para seu canal via aplicativo


    9. Aprimorada a experiência do usuário ao se conectar a uma conta de negociação restrita.

      A negociação na conta pode ser limitada por diversos motivos, como a conexão com a conta no modo investidor, falta de aceitação de acordos, verificação pendente com a corretora, entre outros. Isso pode levar o usuário a não compreender por que as funções de negociação não estão disponíveis no aplicativo.

      Agora, nesses casos, um botão cinza para fazer um novo pedido será exibido na seção "Negociação". Ao clicar nele, o usuário verá informações e recomendações relevantes.


      Ajude o usuário com negociação restrita


    10. Aprimorado o manuseio de certificados SSL usados na autenticação estendida.

      Agora, ao se conectar a uma conta que utiliza autenticação avançada, o usuário recebe uma breve descrição das ações necessárias.


      Trabalho aprimorado com certificados SSL


      Também é possível importar um certificado de um arquivo PFX. Para isso, salve-o no aplicativo e, em seguida, utilize a função de importação disponível na caixa de diálogo inicial.

      Além disso, agora é possível exportar certificados para arquivos e usá-los em outros dispositivos. Para isso, acesse "Configurações > Certificados" e clique em "Exportar" no menu de certificados.

    11. A construção de tabelas de preços foi adaptada para Metal, a última geração da API gráfica usada em dispositivos Apple. Isso trará um significativo aumento de desempenho ao exibir gráficos, indicadores e objetos.
    12. Corrigida a substituição dos níveis de Stop Loss e Take Profit no livro de ofertas. A partir de agora, em contas que operam no modo FIFO, os níveis de stop serão automaticamente definidos de acordo com os níveis de stop das posições já abertas para o mesmo instrumento. Isso é necessário para cumprir a regra FIFO.
    13. Corrigida a recotação. Agora, ao receber uma nova cotação, o usuário terá um breve período de tempo para decidir se aceita ou não os novos preços. Se não houver solução, a solicitação é automaticamente rejeitada e a janela de nova cotação é fechada.
    14. Corrigida exibição de tempo na seção "Gráfico" ao usar o tema de interface escura.
    16 dezembro 2022
    MetaTrader 5 build 3550: melhorias e correções

    Terminal

    1. Terminal: atualizadas traduções da interface do usuário.
    2. Correções de crash-logs.

    WebTerminal

    9 dezembro 2022
    MetaTrader 5 build 3540: Autenticação 2FA/TOTP e Observação do Mercado aprimorada no terminal web

    WebTerminal

    1. Adicionado suporte para autenticação 2FA/TOTP usando o Google Authenticator e aplicativos similares.

      A utilização de autenticação de dois fatores lhe permite proteger ainda mais sua conta de negociação contra o acesso não autorizado, mesmo que seu nome de utilizador e palavra-passe permanente sejam divulgados. Existem muitos aplicativos móveis que permitem a autenticação em duas etapas usando o algoritmo Time-based One-time Password Algorithm (TOTP) Entre os mais conhecidos estão Google Authenticator, Microsoft Authenticator, LastPass Authenticator e Authy. Agora, o terminal cliente MetaTrader 5 permite logar usando senhas únicas obtidas desse tipo de aplicativos Authenticator.

      Para ativar a autenticação em duas etapas, primeiro faça login no terminal cliente MetaTrader 5 da forma habitual. Em seguida, clique na sua conta no menu e selecione "Ativar 2FA/TOTP" na caixa de diálogo que se abre. Inicie o Authenticator em seu telefone celular, pressione o botão "+" nele para adicionar sua conta de negociação e ler o código QR a partir do terminal. Digite o código recebido no campo "Senha única" e clique em "Ativar 2FA", assim o sigilo de sua conta será adicionado ao servidor de negociação da corretora.


      Adicionado suporte para autenticação 2FA/TOTP usando o Google Authenticator e outros aplicativos semelhantes


      O código salvo agora será usado no aplicativo Authenticator para gerar uma senha OTP para cada conexão posterior. Cada senha é válida durante 30 segundos, depois é gerada uma nova.


      Uma senha OTP adicional proveniente do aplicativo Authenticator é agora necessária para entrar na sua conta de negociação


      Um código de backup também é exibido na caixa de diálogo com o código QR para vincular ao gerador, mantenha-o em um local seguro. Se você perder o acesso ao seu dispositivo vinculado, isso permitirá que você adicione novamente sua conta ao aplicativo Authenticator.

      Se você decidir remover o código guardado do aplicativo Authenticator, primeiro desabilite o uso da autenticação 2FA/TOTP usando o devido comando no menu de contexto de conta. Se a autenticação 2FA/TOTP não estiver disponível na sua conta, peça à sua corretora para ativar esta opção.

    2. Expandida a quantidade de informações exibidas na Observação do Mercado. Agora, além dos preços Bid/Ask atuais e a porcentagem de variação de preço, você pode ver:

      • Preço Bid/Ask máximo e mínimo para o pregão atual
      • Preços de abertura dos preços atuais e de fechamento do pregão anterior

      Para personalizar as informações exibidas, use o menu de contexto:


      Mais informações na Observação do Mercado


    3. Adicionada exibição de uma notificação de risco quando a configuração correspondente é habilitada no lado da corretora. Alguns reguladores exigem que o comerciante leia e aceite a notificação antes de negociar.
    4. Corrigida a exibição da barra de ferramentas superior nos modelos de iPhone com um entalhe na parte superior da tela. Em alguns casos, ela podia cobrir os botões do painel.
    5. Corrigida a exibição dos indicadores financeiros finais da conta (lucro, patrimônio, etc.) no navegador Google Chrome. Em alguns casos, os valores podiam não ser atualizados.

    Terminal

    1. Ootimizada e acelerada a abertura da caixa de diálogo para criar contas demo.
    2. Atualizadas traduções da interface do usuário.
    3. Correções de crash-logs.

    MQL5

    1. Adicionados novos métodos à classe COpenCL da biblioteca padrão:

      • BufferFromMatrix - preenchimento do buffer do dispositivo com dados da matriz
      • BufferToMatrix - leitura de dados desde o buffer do dispositivo em uma matriz
      • ContextCreate - criação do contexto do dispositivo (primeira parte do método Initialize)
      • ProgramCreate - criação de um programa baseado em código-fonte OpenCL (segunda parte do método Initialize)
      • ContextClean - liberação de todos os dados pertencentes ao contexto do dispositivo (semelhante ao método Shutdown, mas sem remover o contexto)
      • GetDeviceInfoInteger - recepção de uma propriedade inteira do dispositivo
      • GetKernelInfoInteger — recepção de uma propriedade inteira do kernel
      • GetDeviceInfo - recepção de qualquer propriedade inteira única do dispositivo não presente na enumeração ENUM_OPENCL_PROPERTY_INTEGER

      Exemplo de uso de GetDeviceInfo:
      longo preferido_workgroup_size_multiple=OpenCL.GetDeviceInfo(0x1067);
    2. Adicionados os valores TERMINAL_CPU_NAME e TERMINAL_OS_VERSION à enumeração ENUM_TERMINAL_INFO_STRING. Eles permitem que você obtenha o nome do processador e sistema operacional do usuário.
      void OnStart()
        {
         string cpu,os;
      //---
         cpu=TerminalInfoString(TERMINAL_CPU_NAME);
         os=TerminalInfoString(TERMINAL_OS_VERSION);
         PrintFormat("CPU: %s, OS: %s",cpu,os);
        }
      
      Resultado:
      CPU: Intel Xeon E5-2630 v4 @ 2,20 GHz, SO: Windows 10 build 19045
    3. Corrigido o parâmetro "table_or_sql" nas funções DatabasePrint e DatabaseExport. Agora você pode passar nele o nome da tabela e não apenas a consulta SQL.

    MetaEditor

    1. Corrigida a verificação do número máximo de colunas no banco de dados que podem ser exibidas. Agora você pode exibir até 64 colunas.
    2. Corrigido o trabalho de pontos de interrupção em construções curtas como IF[ if(cond) break; ].
    anterior12345678910111213