MetaTrader 5 build 2085: integração com Python e inúmeros aprimoramentos no testador de estratégias

Adicionada uma API para solicitar dados do terminal MetaTrader 5 através de aplicativos usando o Python

12 junho 2019

Terminal

  1. Adicionada uma API para solicitar dados do terminal MetaTrader 5 através de aplicativos usando o Python.

    Python é uma linguagem de programação moderna de alto nível para o desenvolvimento de scripts e aplicativos. Possui muitas bibliotecas para aprendizado de máquina, automação de processos, análise de dados e visualização.

    O pacote MetaTrader para Python é projetado para o recebimento conveniente e rápido de informações de negociação através de comunicação entre processos diretamente do terminal MetaTrader 5. Os dados recebidos desta maneira podem ser utilizados para cálculos estatísticos e aprendizado de máquina.



    Conectando

    1. Baixe a última versão do Python Python da página https://www.python.org/downloads/windows
    2. Ao instalar o Python, marque a caixa "Add Python X.X to PATH%" para poder executar scripts Python a partir da linha de comando.
    3. Instale o módulo MetaTrader5 a partir da linha de comando
      pip install MetaTrader5
    4. Adicione os pacotes matplotlib e pytz
      pip install matplotlib
      pip install pytz

    Funções

    • MT5Initialize — estabelece a conexão com o terminal MetaTrader 5
    • MT5Shutdown — fecha a conexão previamente estabelecida com o terminal MetaTrader 5
    • MT5TerminalInfo — obtém o status e os parâmetros do terminal MetaTrader 5 conectado
    • MT5Version — retorna a versão do terminal MetaTrader 5
    • MT5WaitForTerminal — aguarda enquanto o terminal MetaTrader 5 se conecta ao servidor de negociação
    • MT5CopyRatesFrom — recebe barras do terminal MetaTrader 5 a partir da data especificada
    • MT5CopyRatesFromPos — recebe barras do terminal MetaTrader 5 a partir do índice especificado
    • MT5CopyRatesRange — recebe barras no intervalo de datas especificado a partir do terminal MetaTrader 5
    • MT5CopyTicksFrom — recebe ticks do terminal MetaTrader 5 a partir da data especificada
    • MT5CopyTicksRange — recebe ticks no intervalo de datas especificado a partir do terminal MetaTrader 5


  2. Otimizadas as seções "Mercado" e "Sinais". Agora os mostruários de produtos e de sinais funcionam até sete vezes mais rápido, tornando o trabalho com serviços de negociação integrados mais confortável.




  3. Adicionado suporte para "Mercado", "Sinais" e "Pesquisa" no Wine. Agora usuários de Linux e de Mac OS têm acesso à maior loja de aplicativos de negociação e ao serviço de cópia automática de operações.




  4. Sistema embutido de aprendizado traduzido para mais de 30 idiomas, incluindo espanhol, chinês, português e alemão. Para ver dicas interativas em outro idioma, basta alternar o idioma da interface através do menu Exibir.




  5. Adicionado o recurso para confirmar telefones e e-mail, especificado ao abrir contas preliminares e de demonstração.

    A verificação de dados é determinada pela corretora. Se estiver habilitada, ao solicitar uma conta, os códigos de confirmação serão automaticamente enviados ao trader, e campos especiais aparecerão na caixa de diálogo para serem preenchidos:




    Os códigos de confirmação são válidos por vários minutos. Se, no tempo previsto, ele não os usar para abrir uma conta, o procedimento precisará ser repetido.

    Antes de enviar os códigos, o sistema verifica se o telefone/e-mail especificado foi confirmado anteriormente. Se o trader já tiver realizado a verificação desses dados de seu computador, a abertura de conta ocorrerá como antes — sem confirmação adicional. Assim, os traders não enfrentarão dificuldades ao solicitar contas.

  6. Estendidas possibilidades de pagamento para serviços MQL5.community através do sistema PayPal. Agora, você pode fazer compras com um clique.

    Como isso funciona
    Durante a compra, após a autorização com sua conta do PayPal, você pode autorizar pagamentos adicionais à nossa empresa:





    Se você concordar, você pode fazer todas as compras subsequentes com um clique, simplesmente pressionando o botão de uma conta salva anteriormente:




    Se você clicar em "Cancelar e retornar para MetaQuotes Software Corp.", você continuará a fazer pagamentos como antes, fazendo login no PayPal manualmente a cada compra.
    O site MQL5.com/plataforma MetaTrader 5 não armazena seus detalhes de pagamento. A verificação de dados no caso de depósito na conta, compra no Mercado ou assinatura de Sinal é realizada do lado do sistema de pagamento.
    Você sempre pode se recusar a vinculação de sua conta do PayPal e comprar serviços como de costume.

  7. Inúmeras melhorias e otimização do trabalho do testador de estratégias.

    Fizemos um enorme trabalho oculto sobre a otimização interna do testador de estratégia e sobre a correção de erros. Tudo isso acelerou muito o teste em várias tarefas e também aumentou a estabilidade geral do trabalho. Principais melhorias:

    Trabalho com frames
    Significativamente otimizado trabalho com frames em agentes locais, de rede e de nuvem. Agora eles são processados mais rapidamente e nunca são ignorados.
     
    Distribuição de tarefas entre agentes
    Agora, durante a execução da otimização, o testador de estratégias pode redistribuir tarefas em tempo real. Se um novo agente estiver disponível (ou um dos anteriormente utilizados tiver sido liberado), o testador gerará automaticamente para ele um pacote de tarefas, daquelas que já foram distribuídas entre outros agentes. Da mesma forma, as tarefas são redistribuídas quando são detectados agentes muito lentos — suas tarefas são emitidas simultaneamente para outros agentes a fim de concluir a otimização mais rapidamente.

    Também acelerada significativamente a distribuição de tarefas no modo de cálculos matemáticos.
     
    Estatísticas de otimização no diário
    Expandido o log do processo de otimização — são exibidas estatísticas de uso mais detalhadas da MQL5 Cloud Network, ativação/desativação de agentes da nuvem, etc.

    Trabalho no modo de logs de otimização completos
    Para economizar recursos durante a otimização, o log do testador de estratégias não exibe todas as mensagens dos agentes. Para forçá-los a exibir, é fornecido o modo "Logs de otimização completos", o qual é ativado através do menu de contexto do log do testador. Anteriormente, a inclusão desse modo diminuía significativamente o processo de otimização, agora quase não tem efeito no tempo de cálculo.

    MQL5 Cloud Network
    Otimizados agentes de teste de nuvem. Agora as tarefas são distribuídas de maneira mais eficiente.

  8. O calendário embutido inclui mais de 900 indicadores de 18 das maiores economias do mundo: Estados Unidos, União Europeia, Japão, Reino Unido, etc. Todos os dados são coletados em tempo real a partir de fontes primárias, permitindo responder à situação global oportunamente e tomar decisões de negociação informadas.

    O calendário econômico está disponível não apenas em terminais e sites, mas também em dispositivos móveis. O aplicativo desejado agora pode ser diretamente acessado do menu de contexto do calendário no terminal:




    Escolha sua plataforma e baixe o aplicativo Tradays:


    Além de todas as funções do calendário da plataforma desktop, a versão móvel pode criar lembretes de eventos, bem como um histórico completo de indicadores na forma de gráficos e tabelas.

  9. Adicionada geração automática de histórico de barras para instrumentos personalizados ao importar o histórico de ticks. Agora, ao alterar dados de ticks de um instrumento personalizado, as barras correspondentes são automaticamente recalculadas:

    • Isso permite evitar discrepâncias de dados.
    • Depois de importar os dados de ticks (se suficientemente completo), o terminal os calcula por si mesmo, sem perder tempo importando barras manualmente.

    As alterações dizem respeito à importação de tiques através da interface do terminal e à atualização de tiques através de programas MQL5 usando a função CustomTicks*. Quaisquer alterações nos dados de ticks levam ao recálculo das barras de minutos correspondentes do instrumento personalizado.

  10. Corrigida a atualização de informações na "Janela de dados" ao usar o cursor em forma de cruz no gráfico desencaixado.
  11. Corrigido armazenamento do histórico de ticks. Anteriormente, quando havia vários ticks em um milissegundo, a ordem ao salvar os ticks podia ser violada.
  12. Corrigida plotagem de gráficos com um histórico de preços muito curto (menos de um dia) no servidor.

MQL5

  1. Adicionado o suporte a depuração de serviços MQL5. Agora você pode verificar programas de forma semelhante a EAs e indicadores.
  2. Novos tipos de cálculo de lucro e de margem adicionados à enumeração ENUM_SYMBOL_CALC_MODE:

    • SYMBOL_CALC_MODE_EXCH_BONDS — cálculo para títulos de bolsa de valores.
    • SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX — cálculo para ações negociadas na Bolsa de Valores de Moscou.
    • SYMBOL_CALC_MODE_EXCH_BONDS_MOEX — cálculo para títulos do tesouro negociados na Bolsa de Valores de Moscou.

  3. Adicionada a função TesterDeposit que permite emular a operação de depósito de dinheiro na conta durante o processo de teste. A função pode ser útil ao verificar várias estratégias de gerenciamento de dinheiro.
    bool  TesterDeposit(
       double money      // montante do depósito
       );
  4. Agora durante a execução do método OnDeinit o programa MQL5 não recebe nenhum evento do terminal. Anteriormente, os programas não conseguiam concluir corretamente a desinicialização (por exemplo, excluir todos os objetos por trás deles) devido ao recebimento de outros eventos.
  5. Corrigidos erros que ocorriam ao alterar o histórico de ticks do dia atual em ferramentas de negociação personalizadas.
  6. Corrigido um bug que fazia com que o programa diminuísse seu desempenho ao usar um grande número (dezenas de milhares) de objetos gráficos.
  7. Corrigida latência do terminal devido ao acesso frequente ao histórico de negociação a partir de programas MQL5.
  8. Corrigido erro da função iBarShift. Ao marcar o item "exact=false" e solicitar fora do intervalo, era retornado o número da barra mais antiga, excluindo a mais recente.

Tester

  1. Corrigida a definição de número de núcleos em computadores com processadores com vários nós NUMA.
  2. Adicionada a possibilidade de executar testes e otimização com depósito inicial zero, agora você pode emular o depósito de fundos durante testes usando a nova função TesterDeposit.

MetaEditor

  1. Agora o comando estilo de código pode ser adicionado à barra de ferramentas para acesso rápido.
  2. Corrigida a transição para a definição e exibição de informações sobre os parâmetros ao usar caracteres não-Unicode como nomes e variáveis de função.

Documentação atualizada.

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