MetaTrader 5 build 3800: ordens Book or Cancel, assistência de IA ao escrever código e suporte aprimorado para ONNX

Na nova versão, adicionamos suporte para ordens "Book or Cancel". Essas ordens só podem ser colocadas no livro de ofertas, mas não são executadas imediatamente. Elas são usadas para implementar negociação passiva na bolsa de valores

8 junho 2023

Terminal

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



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

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

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

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

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



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



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


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

MQL5

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




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

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

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

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

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

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

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

MetaEditor

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

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

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




    Configurações de pagamento:

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

    Configurações de solicitações:

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

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

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



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

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


    Formatos suportados:

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

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

Tester

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

Correções de registro de falhas.

Web Terminal

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

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




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

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

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

MQL5.community

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

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




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



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

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

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