MetaTrader 5 build 4230: mais aplicativos embutidos e expansão do suporte ONNX

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

7 março 2024

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.