O que há de novo no MetaTrader 5?

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

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 Copilot, 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 Copilot. 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 Copilot — 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 Copilot está funcionando gratuitamente, e não é necessário ativá-lo separadamente. No menu Serviços \ Configurações \ Copilot, 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; ].
25 novembro 2022
MetaTrader 5 build 3520: adicionada autenticação 2FA/TOTP com o Google Authenticator

Terminal

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

    A utilização de autenticação de dois fatores lhe permite proteger ainda mais a sua conta de negociação contra o acesso não autorizado, mesmo que o 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. 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 com o botão direito do mouse na conta de negociação para abrir o menu e selecione "Permitir 2FA/TOTP". Inicie o Authenticator em seu telefone celular, pressione o botão "+" nele para adicionar sua conta de negociação e escanear o código QR a partir do terminal. Digite o código recebido no campo "One-time password" e clique em "Enable 2FA" - 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 aplicativos similares.

    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

    Se você decidir remover o código guardado do aplicativo Authenticator, primeiro desabilite o uso da autenticação 2FA/TOTP usando o devido comando do 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.

MQL5

  1. Corrigido o funcionamento da função CopyTicks para instrumentos de negociação personalizados. Em alguns casos, ao trabalhar com símbolos personalizados, os ticks iniciais do pregão anterior eram devolvidos em vez dos dados solicitados.

  2. Adicionados novos valores à enumeração para obter informações sobre o último erro OpenCL, tais valores permitem obter o código de erro e a respectiva descrição.
    1. adicionado CL_LAST_ERROR (código 4094) à enumeração ENUM_OPENCL_PROPERTY_INTEGER 

      Para obter o último erro OpenCL através de CLGetInfoInteger, o parâmetro handle é ignorado, ou seja, não tem valor. Descrição de erros: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS.
      No caso de um código de erro desconhecido, a string "unknown OpenCL error N" será retornada, sendo N o código de erro.

      Por exemplo:
      //--- primeiro parâmetro handle é ignorado quando o último código de erro é recebido
      int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);

    2. adicionado o valor CL_ERROR_DESCRIPTION (4093) à enumeração ENUM_OPENCL_PROPERTY_STRING.
      Uma descrição do erro OpenCL pode ser obtida usando CLGetInfoString. Descrição de erros: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS.

      Ao utilizar CL_ERROR_DESCRIPTION como parâmetro handle, o código de erro deve ser passado para CLGetInfoString. Se CL_LAST_ERROR for passado em vez do código de erro, a função devolverá uma descrição do último erro.

      Por exemplo:
      //--- obter o código para o último erro OpenCL
      int    code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);
      string desc; // для получения текстового описания ошибки
      
      //--- usamos o código de erro para obter uma descrição textual do erro
      if(!CLGetInfoString(code,CL_ERROR_DESCRIPTION,desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      
      
      //--- para obter uma descrição do último erro OpenCL sem primeiro obter o código, passamos CL_LAST_ERROR  
      if(!CLGetInfoString(CL_LAST_ERROR,CL_ERROR_DESCRIPTION, desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      Por enquanto, o nome da enumeração interna é dado como a descrição do erro, cuja decifração pode ser encontrada na página https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS. Por exemplo, se CL_INVALID_KERNEL_ARGS for recebido, a descrição para ele será "Returned when enqueuing a kernel when some kernel arguments have not been set or are invalid."

  3. Corrigido o funcionamento do método matrix::MatMul. Quando se trabalha com matrizes grandes, o terminal colidiria dependendo de determinados tamanhos.

Correções de crash-logs.
18 novembro 2022
MetaTrader 5 build 3510: melhorias no terminal web

MetaTrader 5 WebTerminal

  1. Na versão móvel, as operações de classificação e filtragem por profundidade foram adicionadas à seção de histórico de negociação. Para personalizar a exibição do histórico, use os comandos no painel superior:


    Versão móvel agora com configuração de exibição de histórico de negociação


    As operações podem ser ordenadas por parâmetros básicos: data, bilhete, símbolo, volume, etc.

  2. Acesso aprimorado às informações sobre suas contas de negociação.

    • Na versão desktop, os dados da conta atual no menu flutuante agora são clicáveis. Ao clicar na conta, você acessa seus detalhes.
    • Na versão móvel, a exibição da conta atual foi adicionada na seção "Configurações". Ao clicar na conta, você acessa seus detalhes.


    Acesso aprimorado aos dados da conta de negociação

  3. Corrigida a exibição do tipo de conta na janela de gerenciamento de contas.
  4. Corrigida a exibição de patrimônio e margem livre após atualizar a página do terminal web em navegadores móveis.
  5. Corrigida a exibição da barra inferior no navegador móvel Firefox.

Terminal

  1. Corrigido um bug no cálculo dos gráficos de saldo e capital líquido no relatório de negociação.

MQL5

  1. Modificado o comportamento de typename(expr). Agora a função retorna o tipo completo com modificadores e dimensões (para arrays):
    classe A
      {
      };
    
    void OnStart(void)
      {
       const A *const arr[][2][3]={};
       Print(typename(arr));
      }
    
    Resultado:
    "class A const * const [][2][3]"

Correções de crash-logs.
11 novembro 2022
MetaTrader 5 build 3500: melhorias e correções

Terminal

  1. Adicionado um novo comando para acessar o novo relatório de negociação ao menu de contexto das seções "Negociação" e "Histórico":


    O relatório de negociação inclui:
    • Indicadores de crescimento mensais na forma de gráfico e tabela
    • Gráfico de capital líquido
    • Gráfico de radar que permite avaliar rapidamente o estado da conta
    • Estatísticas de negociação por instrumento
    • Muitos indicadores complementares para análise de negociação

  2. Corrigido o cálculo do depósito inicial no relatório de negociação.
  3. Corrigida a configuração dos níveis "Stop Loss" e "Take Profit" ao usar painéis de negociação rápida no gráfico e no "Market Watch". Os níveis podem ser herdados erroneamente de posições abertas anteriormente, mesmo que não seja necessário (a funcionalidade é destinada a contas FIFO).
  4. Atualizadas traduções da interface do usuário.

MQL5

  1. Corrigido um erro do compilador que permitia acessar um campo de estrutura por uma string constante cujo valor era o nome do campo.
  2. MQL5: corrigida a verificação do estado de tecla com TerminalInfoInteger(TERMINAL_KEYSTATE_*).

Correções de crash-logs.

MetaTrader 5 WebTerminal build 3500

  1. Corrigido fechamento de posições ao receber uma recotação.
  2. Corrigida a reconexão com o servidor após maximizar uma janela do navegador que estava inativa há muito tempo.
  3. Corrigida exibição de fundos de crédito na conta.
  4. Muitas outras melhorias e correções.
anterior123456789101112131415