Nova versão do MetaTrader 5 build 4260: melhorias gerais

 

Na sexta-feira, 22 de março de 2024, será lançada uma versão atualizada da plataforma MetaTrader 5.

Na nova versão, foram expandidas as capacidades de trabalho com eventos de teclado em programas MQL5. Agora, os desenvolvedores podem receber eventos de soltura de teclas, bem como eventos de teclas "mortas". Isso melhorará a interação dos programas com os usuários.

Além disso, no MetaEditor, foi adicionada a capacidade de buscar no livro "Redes Neurais e Algotrading no MQL5". Também no aplicativo web, a emissão de ordens limitadas para instrumentos de mercado foi corrigida.



Terminal do cliente MetaTrader 5

  1. Terminal: 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. Terminal: atualizações nas traduções da interface do usuário.
  3. MQL5: 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.

  4. MQL5: 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.

  5. MQL5: corrigido um erro que, em alguns casos, poderia levar a um funcionamento incorreto das funções ChartGet*.
  6. MetaEditor: 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".



  7. Tester: 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.
  8. Correções por crash logs.

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".

A atualização estará disponível por meio do sistema Live Update.

 
MetaQuotes:

Na sexta-feira, 22 de março de 2024, será lançada uma versão atualizada da plataforma MetaTrader 5.

Na nova versão, foram expandidas as capacidades de trabalho com eventos de teclado em programas MQL5. Agora, os desenvolvedores podem receber eventos de soltura de teclas, bem como eventos de teclas "mortas". Isso melhorará a interação dos programas com os usuários.

Além disso, no MetaEditor, foi adicionada a capacidade de buscar no livro "Redes Neurais e Algotrading no MQL5". Também no aplicativo web, a emissão de ordens limitadas para instrumentos de mercado foi corrigida.



Terminal do cliente MetaTrader 5

  1. Terminal: 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. Terminal: atualizações nas traduções da interface do usuário.
  3. MQL5: 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.

  4. MQL5: atualizada biblioteca Alglib. Devido à atualização, os seguintes métodos nas classes CMatrixDouble e CMatrixComplex foram alterados:
    Agora, em vez deles, é usado um método com um valor de retorno constante:
    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.

  5. MQL5: corrigido um erro que, em alguns casos, poderia levar a um funcionamento incorreto das funções ChartGet*.
  6. MetaEditor: 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".



  7. Tester: 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.
  8. Correções por crash logs.

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".

A atualização estará disponível por meio do sistema Live Update.

A partir dessa versão comecei a ter problemas na utilização da função iBarShift ao utilizar séries no período D1 dentro de gráficos com períodos menores. A função sempre retorna -1 ao pesquisar por uma data, que existe no histórico, incluindo a data atual.

 
Tenho um indicador que funciona em períodos intraday, mas que busca por informações de séries no período diário. A partir do build 4260 comecei a ter problemas na utilização da função iBarShift que sempre retorna -1 ao pesquisar por uma data, incluindo a data atual.
 
Aristides Almeida #:
Tenho um indicador que funciona em períodos intraday, mas que busca por informações de séries no período diário. A partir do build 4260 comecei a ter problemas na utilização da função iBarShift que sempre retorna -1 ao pesquisar por uma data, incluindo a data atual.

Aqui parece estar normal, provavelmente vai ser no codigo do seu indicador. Tem condicoes especificas para ocorrer o problema? Poderia mostrar a chamada que esta fazendo?