O que há de novo no MetaTrader 5?

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

21 outubro 2021
MetaTrader 5 build 3090: melhorias de desempenho

Terminal

  1. Corrigido um bug que em alguns casos acabava por fazer desaparecer ferramentas de negociação personalizadas.
  2. Aprimorados ícones de menu e de barra de ferramentas.
  3. Adicionados três novos idiomas no MQL5.com: francês, italiano e turco.

    Já é o decimo primeiro idioma disponível na maior comunidade de traders - MQL5.community. Traduzimos completamente a interface e a documentação do site, bem como várias dezenas de tópicos importantes do fórum. A tradução de artigos e calendário econômico estará disponível em breve.

  4. Correções de crash-logs.

MQL5

  1. Corrigidos bugs que causavam problemas com a função StringConcatenate.
  2. Corrigida a configuração do valor _LastError ao usar a função FileSave. Em alguns casos, em vez de descrever o erro ocorrido na função, a variável acabava por conter um valor nulo.
  3. Corrigida a importação de dados desde recursos em matrizes de tipo double.
MetaTester
  1. Corrigido um erro que fazia com que a janela do gráfico travasse durante o teste visual.
Documentação atualizada.
14 outubro 2021
MetaTrader 5 build 3081: melhorias nos serviços MQL5 e design atualizado

Terminal

  1. Aprimorada navegação pelos serviços da MQL5.community.

    As subseções Mercado, Sinais e Hospedagem foram movidas da área de trabalho para o Navegador. Isso facilitará encontrar produtos, bem como gerenciar suas compras e assinaturas. Para cada serviço foi adicionada uma seção "Como funciona" com informações úteis sobre como usá-lo.


    Aprimorada navegação pelos serviços da MQL5.community


  2. Completamente atualizados ícones para todos os menus, barras de ferramentas e diálogos. Graças a eles, a interface do terminal e do MetaEditor se tornou mais fácil de entender:

    • Reduzido o número de detalhes pequenos que são difíceis de distinguir
    • Usadas menos cores, reduzindo o ruído de cor
    • Usados menos gradientes, melhorando a legibilidade
    • Usadas metáforas mais compreensíveis


    Na plataforma foram atualizados todos os menus, barras de ferramentas e diálogos


  3. Adicionada exibição de custos no histórico de negociação ao efetuar operações. Este recurso é usado por corretoras regulamentadas da NFA.


    O histórico da conta agora mostra os custos de transação


    Se sua corretora habilitar o cálculo da indicador correspondente, "Custos" aparecerá entre as colunas disponíveis no histórico de negociação. Essa medida mostra o custo da transação em relação ao preço médio do instrumento (mid-point spread cost).

  4. Adicionado suporte para a versão coreana do site MQL5.com.

    Já é o oitavo idioma disponível na MQL5.community. Traduzimos completamente a interface do site, artigos, calendário econômico, tópicos importantes do fórum. A tradução da documentação do MQL5 aparecerá em breve.

  5. Corrigido o carregamento de instrumentos de negociação personalizados. Em alguns casos, as configurações de símbolos recém-criados podiam substituir as configurações dos símbolos existentes.
  6. Corrigida a exibição do histórico de negociação de sinal no gráfico. Quando essa opção era habilitada, as operações eram marcadas no gráfico para todos os instrumentos de uma vez, e não apenas para o instrumento do gráfico.
  7. Adicionada exportação da coluna "Coletar" para o relatório do histórico de negociação. Anteriormente, esse indicador era exibido apenas no histórico, e não era salvo em um arquivo.
  8. Otimizada e acelerada significativamente a operação de painéis para negociação com um clique na Observação do Mercado e em gráficos.
  9. Corrigido o funcionamento do campo "Taxas de margem" para instrumentos de negociação customizados. Em alguns casos, os pontos de ajuste podiam ser redefinidos para zero.
  10. Continua o aprimoramento do serviço de assinaturas para corretoras. Corrigidos erros na janela de assinatura de cotações.
  11. Corrigida a exibição do objeto analítico "linha de tendência". Ele podia desaparecer ao dimensionar e redimensionar a janela do gráfico.
  12. Corrigida a exibição do objeto analítico "retângulo". Quando um dos pontos de ancoragem saía da área de visibilidade do gráfico, o objeto podia desaparecer.
  13. Corrigido e significativamente acelerado o trabalho dos bate-papos integrados da MQL5.community.
  14. Corrigido o arredondamento do parâmetro "Custo" na lista de posições abertas. Anteriormente, a parte fracionária do valor podia não ser mostrada.
  15. Corrigida a validação de telefones celulares durante a abertura de contas. Para algumas operadoras da China, o telefone era detectado como especificado incorretamente.
  16. Adicionado suporte para senhas com mais de 32 caracteres em contas MQL5.
  17. Corrigida a exportação de certificados ao trabalhar no Wine. Este recurso é usado para contas com autenticação estendida ao migrar de desktop para celular.
  18. Corrigido o funcionamento dos botões para alternar para serviços MQL5 localizados no painel inferior da janela "Ferramentas". Quando a janela era desencaixada, os botões ficavam inativos.
  19. Limitado o tamanho do menu "Arquivo \ Novo gráfico": não mais do que 128 submenus com grupos de símbolos e não mais do que 32 símbolos em cada submenu. Isso permite que você agilize o terminal e evite bloqueios ao adicionar um inúmeros instrumentos (2 000 e mais) à "Observação do mercado".

MQL5

  1. Continuamos a trabalhar o suporte para vetores e matrizes. As novas funções irão expandir significativamente as possibilidades para desenvolvedores de soluções baseadas em redes neurais.
  2. Adicionados os valores DEAL_SL e DEAL_TP à enumeração ENUM_DEAL_PROPERTY_DOUBLE - níveis de stop-loss e take-profit da operação de negociação.

    Para operações de entrada e reversão, essas propriedades são definidas de acordo com o valor de stop-loss/take-profit das ordens que desencadearam sua execução. Para operações de saída, são usados os valores de stop-loss/take-profit das devidas posições quando estas últimas são encerradas.

  3. Adicionado o valor MQL_HANDLES_USED à enumeração ENUM_MQL_INFO_INTEGER - o número de objetos de classes ativos (identificadores) em um programa MQL. São levados em conta objetos dinâmicos (criados por meio de novos) e não dinâmicos, variáveis globais/locais ou membros de classe. Quanto mais identificadores um programa usa, mais recursos ele consome.

  4. Adicionados novos métodos para trabalhar com a estrutura MqlCalendarValue que descreve um evento no calendário econômico:

    • HasActualValue(void) — retorna true se o valor real do evento estiver definido, caso contrário, false
    • HasForecastValue(void) — retorna true se o valor do evento de previsão estiver definido, caso contrário, false
    • HasPreviousValue(void) — retorna true se o valor do evento anterior estiver definido, caso contrário, false
    • HasRevisedValue(void) — retorna true se o valor revisado do evento estiver especificado, caso contrário, false
    • GetActualValue(void) — retorna o valor atual do evento (double) ou nan se não estiver definido
    • GetForecastValue(void) — retorna o valor de evento de previsão (double) ou nan se não estiver definido
    • GetPreviousValue(void) — retorna o valor do evento anterior (double) ou nan se não estiver definido
    • GetRevisedValue(void) — retorna o valor do evento revisado (double) ou nan se não estiver definido

  5. Corrigida a depuração de programas MQL5 usando bibliotecas na forma de arquivos EX5.
  6. Acelerada compilação de programas que contêm grandes matrizes inicializadas por uma sequência.
  7. Corrigido um bug na função CopyTicksRange que ocorria ao trabalhar com dados de instrumentos de negociação personalizados. Em alguns casos, a função retornava dados que não correspondiam ao período solicitado.
  8. Corrigida a verificação de presença dos parâmetros do modelo ao especializar por parâmetros. Em alguns casos, a compilação do código com modelos sob depuração causava o erro "code generation error".

Signals

  1. Adicionada a capacidade de renovar automaticamente a assinatura de Sinais.

    Agora você não precisa se preocupar com o término abrupto de sua assinatura. Quando o prazo expirar, o sistema o renovará automaticamente por mais um mês usando a mesma forma de pagamento usada na compra.


    Ative a renovação automática da assinatura de Sinal


    Se durante o pagamento foi selecionado um cartão, mas o pagamento para a renovação falhar, o sistema tentará usar o saldo de sua conta MQL5.

    Não se preocupe com alterar o preço da assinatura. Se o preço aumentar, não haverá renovação automática. Você será notificado sobre isso pelo e-mail especificado em sua conta MQL5.

    A renovação automática pode ser habilitada ou desabilitada a qualquer momento por meio da seção "Minhas assinaturas" em MQL5.com.


    Gerencie a renovação automática na seção "Minhas assinaturas" em MQL5.com


  2. Corrigidos erros na exibição do mostruário de sinais. Agora o sistema passará a considerar mais corretamente a compatibilidade dos sinais com a conta atual.

Market

  1. Adicionada pesquisa por nome e login do autor do produto no mostruário do Mercado. Anteriormente, a pesquisa só funcionava por nome e descrição de produto.

VPS

  1. Aprimorado sistema de renovação automática de assinatura de VPS.

    Anteriormente, você só podia pagar pela renovação automática com o saldo da sua conta MQL5. Dessa forma, para que a renovação fosse realizada, era necessário ter o saldo suficiente.

    Agora você não precisa se preocupar com o reabastecimento de conta em tempo hábil. Para renovação automática, o sistema usará o mesmo método de pagamento que você usou quando efetuou a assinatura pela primeira vez. Se você pagou a hospedagem com cartão e ativou a renovação automática, quando o período atual expirar, o sistema renovará a assinatura pelo mesmo valor, após debitar o devido valor do mesmo cartão. Se o pagamento com cartão falhar, o sistema tentará usar o saldo da sua conta MQL5 como antes.


    Agora você pode usar cartões e outros métodos de pagamento para renovação automática


    Com a nova função, você pode ter certeza de que sua assinatura não irá expirar, seus EAs continuarão a trabalhar e a cópia de sinais não será interrompida. Você não precisa verificar e carregar seu saldo manualmente.
    A função funciona apenas para novas assinaturas. Para as existentes, será utilizado o antigo esquema de renovação automática com pagamento através do saldo da conta MQL5.

Tester

  1. Corrigido um bug no teste visual. Em alguns casos, os indicadores usados no Expert Advisor não eram exibidos no gráfico.

MetaEditor

  1. Corrigida a transição para a declaração de função ou variável usando as teclas Alt+G. Se a declaração estava abaixo da linha de origem da chamada, a transição não era feita.
  2. Adicionada exibição de tipo de objeto para referências a objetos de classe no depurador.
  3. Adicionado suporte para exibir 'union' na lista de expressões observadas.

MetaTrader 5 iPhone/iPad, MetaTrader 5 Android

  1. Adicionada a exibição de caixa de diálogo de isenção de responsabilidade ao iniciar o aplicativo. Por favor, leia com atenção. Além disso, algumas corretoras podem criar contas de demonstração para você automaticamente ao iniciar o aplicativo pela primeira vez. Nesse caso, será exibida uma caixa de diálogo avisando sobre as regras.


    Adicionados alertas especiais no MetaTrader 5 para iPhone/iPad

  2. Adicionada a capacidade de conectar uma conta ao monitoramento no serviço "Sinais" diretamente do aplicativo móvel. Para fazer isso, selecione "Monitoramento de conta" no menu. Por conveniência, o número da conta e o nome da corretora são imediatamente colocados na janela de registro. Você só precisa especificar o nome do sinal e a senha do investidor.

    Ao conectar a conta ao monitoramento, você receberá estatísticas avançadas sobre sua negociação, poderá compartilhar os resultados com outros operadores, bem como vender sinais.

  3. Adicionado suporte para Huawei AppGallery e HMS Services para terminais móveis com sistema operacional Android. Os proprietários de smartphones Huawei poderão instalar o aplicativo desde sua loja e trabalhar com notificações push.

Documentação atualizada.

18 junho 2021
MetaTrader 5 build 2980: Notificações push sobre operações de negociação

Terminal

  1. Adicionada a possibilidade de receber notificações Push sobre operações a partir do servidor de negociação - funcionam mesmo quando o terminal está desligado.



    Anteriormente, você só podia receber notificações em dispositivos móveis a partir de seu próprio terminal desktop. Assim que uma operação comercial era realizada, o terminal enviava uma mensagem para a MetaQuotes ID especificada nas configurações. Consequentemente, isso só funcionava enquanto permanecia ligado. Agora não existem tais restrições. Se um Take Profit for acionado no servidor e seu computador estiver desligado, você receberá uma notificação sobre o fechamento da posição em seu dispositivo móvel.

    Para receber notificações do servidor, você deve:
    • Ter uma conta real, uma vez que as notificações vindas do servidor não funcionam para contas de demonstração
    • Instalar o terminal móvel MetaTrader 5 em seu smartphone para iOS ou Android
    • Abrir a seção de mensagens, encontrar sua MetaQuotes ID e especificá-la nas configurações do terminal desktop
    • Habilitar as notificações do servidor nas configurações do terminal desktop

    A disponibilidade e os detalhes das notificações dependem da sua corretora

    São suportados três tipos de notificações: sobre ordens, sobre operações e sobre operações de balanço. Se esta opção estiver ativada, os tipos de notificações disponíveis serão exibidos no log do terminal:
    '1222': subscribed to deals, orders, balance notifications from trade server

  2. Atualizamos o mostruário do VPS MetaTrader, tornando-o mais moderno e conveniente:
    • A interface se adapta a qualquer largura de tela.
    • O mostruário ocupa menos espaço em altura para caber sempre na janela de trabalho.
    • As informações necessárias aparecem apenas no momento em que são requeridas. Até que você tenha escolhido uma tarifa, não serão mostrados detalhes adicionais de pagamento.



  3. Comandos para mudança rápida para serviços MQL5 e a janela "Ferramentas" foram adicionados ao painel do Testador de Estratégia. Eles são exibidos apenas na seção "Visão Geral"; nas outras guias, o painel é usado para gerenciar os testes.



  4. Adicionado o estado salvo de janela para serviços MQL5. Se você deixar o Mercado aberto antes de desligar o terminal, irá encontrá-lo no mesmo estado na próxima vez que o ligar.
  5. Corrigida a sincronização periódica do estado de uma conta MQL5. Em alguns casos, o erro podia impedir a cópia de sinais.
  6. Corrigida a exibição de uma seleção de produtos recomendados no Mercado.
  7. Corrigido o funcionamento do menu de contexto de sinais no Navegador. Usando-o, você pode ir para ver o sinal ao qual você está inscrito, bem como cancelar a inscrição.

MQL5

  1. Corrigido erro no funcionamento do operador "-" durante a implementação de números complexos na biblioteca padrão (arquivo MQL5\Include\Math\Alglib\complex.mqh).
  2. Agora você pode usar qualquer expressão na inicialização de seqüências, não apenas constantes. Isto melhorará a usabilidade e a compatibilidade com o código C++.
    struct POINT
      {
       int x,y;
      };
    
    int GetYFunc(y)
      {
       return(y * y);
      }
    
    void SomeFunction(int x1,int x2,int y)
      {
       POINT pt={ x1+x2, GetYFunc(y) };
       ProcessPoint(pt);
      };
  3. Corrigido um erro que ocorria durante a compilação union ao manipular grandes quantidades de dados.
  4. Corrigida a operação da função StringToCharArray. Agora ela converte toda a string passada numa matriz Char, em vez de parar no primeiro caractere nulo de término.
  5. Adicionado controle sobre a presença explícita de uma chamada de construtor no código para classes/estruturas cuja a classe pai não tem um construtor padrão.

MetaEditor

  1. Adicionada exibição do local de chamada para funções inline no relatório do criador de perfil.
    No exemplo abaixo, a chamada de func(); agora é destacada:




    A função func em si não é destacada, pois seu código está completamente colocado em OnStart.

  2. Adicionada a capacidade de criar um projeto em branco. Isso será útil para o desenvolvimento fora do padrão com sua própria estrutura de arquivo, quando os modelos padrão não são adequados.



    Quando você cria um projeto desta forma, apenas um arquivo de configurações vazio "mqproj" é criado. Os arquivos para o código fonte devem ser criados por você mesmo depois.

  3. Acelerada a inicialização do MetaEditor.
  4. Corrigido um erro de exibição de dados na lista de expressões observadas durante a depuração. Em alguns casos, podia mostrar valores das variáveis de maneira incorreta.
  5. Corrigida a adição automática da extensão ".py" aos arquivos de scripts em Python criados usando o MQL Wizard.

Documentação atualizada.
21 maio 2021
MetaTrader 5 build 2940: Transferência dos mostruários dos Serviços MQL5 para o espaço de trabalho e atualização do design

Terminal

  1. Os serviços "Mercado", "Sinais" e "Hospedagem Virtual" foram transferidos para a área de trabalho principal da plataforma para um trabalho mais conveniente.
    Anteriormente, as seções para comprar serviços MQL5 estavam localizadas na janela "Ferramentas", onde apenas um pequeno espaço estava disponível. A área de trabalho principal, por outro lado, permite mostrar aos usuários mostruários completos, onde eles podem selecionar convenientemente os produtos desejados. Ao mesmo tempo, menos guias na caixa de ferramentas facilitarão trabalhar com outras funções da plataforma.



    Tentamos garantir que o acesso a serviços adicionais não dificulte as principais tarefas dos traders - negociação e análise de gráficos:
    • As guias de serviço estão localizadas no final, após todos os gráficos.
    • Se as janelas de serviço não forem necessárias, elas podem ser simplesmente fechadas. Você pode acessá-las facilmente através do "Navegador", da barra de ferramentas ou do menu "Serviços".

    Além da transferência, redesenhamos completamente os serviços. Tornaram-se mais leves e modernos. Os sinais agora contêm dados adicionais que antes estavam disponíveis apenas na vitrine do site MQL5.community: um diagrama de teia com as principais características, um indicador de confiabilidade e atividade, etc.



  2. Adicionado o suporte completo para endereços IPv6.
    O IPv4, que agora é usado em todas as redes, foi inventado há mais de 30 anos. Ele contém endereços IP de 32 bits e é representado como quatro números de 8 bits, separados por pontos. Isso permite ter mais de quatro bilhões de endereços IP exclusivos. No entanto, agora o número de dispositivos e sites em todo o mundo cresceu tanto que os endereços não são mais suficientes para todos os interessados.

    Nesse sentido, os produtos estão gradualmente migrando para o suporte paralelo a um protocolo mais moderno - IPv6. Ele contém um endereço de 128 bits e é representado como x:x:x:x:x:x:x:x, onde cada letra x é o valor hexadecimal dos seis elementos de 16 bits do endereço. Este formato permite obter 5 x 10 ^ 28 endereços exclusivos. Além do espaço de endereço significativamente maior, o protocolo tem várias outras vantagens sobre a versão anterior. Você pode ler sobre isso em artigos especializados.

    Mais importante ainda, a plataforma MetaTrader 5 agora está totalmente pronta para IPv6. Se sua corretora ou fornecedor o transferir para um novo esquema de trabalho, você não sentirá nenhuma mudança e continuará a negociar sem obstáculos.

  3. Continuamos a melhorar o gerenciador de tarefas apresentado no build 2815. Agora, para gráficos nos quais a depuração ou criação de perfil de programas MQL5 está em execução, há uma indicação explícita disso.



  4. Acelerada a inicialização da plataforma no Wine em computadores macOS e Linux. Realizamos uma otimização substancial do funcionamento - corrigimos erros:
    • Aprimorada exibição de menus, barras de ferramentas e caixas de diálogo.
    • Corrigidos erros na exibição das seções "Mercado", "Sinais" e "VPS". Em particular, corrigimos o carregamento de logotipos de produtos no mostruário do "Mercado".
    • Atualizado o pacote DMG para fácil instalação do MetaTrader 5 em computadores macOS. Ele facilita a instalação da plataforma como um aplicativo normal - basta arrastar o ícone da plataforma para Applications e esperar até que a instalação seja concluída.
      O pacote inclui componentes adicionais necessários para um trabalho mais estável e rápido. Aqueles que o usam são fortemente aconselhados a reinstalar o MetaTrader 5 a partir do link https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/MetaTrader5.dmg
    Se você usar CrossOver, reinstale completamente o MetaTrader 5 nele para obter a versão de 64 bits mais recente da plataforma.

  5. Corrigida a operação do atalho de teclado "Ctrl+F9". Agora muda o foco para a guia de negociação em "Caixa de Ferramentas".

MQL5

  1. Continuamos abandonando tecnologias antigas, incluindo componentes de 32 bits:
    • Terminais de 32 bits não podem mais carregar programas a partir do "Mercado".
    • Terminais de 32 bits não podem usar o serviço de hospedagem.
    • No MetaEditor de 32 bits, a função de proteção adicional de arquivos via MQL5 Cloud Protector já não está mais disponível.
    • Os programas MQL5 compilados em versões muito antigas do MetaEditor (lançado há 5 anos ou mais) não serão executados na nova versão do terminal.

    O suporte para a versão de 32 bits da plataforma parou há um ano no build 2361. Recomendamos fortemente a atualização para a versão de 64 bits do MetaTrader 5 para usar todos os recursos da plataforma.
    Todos os vendedores que fizeram upload de versões de produtos de 32 bits no Mercado são fortemente aconselhados a recompilá-los no MetaEditor de 64 bits mais recente e carregar as versões atualizadas. Nas próximas versões, desabilitaremos completamente a capacidade de inicialização de programas MQL5 de 32 bits em terminais.

MQL5

  1. Adicionado suporte para trabalhar com números complexos.
    Adicionado novo tipo integrado "complex".
    struct complex
      {
       double             real;   // parte real
       double             imag;   // parte imaginária
      };
    O tipo "complex" pode ser passado por valor como um parâmetro para funções MQL5 (ao contrário de estruturas comuns, que são passadas apenas por referência). Para funções importadas a partir de DLLs, o tipo "complex" deve ser passado apenas por referência.

    O sufixo 'i' é usado para descrever constantes complexas:
    complex square(complex c)
      {
       return(c*c);
      }
      
    void OnStart()
      {
       Print(square(1+2i));  // como parâmetro é passada a constante
      }
    
    // será exibido "(-3,4)", que é uma representação de string para um número complexo
    Para números complexos, atualmente estão disponíveis apenas operações simples: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

    No futuro, funções matemáticas adicionais serão adicionadas: obtenção do valor absoluto, seno, cosseno e muitos outros.

  2. Adicionado código de erro TRADE_RETCODE_HEDGE_PROHIBITED - abrir uma posição ou colocar uma ordem pendente é impossível, uma vez que posições sobrepostas são proibidas. Um erro é retornado ao tentar realizar uma operação de negociação se o hedge for proibido e se a conta do usuário já tiver uma posição ou ordem na direção oposta para o mesmo símbolo.

MetaEditor

  1. Corrigida a interrupção da depuração e criação de perfil no modo não visual.
  2. Corrigida a criação de perfil de indicadores baseados em dados reais. Em alguns casos, não podia iniciar.

VPS

  1. Corrigido bug de migração do ambiente para um VPS. Ele surgia quando um Expert Advisor portátil tinha um indicador na forma de recurso.

Sinais

  1. Corrigida a verificação do modo de negociação ao copiar sinais. A negociação de instrumentos pode ser limitada no lado da corretora: poderão vir a ser permitidas apenas posições longas, apenas posições curtas ou apenas posições fechadas. Anteriormente, para uma cópia bem-sucedida, o serviço exigia permissão total para negociar, caso contrário, a sincronização era interrompida. Símbolos com negociação parcialmente permitida agora também serão considerados "negociáveis". Os clientes das corretoras bolsistas poderão copiar sinais sem obstáculos.

Tester

  1. Corrigida a verificação da sessão de negociação durante o teste. Em alguns casos, as operações de negociação durante o teste podiam falhar com o erro "market closed", apesar do fato de serem parte da sessão de negociação.
Documentação atualizada.
2 abril 2021
MetaTrader 5 build 2875: Melhorias e correções

Terminal

  1. Corrigido um erro que fazia com que a atualização dos programas MQL5 padrão fossem copiados para a raiz do diretório de dados do terminal e não, para o subdiretório MQL5. Da mesma forma, os usuários podem encontrar Experts, Images, Include, etc.

    Ao atualizar para uma nova versão da plataforma, diretórios desnecessários serão excluídos automaticamente após verificação adicional.

Terminal

  1. Corrigido um erro que, em alguns casos, tornava impossível fazer login no chat da MQL5.community embutido no terminal.

Tester

  1. Corrigida a otimização de EAs via MQL5 Cloud Network. Em alguns casos, ela não podia ser inicializada.

MetaEditor

  1. Corrigidos erros e travamentos ao depurar e criar perfis de programas MQL5.

Documentação atualizada.
26 março 2021
MetaTrader 5 Build 2860: melhorias para Wine e expansão da integração com SQL

Terminal

  1. Adicionada a capacidade de ativar/desativar serviços adicionais da MQL5.community. Por exemplo, se você não está interessado em artigos sobre programação em MQL5 ou em copy-trading do serviço Sinais, você pode desativá-los para economizar recursos e espaço de trabalho do terminal.



    Todos os serviços são ativados por padrão.

  2. Realizada uma otimização grande do terminal para o Wine em computadores com macOS e Linux:
    • Agora as janelas de serviço desencaixadas (Navegador, Ferramentas) não podem ser arrastadas para fora do terminal. Anteriormente, em tais casos, os usuários podiam ter dificuldade para retornar as janelas para os limites do terminal.
    • Corrigido o redimensionamento do conteúdo da janela de serviço ao redimensionar a própria janela.
    • Corrigida a exibição de métricas de desempenho no Gerenciador de Tarefas.
    • Aprimorada exibição de ícones na barra de ferramentas.
    • Corrigido contador de mensagens não lidas no bate-papo.
    • Corrigida exibição dos comandos do sistema gráfico: Ocultar, Expandir, Fechar.
    • Corrigida a exibição do log.
    • Corrigida a exibição de dicas de ferramentas para gráficos.
    • Corrigido o funcionamento de comandos para impressão de gráficos.
    • Corrigida a exibição do menu superior ao usar temas de exibição no Linux.
    • Corrigida a pesquisa via GitHub, MSDN e Stack Overflow no MetaEditor.

    Recomendamos que todos os usuários façam upgrade para a última versão estável do Wine. Isso aumentará a velocidade e a confiabilidade da plataforma.
  3. Adicionado suporte para ordens "Market To Limit" ao negociar na Bolsa de Valores de Istambul (BORSA Istambul). Inicialmente, tal ordem é executada como uma ordem de mercado, mas se não houver liquidez suficiente, o restante é colocado no livro de ofertas na forma de uma ordem limitada com o preço da última transação.
  4. Corrigida a exibição do gráfico de volatilidade. Agora é plotado levando em consideração o prazo de validade selecionado no quadro de opções.
  5. Corrigida a adição de instrumentos de negociação à Observação do Mercado por meio da barra de pesquisa rápida. Quando havia um espaço no nome do instrumento, este não era adicionado à lista.




MQL5

  1. Expandidas as possibilidades para trabalhar com bancos de dados SQL. Agora você pode usar uma variedade de funções estatísticas e matemáticas em suas consultas.

    Funções estatísticas
    • mode — moda
    • median — mediana (50º percentil)
    • percentile_25 — 25ºpercentil
    • percentile_75 — 75º percentil
    • percentile_90 — 90º percentil
    • percentile_95 — 95º percentil
    • percentile_99 — 99º percentil
    • стандартное отклонение выборки
    • stddev или stddev_samp — desvio padrão da população
    • variance or var_samp — variância da amostra
    • var_pop — variação da população

    Funções matemáticas

    Exemplo
    select
      count(*) as book_count,
      cast(avg(parent) as integer) as mean,
      cast(median(parent) as integer) as median,
      mode(parent) as mode,
      percentile_90(parent) as p90,
      percentile_95(parent) as p95,
      percentile_99(parent) as p99
    from moz_bookmarks;
  2. Adicionados novos macros:
    • __COUNTER__ — em cada chamada é aumentado em 1. Contadores separados são mantidos quando usados em modelos e macros.
    • __RANDOM__ — gera um número ulong aleatório, é semelhante à função MathRand.

  3. Corrigida a operação de solicitações síncronas para o gráfico nos casos em que o símbolo do gráfico não existe. Agora, em vez de esperar indefinidamente pelo resultado, as funções retornarão um erro. Um evento de símbolo inexistente pode surgir ao alternar entre contas de negociação com um conjunto diferente de instrumentos de negociação disponíveis.
  4. Otimizado e acelerado significativamente o trabalho das funções CopyTicks *.

MetaEditor

  1. Alterado a ordem de perfilamento e depuração com base em dados históricos.

    A criação de perfil agora é sempre feita no modo não visual. A depuração também é realizada no modo não visual por padrão, mas você pode alterar isso manualmente nas configurações do MetaEditor:



  2. Adicionado recurso de criação de perfil de serviços. É realizado da mesma forma que para outros tipos de programas MQL5.
  3. Corrigida exibição de nomes de funções no relatório do criador de perfil. Em alguns casos, eles podiam ser especificados como <unknown>.

Documentação atualizada.
26 fevereiro 2021
MetaTrader 5 build 2815: Acesso ao livro de ofertas desde Python, melhorias no depurador e no criador de perfil

Terminal

  1. Adicionado um recurso para obter dados do livro de ofertas através do Python API.
    Três novos recursos permitem que obter dados de forma rápida e fácil para computação estatística e aprendizado de máquina usando um grande número de bibliotecas Python prontas.
    • market_book_add — assina do terminal MetaTrader 5 para receber eventos sobre mudanças no livro de ofertas para o símbolo especificado.
    • market_book_get — retorna uma tupla desde BookInfo contendo os registros do livro de ofertas para o símbolo especificado.
    • market_book_release — cancela a assinatura do terminal MetaTrader 5 para receber eventos sobre alterações no livro de ofertas para o símbolo especificado.

  2. O comprimento máximo das mensagens push foi aumentado de 256 para 1024 caracteres. Agora você pode enviar muitas mais informações sobre dispositivos móveis desde seus programas MQL5.
  3. Adicionada uma versão preliminar do "Gerenciador de Tarefas" chamado pressionando a tecla F2.
    O Gerenciador de Tarefas é um sistema de monitoramento dos recursos consumidos pela plataforma. Ele permite ver quanta memória consomem os gráficos, quantos recursos do processador são usados pelos EAs, etc. Se algo está diminuindo a velocidade de sua plataforma, você pode detectar e corrigir o problema facilmente.



  4. Aprimorado o serviço "Assinaturas". Para instrumentos de negociação cujos dados são transmitidos com atraso, foi adicionada uma indicação especial:
    • Os símbolos na "Observação do Mercado" são marcados com um ícone de relógio, uma dica de ferramenta exibe o valor do atraso
    • Nos gráficos é exibida uma notificação sobre o atraso dos dados



  5. Corrigida a exibição da lista de assinaturas se não houver conexão com a conta de negociação.
  6. Corrigido o trabalho de links em e-mails e notícias. Eles agora abrem no navegador padrão. Anteriormente, apenas o Internet Explorer era usado para fazer isso.
  7. Corrigidas as conexões desde a função WebRequest para hosts com endereços IPv6 e proteção Cloudflare.
  8. Aprimoradas funcionalidade e capacidade de resposta do Serviço VPS.
  9. Aprimorado o trabalho da plataforma com o Wine e MacOS/Crossover, incluindo versões para macOS Big Sur com processador M1.

MQL5

  1. Corrigido um erro na função ArrayPrint. Anteriormente, em alguns casos, a função não podia exibir a matriz.
  2. Otimizadas operações de arquivo realizadas usando funções File*. Agora, ler e gravar arquivos é muito mais rápido.
  3. Removida a restrição que exigia a especificação do tamanho da segunda, terceira e quarta dimensões de um array dinâmico quando ele era usado como um parâmetro de função. Isso aumentará a capacidade de reutilização e a flexibilidade do código.
    void func(int &arr[ ][ ][ ][ ])
      {
      }
  4.  Corrigido erro na função ArrayBsearch. Ao realizar uma pesquisa binária por um valor em um array classificado, a função pode retornar incorretamente o índice do elemento encontrado.

MetaEditor

  1. Continua o trabalho com a atualização global do depurador.
    • Ao exibir arrays na janela de observação, é levada em consideração sua classificação, especificada pela função ArraySetAsSeries.
    • Adicionado suporte para variáveis estáticas locais.
    • Corrigida a exibição do valor do elemento do array especificado.
    • Corrigido o processamento de campos estáticos de classes.
    • Muitas outras correções para uma depuração mais precisa e confiável.

  2. Adicionada a opção "Habilitar otimização ao criar perfis".
    Para aumentar a granularidade do relatório de criação de perfil, você pode desativar o modo de otimização de código. Sem otimização, a velocidade do código pode cair várias vezes, mas em troca você pode ver uma cobertura de código mais ampla. Ao usar, esteja ciente de que gargalos de código serão imprecisos.
    Se você precisar de um modo de criação de perfil mais suave, desative a opção "Usar inlining ao criar perfil".




    A capacidade de gerenciar a otimização de código também está nas configurações do projeto.
    • Se a otimização estiver desabilitada no projeto, a nova opção será ignorada - a otimização está sempre desabilitada para criação de perfil (incluindo inlining).
    • Se a otimização estiver habilitada no projeto, a nova opção será levada em consideração na compilação para a criação de perfil.

  3. Adicionado registro para depuração e criação de perfil. Na inicialização, os parâmetros do ambiente são exibidos no log, já no desligamento, as estatísticas sobre os dados coletados.
    MQL5 profiler    starting 'ExpertMACD.ex5' on history with parameters:
    MQL5 profiler       symbol: 'EURUSD'
    MQL5 profiler       period: 'H1'
    MQL5 profiler       date from: '2021.01.01'
    MQL5 profiler       date to: '2021.02.22'
    MQL5 profiler       ticks mode: 'every tick'
    MQL5 profiler       execution delay: 0 ms
    MQL5 profiler       deposit: 10000
    MQL5 profiler       currency: 'USD'
    MQL5 profiler       leverage: 1:100
    MQL5 profiler       profit in pips: NO
    MQL5 profiler    profile data received (4640 bytes)
    MQL5 profiler    758 total measurements, 0/0 errors, 470 kb of stack memory analyzed
    MQL5 profiler    7782 total function frames found (1929 mql5 code, 342 built-in, 1403 other, 4108 system)

Tester

  1. Corrigida a configuração de horário não comercial nas configurações de teste avançadas.
Documentação atualizada.
15 janeiro 2021
MetaTrader 5 build 2755: Janela de cotações e depurador melhorados

Terminal

  1. Modificada a janela de cotações que permite visualizar os preços dos instrumentos em telas de qualquer tamanho.

    Agora as informações podem ser exibidas em várias colunas, o que permite um uso mais otimizado do espaço da tela. Para mudar o modo de exibição, use a caixa de diálogo de propriedades da janela.


    Além disso, foram feitas uma série de pequenas melhorias:

    • Adicionado menu de seleção de coluna. Agora tem as mesmas propriedades do instrumento que na "Observação do mercado".
    • Otimizado o trabalho com um grande número de ferramentas. Agora a janela funciona igualmente bem com 10 e 1000 ferramentas.
    • Adicionada exibição de breves informações sobre a ferramenta na dica de ferramenta.
    • Corrigida a aplicação de configurações de cores para exibir preços altistas e baixistas.

  2. Adicionada a exibição de transações no gráfico de ticks do livro de ofertas sintético.

    O livro de ofertas sintético é usado para símbolos dos quais não são transmitidos os preços de Level 2. Nele os níveis são criados automaticamente, pois eles são formados a partir dos melhores Bid e Ask com uma etapa de alteração de preço. Agora, se com base no símbolo forem transmitidos os dados sobre o preço e o volume da última transação, você pode vê-los claramente no gráfico de tick. As informações são exibidas como círculos:
    • Círculos vermelhos — transações de venda.
    • Círculos azuis — transações de compra.
    • Círculos verdes — sentido da transação não definido.

    Quanto maior o tamanho do círculo, maior será o volume da transação.



  3. Corrigido o cálculo das "gregas" no quadro de opções. O erro ocorria quando o ativo base da opção tinha um preço zero para a última transação.
  4. Continua o trabalho com o novo serviço "Assinaturas", permitindo que você compre serviços adicionais para trading. Em particular, foi corrigida a exibição de assinaturas que dependem de outras assinaturas. Essas assinaturas são usadas para serviços agrupados.
  5. Aprimorado o funcionamento da plataforma para Wine.

MQL5

  1. Adicionada a geração de eventos do gráfico ChartEvent ao soltar os botões direito e do meio do mouse. Isso pode ser usado, por exemplo, ao criar painéis gráficos. Para que os eventos funcionem, você deve desativar o menu de contexto do gráfico usando a propriedade CHART_CONTEXT_MENU.
  2. Corrigido um bug que causava um erro significativo no tempo de espera na função Sleep.

MetaEditor

  1. Começamos a trabalhar com a atualização global do depurador. Em particular, foi significativamente melhorada a janela expressões observadas. Adicionada a capacidade de visualizar o conteúdo de arrays e objetos, bem como os valores de ponteiros na forma de listas suspensas.



    Para visualizar uma matriz ou objeto, clique duas vezes sobre ele na janela de observação.

  2. Corrigido travamento ao abrir alguns projetos.
Documentação atualizada.
26 novembro 2020
MetaTrader 5 build 2715: Melhorias gerais

Terminal

  1. Corrigida a falha da plataforma ao usar o quadro de opções. Isso podia acontecer quando o tamanho do tick era definido como zero nas configurações do instrumento de negociação.
  2. Corrigidos erros na exibição da interface em monitores HiDPI.

MQL5

  1. Corrigida a conversão de string atempadamente com ajuda da função StringToTime. O erro ocorria ao especificar a hora no formato "yyyymmdd [hhmiss]".
  2. Corrigido um erro no operador de cópia implícita para objetos contendo matrizes dinâmicas. Agora, ao copiar, o tamanho do objeto de destino é reduzido ao tamanho do objeto copiado.
    struct MyStruct
    {
      string Array[];
    };
    
    void OnStart()
    {
      MyStruct a1,a2;
      ArrayResize(a1.Array,3);
      ArrayResize(a2.Array,1);
      a1=a2;
    }
    Anteriormente, como resultado da chamada de tal função, a matriz "a1" tinha tamanho 3. Agora terá tamanho 1.

MetaTester

  1. Atualizado o algoritmo para calcular a classificação dos agentes de teste na rede de computação em nuvem MQL5 Cloud Network. A classificação será determinada com mais precisão e mudará menos com o tempo.

Documentação atualizada.
12 novembro 2020
MetaTrader 5 build 2560: MetaEditor aprimorado

Terminal

  1. Corrigida a exibição do livro de ofertas sintético. Anteriormente, podia não estar disponível para alguns instrumentos.

    O livro de ofertas sintético é usada para símbolos para os quais os preços de Level 2 não são transmitidos. Os níveis nele são criados automaticamente, pois eles são formados a partir dos melhores Bid e Ask com uma etapa de alteração de preço. Ele é uma ferramenta conveniente para colocar, modificar e excluir ordens com um mínimo atrasos e de maneira clara.



MQL5

  1. Otimizado e significativamente acelerado o acesso aos preços mais recentes desde programas MQL5 usando a função SymbolInfoTick.
  2. Corrigida a redefinição dos parâmetros do indicador "Ichimoku Kinko Hyo" através da caixa de diálogo.



  3. Corrigido a operação das funções Copy* quando não há histórico para um instrumento de negociação.
  4. Continuamos trabalhando na atualização total do criador de perfil de código. Além das inovações da versão 2650 fizemos uma série de melhorias:
    • Apresentação de dados aprimorada
    • Nomes de coluna abreviados no relatório
    • Adicionada a capacidade de salvar o relatório de criação de perfil num arquivo
    • Adicionada exibição do número da linha na dica de ferramenta para funções no relatório



MetaEditor

  1. Adicionada a capacidade de desabilitar o rastreamento da área de transferência e limpar seu histórico.

    A função de rastreamento de buffer melhora a usabilidade do código-fonte acessando rapidamente os últimos dados usados. Pressione Alt+V em qualquer lugar no código-fonte, selecione qualquer uma das linhas copiadas anteriormente no menu e ela será colada no lugar.

    Para ativar/desativar o rastreamento, use o comando correspondente na barra de ferramentas ou nas configurações do editor.



  2. Corrigido erro de cálculo para algumas expressões observadas ao depurar programas.

Tester

  1. Restringida a negociação para EAs inciados no testador de estratégia no modo de recebimento de quadros.
  2. Corrigido o erro que ocorria durante a importação de resultados de otimização no testador de estratégia. Por causa disso, os valores dos timeframes podiam ser importados incorretamente.

Documentação atualizada.
9 outubro 2020
Nova versão da plataforma MetaTrader 5 build 2650: carregamento de gráficos em segundo plano e melhorias na criador de perfil de código MQL5

Terminal

  1. Adicionada a opção "Carregar com antecedência os dados dos gráficos para posições e ordens abertas".

    Para economizar tráfego, a plataforma de negociação carrega o histórico de preços dos instrumentos apenas ao serem realmente solicitados, por exemplo, ao abrir um gráfico ou ao iniciar um teste. No entanto, para instrumentos usados ativamente, isso pode nem sempre ser conveniente. Se você habilitar a nova opção, os gráficos dos instrumentos com posições abertas ou ordens pendentes serão sempre atualizados em segundo plano. Assim, ao abrir gráficos, você não precisará esperar pelo carregamento adicional de dados, uma vez que eles estarão imediatamente disponíveis para análise.




  2. Corrigida a formação de barras diárias após os finais de semana.
  3. Corrigida a atualização de gráficos. Em alguns casos, após a adição de dados de preços atualizados, os gráficos não eram reconstruídos.
  4. Otimizada a atualização do cache do histórico de negociação da conta. Isso torna possível reduzir os atrasos ao receber dados usando as funções History*.
  5. Corrigida a exibição de colunas de comentários ao visualizar o histórico de negociação na forma de posições.
  6. Corrigida a exibição do botão de renovação de assinatura de "Sinais".

MQL5

  1. Continuamos trabalhando na atualização total do criador de perfil de código. Além das inovações da versão 2615:

    Adicionados novos parâmetros
    Como anunciado na atualização anterior, para criação de perfil agora é usado o método "Sampling". O criador de perfil faz uma pausa durante a operação de um programa MQL (~1000 vezes por segundo) e coleta estatísticas sobre quantas vezes ocorre uma pausa em uma seção específica do código. Isso inclui a análise de pilhas de chamadas para determinar a "contribuição" de cada função no tempo total de operação do código. No final da criação de perfil, você obtém informações sobre quantas vezes há uma pausa e quantas vezes cada uma das funções acaba na pilha de chamadas:

    • Atividade total da CPU [unidade de medida, %] — número total de "aparições" de uma função na pilha de chamadas.
    • Atividade intrínseca da CPU [unidade de medida, %] — número de "pausas" que ocorrerem diretamente na função especificada. Este contador é mais importante para identificar gargalos, uma vez que, de acordo com as estatísticas, a parada ocorre com mais frequência nas partes do programa que requerem mais tempo de CPU.


    Adicionada a capacidade de desativar o inlining de função durante a criação de perfil
    Ao compilar programas MQL, é realizado o inlining (incorporação) — o código das funções é colocado diretamente no seu local de chamada, o que permite obter uma aceleração significativa durante o trabalho No entanto, isso torna difícil a criação de perfil de funções. Para obter um relatório sobre funções "puras", você pode desativar o inlining durante a criação de perfil nas configurações do MetaEditor:




    Atualizado o design de relatórios
    Redesenhamos o relatório de criação de perfil, bem como a apresentação das informações de criação de perfil na janela de código fonte. O design se tornou mais moderno e familiar para os usuários do Visual Studio.




  2. Corrigido um erro no funcionamento da função CopyTicksRange. Ele causava que, em alguns casos, a função não retornasse todos os dados.
  3. Adicionado o novo código de erro TRADE_RETCODE_HEDGE_PROHIBITED — é impossível abertura de posição ou colocação de ordem pendente, uma vez que posições sobrepostas são restritas. O erro é retornado em resposta a uma tentativa de realizar uma operação de negociação se a conta estiver proibida de fazer cobertura e já tiver uma posição ou ordem na direção oposta para o mesmo símbolo.
  4. Eliminada a capacidade de chamar a função MessageBox ao depurar indicadores. MessageBox não é chamada desde indicadores, pois ela pausa o thread de execução enquanto espera por uma resposta do usuário.
  5. Otimizada e acelerada significativamente a adição de instrumentos de negociação na "Observação do mercado" com ajuda da função SymbolSelect.
  6. Corrigido o comportamento da função ArrayInsert para arrays de tamanho fixo. Agora corresponde ao especificado na documentação: ao inserir elementos, o tamanho do receptor de matriz não muda, enquanto os elementos do receptor de matriz são deslocados desde a posição de inserção para a direita (os últimos elementos de contagem "caem") e os elementos são copiados desde o receptor de matriz para o espaço vazio.

Tester

  1. Corrigido o trabalho com configurações personalizadas de condições de negociação ao testar, redesenhada a caixa de diálogo das configurações.

    • Corrigida a adição de comissões personalizadas. Agora, para o trabalho da comissão, basta indicar o nome do símbolo, e não todo o caminho para ele.
    • Alterada a disposição das guias para um trabalho mais conveniente.
    • Renomeados a caixa de diálogo e a opção para incluir configurações personalizadas.
    • Otimizada a largura das colunas nas tabelas de configurações.
    • Quando você desativa a opção "Usar configurações personalizadas", todas as outras configurações na caixa de diálogo são desativadas. Anteriormente, as configurações permaneciam editáveis e os usuários pensavam erroneamente que seriam aplicadas durante o teste.




  2. Corrigido um erro que ocorria em alguns casos ao receber pedidos do histórico de negociação com base em um ticket.

MetaEditor

  1. Adicionados esquemas de cores predefinidos para a janela de edição de código: claro (por padrão), escuro e azul. Agora, para um trabalho mais confortável à noite, você não precisa reconfigurar manualmente a aparência do editor.

    Além disso, foi adicionada a capacidade de personalizar a cor da borda da janela de dicas de função.



     
  2. Completamente atualizados ícones nas barras de ferramentas para oferecer suporte a monitores HiDPI.

Documentação atualizada.

17 setembro 2020
MetaTrader 5 build 2615: Análise Fundamental e Critérios Complexos no Testador de Estratégia

Terminal

  1. Estendidas novos recursos para análise fundamental de instrumentos.
    Adicionadas novas propriedades de instrumentos de negociação, permitindo classificá-los com ainda mais precisão:

    • Setor — setor da economia ao qual pertence o ativo. Por exemplo: energia, finanças, saúde, etc.
    • Indústria — ramo da indústria ao qual pertence o ativo. Por exemplo: roupa e acessórios esportivos, fabricação de automóveis, restaurantes, etc.
    • País — país da empresa cujas ações são negociadas na bolsa de valores.

    Essas propriedades possibilitam implementar na Observação do Mercado um sistema separado para trabalho conveniente com instrumentos por setor. Selecione uma categoria no menu e todos os instrumentos disponíveis serão adicionados à lista para análise complexa:



    Além disso, novas propriedades agora estão disponíveis na especificação dos contratos:



    Ademais, agora você pode abrir facilmente dados fundamentais de instrumentos. Ao menu de contexto da Observação do Mercado para cada símbolo foram adicionados links para os maiores agregadores:



    A disponibilidade de novos dados depende das corretoras, uma vez que eles controlam as configurações. No entanto, tentamos disponibilizar as informações por padrão para o máximo número de instrumentos. Assim que as corretoras atualizarem seus servidores para a nova versão, os dados por país, setor e indústria aparecerão em vossa plataforma.
  2. Aprimorado o mostruário do serviço Sinais e Mercado. Em particular, ao lado esquerdo da janela foram adicionados botões para assinatura e para todas as variantes de aluguel :



    Além disso, foram feitas melhorias para um trabalho mais conveniente: botões com novas cores brilhantes, botões mais visíveis para fazer login em contas MQL5, etc.

  3. Corrigido o cálculo de lucro/perda potencial para níveis de Stop-Loss e Take-Profit nos gráficos.



  4. Corrigidos erros no cálculo de instrumentos sintéticos. Em alguns casos, os erros podem fazer com que a plataforma congele durante a inicialização.
  5. Corrigida a exibição de valores do indicador embutido Fractals na Janela de Dados.
  6. Ícones completamente atualizados nas barras de ferramentas para oferecer suporte a monitores HiDPI.
  7. Consertado o erro ao corrigir o volume da posição durante a cópia de sinais de negociação. Em alguns casos, a correção não podia ser feita devido a uma má aplicação dos níveis de parada, causando o erro "invalid stops".
  8. Otimizada reconstrução do histórico de preços após serem alterados no servidor.
  9. Corrigida a exibição de dicas para níveis de negociação em gráficos. Em alguns casos, elas podiam aparecer mesmo quando desabilitada a exibição de níveis de negociação.
  10. Corrigido o funcionamento da opção "Exibir em gráficos \ Atualização automática" no menu de contexto de ordens e posições na seção "Caixa de Ferramentas \ Negociação". Agora, ao desativar esta opção, a exibição do histórico de negociação será desativada para todos os gráficos abertos.

MQL5

  1. Adicionada a função MathClassify. Ela determina o tipo do número real e retorna o resultado como um valor a partir de uma nova enumeração ENUM_FP_CLASS.
    ENUM_FP_CLASS  MathClassify(
       double  value      // número real
       );
    A enumeração contém os seguintes valores:
    • FP_SUBNORMAL — número subnormal que está mais próximo de zero do que do menor número normalizado representável DBL_MIN — 2,2250738585072014e-308.
    • FP_NORMAL — número normalizado que varia de 2,2250738585072014e-308 a 1,7976931348623158e+308.
    • FP_ZERO — zero positivo ou negativo
    • FP_INFINITE — número que não pode ser representado pelo tipo correspondente — infinito positivo ou negativo.
    • FP_NAN — não é um número.

    Para verificar se um número real é válido, você pode usar o seguinte código:
    if(MathClassify(value)>FP_ZERO)
      {
       Print("value is not a valid number");
      }
  2. Adicionadas novas propriedades de símbolos que podem ser obtidos por funções SymbolInfoString:
    • SYMBOL_COUNTRY — País — país da empresa cujas ações são negociadas na bolsa de valores.
    • SYMBOL_SECTOR_NAME — setor da economia ao qual pertence o ativo. Por exemplo: energia, finanças, saúde, etc.
    • SYMBOL_INDUSTRY_NAME — indústria à qual pertence o ativo. Por exemplo: roupa e acessórios esportivos, fabricação de automóveis, restaurantes, etc.
    As propriedades são retornadas como uma string.

    Setor e indústria aos quais pertence o instrumento também podem ser obtidos como um valor de enumeração. Para fazer isso, solicite as seguintes propriedades com ajuda da função SymbolInfoInteger:

    • SYMBOL_SECTOR
    • SYMBOL_INDUSTRY
    Para trabalhar com essas propriedades, foram adicionadas as enumerações ENUM_SYMBOL_SECTOR e ENUM_SYMBOL_INDUSTRY.

  3. Implementado um novo mecanismo de gerenciamento de memória em programas MQL5. Ele aloca memória até 3 vezes mais rápido. Também evita vários erros potenciais de acesso à memória.
  4. Otimizado e significativamente acelerado o trabalho com o histórico de negociação da conta com ajuda da função History*.
  5. Corrigida a chamada WebRequest desde o ponto de entrada OnDeinit. Anteriormente, quando o EA era interrompido, não era chamada essa função.
  6. Corrigida a chamada da função WebRequest desde o serviços. Anteriormente, a função não podia ser chamada após reiniciar o serviço.
  7. Adicionada verificação de suporte de tipo double de dispositivos ao usar OpenCL. Em cálculos financeiros, o tipo float não é adequado devido aos muitos arredondamentos. A este respeito, a plataforma requer explicitamente suporte de double para cálculos. Agora, se estiver ausente, no log da plataforma serão exibidas mensagens, como "device '<name>' does not support type 'double'". Anteriormente, era exibida uma mensagem de erro genérica.
  8. Significativamente acelerada a execução da função AccountInfoDouble com parâmetros ACCOUNT_EQUITY e ACCOUNT_BALANCE.
  9. Corrigido erro durante a aplicação de um modelo ao gráfico com a ajuda da função ChartApplyTemplate.
  10. Corrigido ero de chamada da função ChartSetInteger com parâmetro CHART_BRING_TO_TOP.
  11. À biblioteca Alglib foi adicionado o método Conjugate para calcular o número conjugado de um número complexo. A biblioteca está localizada no diretório MQL5\Include\Math\Alglib.
  12. Atualizado completamente o criador de perfil de código. O novo profiler é significativamente mais rápido e preciso do que o anterior.
    • Para análise, o novo criador de perfil usa código otimizado da mesma maneira que ao compilar a versão de lançamento do programa. Isso permite determinar com mais precisão a velocidade de operação do código, uma vez que será usado no trabalho real do programa.
    • O novo profiler usa o método de criação de perfil "Sampling". Este é um método leve e preciso que coleta estatísticas sobre a performance do aplicativo, capturando dados da pilha de chamadas em intervalos regulares e calculando o desempenho com base neles.
    • Ao contrário da versão anterior, o novo criador de perfil não faz nenhuma alteração no código analisado. O método "Instrumentation" usado anteriormente adicionava ao código certas construções que eram usadas para medir a velocidade de operação da função. Isso podia afetar a velocidade de desempenho do código final.
    O trabalho sobre o criador de perfil ainda está em andamento. Espere mais melhorias nas próximas versões da plataforma.

Tester

  1. Otimizado o trabalho com a rede em nuvem MQL5 Cloud Network. Corrigidos erros de carregamento de EAs por agentes.
  2. Adicionado o novo critério de otimização "Complex Criterion max". Trata-se de um indicador integral e complexo que avalia a qualidade do teste. Ele leva em consideração vários parâmetros simultaneamente:
    • Número de transações
    • Rebaixamento
    • Fator de recuperação
    • Retorno esperado
    • Índice de Sharpe

    O novo critério permite entender que o valor máximo de um parâmetro (por exemplo, lucro) nem sempre é a melhor opção do ponto de vista de uma análise abrangente. Ele permite que você selecione as melhores passagens de teste passo a passo: primeiro pelo número de negócios, em seguida, a partir dessa amostra por retorno esperado, depois, por fator de recuperação e assim por diante. Assim, como resultado da otimização, você obtém as melhores passagens para cada parâmetro, para escolher algum específico, por exemplo, o de maior lucro.

    Selecione um novo critério nas configurações do testador de estratégia e inicie a otimização.



    Nos resultados da otimização, o valor "Complex Criterion max" será exibido em uma coluna "Result" separada. Você pode classificar as passagens de acordo com ela. O novo critério também suporta realce de cor para identificar visualmente as melhores passagens. Valores abaixo de 20 são destacados em vermelho, acima de 80, em verde escuro.



  3. Corrigida a adição de comissões personalizadas no testador de estratégia.

MetaEditor

  1. Iniciado retrabalho global de funções de gerenciamento de código inteligente (intelect).
    • As dicas de ferramentas agora mostram a assinatura de função completa, não apenas seu nome.
    • A fonte usada para exibir dicas agora é obtida a partir das configurações do MetaEditor.

    Espere mais melhorias nas próximas versões da plataforma.
Documentação atualizada.

24 julho 2020
MetaTrader 5 build 2560: Melhorias no sistema interno de aprendizado

Terminal

  1. Na atualização anterior da plataforma modificamos completamente o sistema interno de treinamento. Agora, fizemos os retoques finais:
    • Tornamos o ícone do progresso mais visível
    • Melhoramos os textos de várias dicas para que nenhum usuário fique confuso
    • Corrigimos uma série de erros de cálculo do progresso
    Faça todas as lições para usar 100% os recursos da plataforma.



  2. Otimizado e significativamente acelerado o processamento de grandes fluxos de ticks (dezenas de milhares por minuto ou mais).
  3. Corrigidos erros no cálculo das alterações de preços em relação ao fechamento da sessão anterior. Para ver este indicador, ative a coluna "Mudança diária" no menu de contexto da "Observação do Mercado".

MQL5

  1. Otimizado e acelerado significativamente o acesso à função de acesso às propriedades da conta de negociação ChartGetInteger.
  2. Corrigidos erros de busca de indicadores personalizados solicitados em programas MQL5 por meio da função iCustom.

MetaEditor

  1. Adicionada a compilação de programas C/C++ em projetos.

Tester

  1. Operação significativamente otimizada da rede em nuvem MQL5 Cloud Network. A rede se tornou melhor em encontrar agentes adequados, distribuindo tarefas mais rapidamente e retornando resultados de cálculos.

Documentação atualizada.
10 julho 2020
MetaTrader 5 build 2530: Classificação na Observação do Mercado e trabalho amigável com resultados de otimização

Terminal

  1. À observação do Mercado foi adicionada a possibilidade de classificar dados:
    • Clique no nome de qualquer coluna para classificar a lista de acordo dos seus dados. Por exemplo, segundo o nome do símbolo, o preço de fechamento, a alteração diária etc.
    • Use o novo menu com as opções de classificação mais populares. A classificação por líderes de crescimento e de queda, calculada de acordo com a variação diária do preço do instrumento, será conveniente ao negociar nas bolsas de valores.


  2. O sistema de aprendizado incorporado foi substancialmente reprojetado e aprimorado.
    Agora, todas as dicas interativas estão divididas em tópicos, para facilitar a navegação durante o aprendizado. Para cada categoria, é mostrado o número de dicas concluídas e restantes.



    Além disso, a cada dica foi adicionada uma lista de verificação indicando a ação principal que deve ser concluída para concluir o aprendizado.

    Também foi completamente atualizado design do sistema de aprendizado e foram eliminados os erros no cálculo do progresso geral do treinamento.

  3. Adicionado o cálculo automático do preço de fechamento do pregão anterior e a abertura do pregão atual para o instrumento. Se esses dados não forem fornecidos diretamente pela sua corretora, o terminal irá calculá-los de acordo com as cotações da última e da primeira sessão, respectivamente. E você poderá ver esses dados na Observação do Mercado. Para fazer isso, anexe as respectivas colunas na seção "Símbolos" ou vá para a seção "Detalhes".


  4. Aplicação otimizada e significativamente acelerada de preços para posições abertas. Quando novos ticks chegam ao terminal, os preços, lucros e requisitos de margem para as posições agora são atualizados mais rapidamente.
  5. Corrigido o cálculo do indicador Stochastic Oscillator embutido. Ocorria um erro ao limitar a quantidade de barras exibida nos gráficos.

MQL5

  1. Otimizada e acelerada significativamente a função de acesso às propriedades da conta de negociação AccountInfo*.
  2. Otimizado e acelerado significativamente o acesso à função de acesso às propriedades da conta de negociação ChartGetInteger.

MetaEditor

  1. Para um trabalho mais conveniente com o repositório de arquivos MQL5 Storage, foram adicionados três comandos ao menu de contexto das guias de edição de código:
    • Comparação da cópia de trabalho do arquivo com a revisão atual
    • Reversão de alterações atuais
    • Exibição do histórico de alterações do arquivo no repositório



  2. Alterado o realce de parênteses. Agora, os colchetes são bem destacados, não o plano de fundo abaixo deles. Por padrão, o destaque dos parênteses está desativado. Pode ser ativado nas configurações do editor.


  3. Aprimorado o trabalho da função de pesquisa e substituição:

    • Se você selecionar o texto no arquivo e acessar a caixa de pesquisa, o texto será automaticamente colocado no campo "Localizar". Se o texto no arquivo não foi selecionado, o texto será inserido no campo "Localizar" desde a área de transferência. Se a área de transferência estiver vazia, na janela de pesquisa o foco será simplesmente definido no campo "Localizar".
    • Um comportamento semelhante é implementado ao chamar a janela de substituição, apenas o texto nesse caso é substituído no campo "Substituir por".
    • Os resultados de pesquisa e substituição agora são exibidos não numa caixa de diálogo separada, mas, sim, no log. Se a janela "Ferramentas" estiver ativada neste momento, nela será automaticamente selecionada a guia de log. Assim, você não precisa perder tempo fechando janelas desnecessárias.

  4. Corrigida a pesquisa na janela de comparação de arquivos ao trabalhar com o repositório de versão MQL5 Storage.
  5. Adicionada a possibilidade de pesquisar e substituir nos arquivos incluídos no arquivo atual por meio da diretiva #include.
    Isso permiti trabalhar rapidamente com projetos que consistem em muitos arquivos. Por exemplo, para substituir o texto em todos os arquivos de programa, você não precisa especificar seus diretórios manualmente, o editor os encontrará automaticamente pelas diretivas #include.


Tester

  1. Alterados os critérios de otimização, em que foram levados em consideração dois indicadores — saldo e um segundo fator. Agora eles levam em conta apenas o segundo fator, sem saldo. Tais critérios são mais simples e mais compreensíveis na análise.

    • Saldo + rentabilidade máxima -> Rentabilidade máxima
    • Saldo + retorno esperado máximo -> Retorno esperado máximo
    • Saldo + rebaixamento mínimo -> Rebaixamento mínimo
    • Saldo + fator máximo de recuperação -> Fator máximo de recuperação
    • Saldo + índice de Sharpe máximo -> Índice de Sharpe máximo


  2. No submenu "Parâmetros otimizados", foram adicionados comandos para ativar ou desativar rapidamente a exibição de todas as colunas de parâmetros de entrada na tabela de resultados de otimização:


  3. Adicionada coloração da tabela e gráfico de resultados de otimização para uma análise visual conveniente das passagens.
    O gráfico é colorido com um gradiente de verde para vermelho, dependendo do valor do critério de otimização. São usadas as seguintes cores:
    • Saldo — em azul são coloridos valores acima do depósito inicial, em vermelho, abaixo.
    • Lucro — em azul são coloridos valores acima de zero, vermelho, abaixo.
    • Retorno esperado — em azul são coloridos valores acima de zero, vermelho, abaixo.
    • Rebaixamento — de verde (0-5%) a vermelho (acima de 30%).
    • Índice de Sharpe — de verde (mais de 2) a vermelho (abaixo de 0).
    • Fator de recuperação — de verde (mais de 2) a vermelho (abaixo de 1).


  4. Adicionados filtros na tabela de resultados de otimização. Agora você pode ocultar rapidamente passagens mal-sucedidas na lista:
    • Onde não houve transações
    • Onde o robô mostra perdas
    • Onde o rebaixamento é superior a 50%
    • Onde o fator de recuperação está abaixo de 1
    • Onde a índice de Sharpe é menor que 0,5


  5. Operação significativamente otimizada da rede em nuvem MQL5 Cloud Network. Por exemplo, agora, quando você reinicia a otimização do mesmo EA, a rede tenta usar os mesmos agentes de teste usados anteriormente. Como, com um alto grau de probabilidade, todo o ambiente de mercado, incluindo dados históricos, está pronto para eles, os cálculos podem ser iniciados imediatamente.

Documentação atualizada.
26 junho 2020
MetaTrader 5 iOS build 2505: Efeitos 'swipe', novas seções e esquemas de cores

MetaTrader 5 iOS build 2505

Reunimos os desejos dos usuários da versão iOS do MetaTrader 5 e fizemos um redesenho em larga escala do aplicativo

  • Adicionada pesquisa de símbolos na seção de cotações.
  • Adicionado esquema de cores "Cor em branco" por padrão.
  • Adicionada a exibição de transações nos gráficos.
  • O painel para alterar o período gráfico é movido para cima e já não se sobrepõe ao gráfico.
  • Adicionado o dimensionamento vertical de gráficos, basta deslizar sobre a escala de preços.
  • Agora é possível transferir contas para outros dispositivos usando códigos QR.
  • Adicionada a exibição da alteração diária do preço em pips na seção de cotações. As informações estão disponíveis apenas se forem fornecidas por uma corretora.
  • Às seções Cotações, Histórico e Negociação foi adicionado o suporte para o efeito swipe.
  • Adicionada seleção de volume de negociação adaptável para negociação rápida.
  • Adicionada a capacidade de acessar o gerador OTP via FaceID ou impressão digital.
Redesenhada navegação para iPad
  • Painel de negociação rápida movida para cima;
  • Adicionado menu inferior com seções e indicadores;
  • Seções e-mail, notícias e gerenciamento de contas foram movidas para guias separadas;
  • Gerenciamento de conta aprimorado.
5 junho 2020
MetaTrader 5 build 2485: Melhoras em iCustom e otimização geral em MQL5

Terminal

  1. Otimizada e significativamente acelerada a edição do histórico de barras para instruemntos financeiros personalizados, inclusive com ajuda da função CustomRatesUpdate.
  2. Corrigidos erros ao exportar configurações de instrumentos personalizados para arquivos JSON.
  3. Correções de crash-logs.

MQL5

  1. Alterado o algoritmo para carregar indicadores personalizados com ajuda de iCustom.

    Nome do indicador personalizado. Se antes do nome for indicada uma barra invertida '\', o arquivo EX5 do indicador será procurado em relação à pasta raíz MQL5. Assim, ao chamar iCustom(Symbol(), Period(), "\FirstIndicator"...) o indicador será carregado como MQL5\FirstIndicator.ex5. Se não houver arquivo nesse caminho, ocorrerá o erro 4802 (ERR_INDICATOR_CANNOT_CREATE).

    Se o caminho não começar com '\', o indicador será pesquisado e carregado na seguinte sequência:

    • Primeiro, o arquivo EX5 do indicador é pesquisado na mesma pasta em que localizado o arquivo EX5 do programa de chamada. Por exemplo, o EA CrossMA.EX5 está localizado na pasta MQL5\Experts\MyExperts e contém a chamada iCustom(Symbol(), Period(), "SecondIndicator"...), neste caso, a pesquisa do indicador é realizada com base no caminho MQL5\Experts\MyExperts\SecondIndicator.ex5.
    • Se o indicador não for encontrado no mesmo diretório, a pesquisa será realizada em relação ao diretório raiz dos indicadores MQL5\Indicators. Em outras palavras, é procurado o arquivo MQL5\Indicators\SecondIndicator.ex5. Se o indicador não for encontrado nos dois caminhos, a função retornará INVALID_HANDLE e será gerado o erro 4802 (ERR_INDICATOR_CANNOT_CREATE).

    Se o caminho do indicador estiver definido num subdiretório, por exemplo, como MyIndicators\ThirdIndicator, a pesquisa será realizada pela primeira vez na pasta do programa de chamada (o EA está localizado na pasta MQL5\Experts\MyExperts) com base no caminho MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5 e, em seguida, em caso de falha, é procurado o arquivo MQL5\Indicators\MyIndicators\ThirdIndicator.ex5. Além disso, com ajuda de um separador no caminho é necessário especificar uma barra invertida dupla '\\', por exemplo, iCustom(Symbol(), Period(), "MyIndicators\\ThirdIndicator"...).

    Além disso, se um indicador personalizado for chamado no código do programa via iCustom, o compilador incluirá implicitamente a diretiva "#property tester_indicator XXX", se ela estiver ausente.

  2. Otimizado e significativamente acelerado o trabalho da função HistorySelect, que permite solicitar o histórico de transações e de ordens.
  3. Corrigido erro que acontecia ao solicitar ticks através da função CopyTicksRange. Por esse motivo, como início do intervalo era considerado o início do dia especificado, sem levar em consideração o tempo especificado.
  4. Otimizada e significativamente acelerada exibição de avisos com ajuda da função Alert.
  5. Adicionada a nova propriedade SYMBOL_TIME_MSC — hora do último tick do símbolo em milissegundo. Para obter a propriedade, é usada a função SymbolInfoInteger.
29 maio 2020
MetaTrader 5 build 2470

Terminal

  • Foi corrigido um erro que não permitia na "Observação do Mercado" adicionar instrumentos financeiros cujos nomes continham os caracteres '-', '=', '_' e '+'.

MQL5

MetaEditor
  • Corrigida pesquisa avançada para caracteres de fim de linha '\n' e '\r'.

Documentação atualizada.
22 maio 2020
MetaTrader 5 build 2450: serviço "Assinaturas", melhorias na interface e recursos amigáveis no MetaEditor

Terminal

  1. Apresentamos o novo serviço — "Assinaturas". Graças a ele, você poderá facilmente obter serviços adicionais que ajudarão você a negociar. Por exemplo, permite comprar uma assinatura de dados de mercado de alta qualidade vinda de fornecedores conhecidos, para que mais tarde você possa analisar esses dados e desenvolver suas próprias estratégias com base nas deles. Também, é possível encomendar os serviços de um gerente pessoal que o ajudará a aprender o básico da negociação e a entender os meandros da plataforma MetaTrader 5.

    No momento, o serviço está em desenvolvimento ativo e, nas próximas versões da plataforma, você já poderá usá-lo.

    Funcionamento
    No "Navegador" da plataforma agora há uma nova seção — "Assinaturas". Ela exibe os serviços disponíveis. Sua lista depende do servidor ao qual você está conectado — todos eles estão configurados no lado da corretora. Por conveniência, as assinaturas são divididas em categorias.



    Selecione um serviço para visualizar sua descrição detalhada. Em seguida, clique em "Assinar". Por conveniência, todas as suas assinaturas ativas são exibidas numa subseção separada.



    Ao assinar dados de mercado, os instrumentos de negociação correspondentes ficam disponíveis para seleção na "Observação do Mercado". Você também pode trabalhar com eles da mesma maneira que com as ferramentas usuais fornecidas pela sua corretora: observar cotações na “Observação do Mercado”, abrir gráficos e analisá-los usando objetos e indicadores, usar dados para verificar EA no testador de estratégia, etc. A única limitação é que você não pode realizar operações de negociação com esses símbolos.

    Pagamento de assinaturas
    Para pagar pelos serviços, você pode usar o dinheiro da sua conta de negociação. Não há necessidade de mudar para outros sites, tudo é feito automaticamente na plataforma.

    Em breve, você poderá comprar assinaturas de dados de mercado conectando-se ao MetaQuotes-Demo
    Planejamos configurar no nosso servidor demo as assinaturas de os dados de mercado vindos de muitas plataformas de negociação em todo o mundo. Em apenas alguns cliques, você pode obter cotações em tempo real da Nasdaq, CME, NYSE, BOVESPA e muitas outras bolsas para ver seus gráficos, analisar a dinâmica de preços usando objetos e indicadores incorporados e desenvolver suas estratégias. Você pode pagar por assinaturas por meio da sua conta da comunidade MQL5.community — da mesma maneira como é feito para os serviços Mercado, Sinais e Hospedagem.

  2. Às configurações dos gráficos foi adicionada a opção "Exibir ticker". Ela permite mostrar/ocultar a linha com o nome do instrumento de negociação, período gráfico e comentário do usuário.



  3. Às configurações do terminal e às configurações do gráfico foi adicionada a opção "Mostrar histórico de negociação". Antigamente, estava disponível a função que permitia exibir suas entradas e saídas do mercado nos gráficos, porém, para usá-la era usada a seção "Ferramentas / Histórico". Agora, a exibição do histórico de transações está configurada de forma mais flexível e amigável. Você pode definir uma configuração para todos os gráficos de uma vez ou defini-la separadamente para cada um.



    Além disso, agora você pode ativar rapidamente a exibição do histórico e dos níveis de negociação no menu de contexto do gráfico:




  4. Às configurações do gráfico foi adicionada o novo esquema de cores "Cor em branco".




  5. Ao menu contextual de posições e ordens foram adicionados comandos para abrir rapidamente o livro de ofertas e o gráfico do instrumento em questão:




  6. Adicionado o destaque da borda do gráfico. Ao trabalhar com muitos gráficos simultaneamente, isso ajudará você a encontrar rapidamente o caminho certo. Selecione o símbolo na Observação do Mercado, a linha da ordem ou a posição na seção de negociação, do histórico ou do alerta, e a borda do gráfico do símbolo correspondente piscará três vezes.




  7. Aprimorada a exibição de níveis no gráfico.
    • Para não sobrecarregar o gráfico, posições, ordens e níveis não mostram mais tickets.
    • As assinaturas aparecem em maiúsculas para melhor legibilidade.
    • Os volumes não mostram a parte fracionária se ela for zero.
    • Quando a altura da plotagem é menor que 80 pixels, os níveis ficam ocultos.



  8. Agora, no canto superior esquerdo do gráfico, além do nome, é indicada uma descrição do símbolo, se disponível.






  9. Novas colunas foram adicionadas à lista de ordens e posições abertas:
    • Alteração — rentabilidade como uma porcentagem
    • Custo — valor de mercado da posição
    • Identificador do EA — valor indicado pelo EA ao abrir ordens e posições (número mágico)

    Para ativar/desativar novas colunas, use o menu de contexto da seção.




    Colunas do custo de posições e de identificadores de EA também foram adicionadas na seção do histórico de negociação.

    Além disso, na seção de posições abertas e histórico, agora o campo de lucro é destacado, dependendo do resultado da operação.

  10. Adicionado o suporte para preços negativos. Agora, quando surgirem situações, como a recente queda nos preços do petróleo abaixo de zero, a plataforma funcionará corretamente:
    • Mostrar cotações na Observação do Mercado
    • Mostrar gráficos e livro de ofertas
    • Realizar operações de negociação
    • Calcular lucros e abastecimento, etc.

  11. O número máximo de instrumentos que podem estar simultaneamente ativados na Observação do Mercado foi aumentado para 5 000.
  12. Corrigida a classificação da lista de bate-papos de acordo com a data da última atualização.
  13. Otimizada e significativamente acelerado o trabalho com um grande número de instrumentos de negociação (50 000 e mais).
  14. Corrigido um erro que não permitia fechar uma posição cujo volume atual não correspondia à etapa de alteração do volume segundo o símbolo.

MQL5

  1. Otimizada e significativamente acelerado o trabalho com o histórico de ticks.
  2. Adicionadas novas funções para trabalhar com bancos de dados:
    • DatabaseReset — redefine a solicitação ao seu estado inicial, como após uma chamada de DatabasePrepare. A função é destinada à execução repetida de uma solicitação com diferentes valores de parâmetros. Por exemplo, ao adicionar em massa dados a uma tabela usando o comando INSERT, para cada registro, é necessário criar um conjunto próprio de valores para cada campo.
    • DatabaseBind — define o valor do parâmetro na consulta. Esta função deve ser usada caso a consulta SQL contenha os valores parametrizáveis "?" ou"?N", onde N é o número do parâmetro (começando de um).
    • DatabaseBindArray — define a matriz como um valor de parâmetro.

  3. Adicionado o sinalizador FSD_FILE_MUST_EXIST para a função FileSelectDialog. Ele indica que os arquivos selecionados devem existir.
  4. À enumeração ENUM_SYMBOL_INFO_DOUBLE foram adicionados os valores para descrever opções:
    • SYMBOL_PRICE_CHANGE — alteração no preço atual em relação ao final do dia anterior, expresso em porcentagem.
    • SYMBOL_PRICE_VOLATILITY — volatilidade dos preços como porcentagem.
    • SYMBOL_PRICE_THEORETICAL — preço teórico da opção.
    • SYMBOL_PRICE_DELTA — delta da opção/garantia. Mostra quanto o preço da opção muda em unidades quando o preço do ativo subjacente mudar 1 unidade.
    • SYMBOL_PRICE_THETA — teta da opção/garantia. O número de pontos que o preço da opção perderá cada dia devido a deterioração temporária, ou seja, quando a data de vencimento se aproxima.
    • SYMBOL_PRICE_GAMMA — gama da opção/garantia. Mostra a taxa de alteração de delta, isto é, exibe com que rapidez ou lentidão muda o prêmio da opção.
    • SYMBOL_PRICE_VEGA — vega da opção/garantia. Mostra o número de pontos que mudará o preço da opção quando a volatilidade mudar 1%.
    • SYMBOL_PRICE_RHO — rô da opção/garantia. Reflete a sensibilidade do preço teórico da opção a variações de 1% da taxa de juros.
    • SYMBOL_PRICE_OMEGA — omega da opção/garantia. A elasticidade da opção é a variação percentual no preço da opção em relação à variação percentual no preço do ativo subjacente.
    • SYMBOL_PRICE_SENSITIVITY — sensibilidade da opção/garantia. Mostra quantos pontos deve mudar o preço do ativo subjacente da opção para que o preço da opção mude um ponto.

  5. À função DatabaseExport foi adicionada a exportação de campos BLOB em formato HEX.
  6. À enumeração ENUM_CHART_PROPERTY_INTEGER foi adicionada a propriedade CHART_SHOW_TICKER — exibição no canto superior esquerdo do ticker de símbolo. Se definido CHART_SHOW_TICKER com o valor false, simultaneamente também é definido CHART_SHOW_OHLC como false e desativa a exibição de OHLC.   
  7. Aprimorada a qualidade do código gerado pelo compilador. Isso aumento sua velocidade de execução.
  8. Corrigidos vários erros ao compilar e executar funções e classes de modelo. Em particular:
    • Erro de incompatibilidade de prioridade para chamadas de função de modelo sobrecarregadas
    • Erro ao gerar método/classe de modelo
    • Erro ao tentar acessar a internal class para o parâmetro de modelo da função de modelo
    • Erro ao gerar o código da classe de modelo ao usar internal class
    • Erro ao usar o objeto de modelo B<int> antes de B<void*>
    • Erro ao criar objetos complexos agrupados várias vezes com o tipo interno "C"
    • Erro ao transferir como const ref template o argumento do ponteiro para a função
    • Erro ao passar estrutura internal struct para a função de modelo
    • Erro de incompatibilidade de prioridades de execução de funções de modelo
    • Contagem incorreta de parênteses nos ciclos for e do-while
    • Contagem incorreta de colchetes na descrição da estrutura da classe
    • Trabalho lento ao adicionar um elemento de cada vez usando ArrayResize
    • Erro ao escolher a função sobrecarregada adequada

  9. Сorrigido um erro que aparecia em alguns casos na função CustomTicksReplace.
  10. Corrigida a escolha do período para exibição do histórico de ordens de negociação. Agora, ao especificar um intervalo, é usada a data de execução da ordem, e não, a data de criação, como era antes.

Python

  1. Ao método initialize adicionado o parâmetro path — caminho para o arquivo metatrader.exe ou metatrader64.exe. Se o caminho não for especificado, o módulo tentará encontrar arquivo executável por conta própria.
  2. Adicionados novos métodos:
    • symbols_get — obtém todos os instrumentos financeiros do terminal MetaTrader 5.
    • symbols_total — obtém o número total de instrumentos financeiros no terminal MetaTrader 5.

  3. Adicionada a filtragem por grupos de símbolos para a função orders_get, positions_get, history_orders_get e history_deals_get. Use formulários de chamada com o parâmetro "group".
  4. No valor retornado order_send e order_check agora é passada a descrição completa da solicitação inicial — no campo "request". Por exemplo:
    ...
    comment=Request executed
    request_id=55
    retcode_external=0
    request=TradeRequest(action=1, magic=234000, order=0, symbol='USDJPY', volume=0.1, price=108.018, stoplimit=0.0, ...
        traderequest: action=1
        traderequest: magic=234000
        traderequest: order=0
        traderequest: symbol=USDJPY
        traderequest: volume=0.1
        traderequest: price=108.018
        traderequest: stoplimit=0.0
    ...
  5. Agora os scripts Python, quando iniciados num gráfico, recebem como argumento o nome do símbolo e o período desse gráfico em minutos.
    import sys
    
    chart_symbol='unknown'
    chart_tf=1
    
    if len(sys.argv) == 3:
        chart_symbol, chart_tf = sys.argv[1:3];
    
    print("Hello world from", chart_symbol, chart_tf)
    
    >> Hello world from T.NYSE 15

MetaEditor

  1. Adicionado o comando "Adicionar pasta existente". Ele permite adicionar massivamente ao projeto todos os arquivos suportados desde o diretório selecionado.




  2. Pesquisa e substituição avançadas.

    Adicionada pesquisa avançada com suporte parcial a expressões regulares. Use \r, \n, \t para especificar na consultas de pesquisa símbolos, quebras de linha e tabulações. As caixas de diálogo Pesquisar e Substituir estão combinadas numa só com várias guias.



    Adicionada uma guia separada para pesquisar comunidades de programadores. Entre eles, agora pode ser encontrada não apenas a MQL5.community, mas também o GitHub, MSDN e Stack Overflow.



    Os resultados da pesquisa de recursos externos também são convenientemente exibidos na janela da ferramenta do MetaEditor:



    No caso do GitHub, imediatamente podem ser baixados arquivos fonte. O carregamento é realizado num subdiretório separado da pasta "Projetos", nomeado de acordo com o nome do projeto no GitHub.

    Além disso, na janela de resultados da pesquisa é possível classificá-los por data.

  3. Adicionada a capacidade de alterar rapidamente o tamanho da fonte na janela de edição de código. Para fazer isso, mantenha pressionada a tecla "Ctrl" e role a roda do mouse.
  4. Adicionada a capacidade de importar tabelas de arquivos CSV para tabelas de banco de dados. Ao importar, você pode definir os parâmetros:
    • Nome da tabela no banco de dados
    • Detecção automática ou manual de codificação de arquivo
    • Tipo de separador de dados
    • Pular um certo número de linhas no início
    • Prefixo de comentários
    • Presença de nomes de colunas no arquivo
    • Como serão determinadas as quebras de linha
    • Adicionar dados a uma nova tabela ou a uma existente
    • Quais aspas usar para strings



  5. Adicionados comandos para inserir rapidamente tempo e cor no código fonte dos programas. Agora, basta selecioná-los no calendário e na paleta interativos, respectivamente, e o editor os inserirá no código usando o formato desejado.



  6. Interrompido o suporte a MQL4, pois agora é gerado apenas código de 64 bits.
  7. Corrigido o trabalho do trecho de código "Class".
  8. Corrigido o suporte de caminhos absolutos nos projetos.
Documentação atualizada.
6 março 2020
MetaTrader 5 build 2360: expansão da integração com SQLite
  1. MQL5: agora os erros de trabalho com bancos de dados SQLite podem ser analisados usando ferramentas padrão MQL5. Para fazer isso, ao idioma foram adicionados os seguintes códigos de erro:

    • ERR_DATABASE_ERROR — erro geral.
    • ERR_DATABASE_INTERNAL — erro de lógica interna SQLite.
    • ERR_DATABASE_PERM — acesso negado.
    • ERR_DATABASE_BUSY — arquivo de banco de dados bloqueado.
    • ERR_DATABASE_LOCKED — tabela no banco de dados bloqueada.
    • ERR_DATABASE_NOMEM — não há memória suficiente para concluir a operação.
    • ERR_DATABASE_READONLY — tentativa de registro no banco de dados somente para leitura.
    • ERR_DATABASE_IOERR — erro de E/S do disco.
    • ERR_DATABASE_CORRUPT — imagem do disco do banco de dados corrompida.
    • ERR_DATABASE_FULL — erro de inserção, banco de dados cheio.
    • ERR_DATABASE_CANTOPEN — não é possível abrir o arquivo do banco de dados.
    • ERR_DATABASE_PROTOCOL — erro de protocolo de bloqueio de banco de dados.
    • ERR_DATABASE_SCHEMA — esquema do banco de dados alterado.
    • ERR_DATABASE_TOOBIG — linha ou BLOB excede o limite de tamanho.
    • ERR_DATABASE_CONSTRAINT — interrompido devido a violação da restrição.
    • ERR_DATABASE_MISMATCH — tipos de dados incompatíveis.
    • ERR_DATABASE_MISUSE — erro de uso de biblioteca incorreto.
    • ERR_DATABASE_AUTH — autorização negada.
    • ERR_DATABASE_RANGE — erro de aplicação de parâmetro, índice inválido.
    • ERR_DATABASE_NOTADB — o arquivo aberto não é um arquivo de banco de dados.

  2. MQL5: corrigido o trabalho da função DatabaseImport, que permite importar informações de um arquivo para uma tabela do banco de dados.
  3. MetaEditor: corrigida a exibição no log de linhas com mais de 32 KB.
  4. MetaEditor: corrigido erro relacionado ao uso de codificação inválida ao exibir mensagens a partir do console do Python (stdout, stderr) na seção "Erros" do editor.
  5. Documentação atualizada.
21 fevereiro 2020
MetaTrader 5 build 2340: gerenciamento de configurações da conta no testador e expansão da integração com o Python

MetaEditor

  1. Adicionada a possibilidade de trabalhar convenientemente com bancos de dados SQLite.

    Na atualização anterior da plataforma adicionamos suporte para trabalhar com bancos de dados SQLite diretamente da MQL5. Agora na interface do usuário do MetaEditor estão disponíveis as principais funções:

    • Criação e conexão a bancos de dados
    • Visualização de tabelas e consulta de dados rápida
    • Compilação e execução de consultas SQL, reversão de alterações

    Como funciona isso?
    Para criar bancos de dados rapidamente, use o "Assistente MQL5". Aqui você pode criar imediatamente a primeira tabela e definir sua lista de campos.



    Após criar o banco de dados, você irá para a nova seção do "Navegador". Daí vem todo o trabalho com dados.

    O lado esquerdo exibe as tabelas do banco de dados. Para consultar rapidamente os primeiros 1 000 registros, clique duas vezes no nome da tabela. Aqui você pode criar e abrir outros bancos de dados, além de trabalhar com tabelas.

    Na parte principal do editor, ocorre o trabalho com o banco de dados: preencha a tabela com dados, faça pesquisas e seleções, insira consultas SQL, etc.


    Leia mais sobre como trabalhar com bancos de dados no MetaTrader 5 no artigo "SQLite: trabalho nativo com bancos de dados SQL em MQL5"

  2.  Continua o trabalho no que diz respeito à adição de suporte para projetos multilíngues. Nesta versão, expandimos as funções para trabalhar com scripts em Python:

    • Agora eles podem ser criados convenientemente através do "Assistente MQL5", incluindo imediatamente dependências nas bibliotecas necessárias no código.
    • Ao navegador para eles foram adicionados ícones especiais, já no editor foi acrescentado o destaque de sintaxe.
    • Quando um script é executado no MetaEditor, as mensagens do console do Python (stdout, stderr) são exibidas na seção Erros.


    Para executar o script no editor, clique em "Compilar":



    Para trabalhar com Python, não esqueça de especificar o caminho para ele na seção "Configurações \ Compiladores" no MetaEditor. E para trabalhar com a biblioteca MetaTrader 5, instale-a com o comando:
    pip install MetaTrader5
    Leia mais sobre a integração com o Python na documentação.
  3. Adicionada exibição de arquivos de bancos de dados SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) no "Navegador".
  4. Corrigidos erros ao salvar as propriedades do projeto.

MQL5

  1. Completamente redesenhada integração como Python. Adicionados muitos novos recursos e alterados nomes de comandos .

    Novos nomes de comandos
    Comandos existentes foram renomeados:
    MT5Initialize       -> initialize
    MT5Shutdown         -> shutdown
    MT5TerminalInfo     -> terminal_info
    MT5Version          -> version
    MT5CopyRatesFrom    -> copy_rates_from
    MT5CopyRatesFromPos -> copy_rates_from_pos
    MT5CopyRatesRange   -> copy_rates_range
    MT5CopyTicksFrom    -> copy_ticks_from
    MT5CopyTicksRange   -> copy_tick_range

    Novos comandos
    A lista de comandos suportados foi bastante expandida. Adicionadas funções de negociação e trabalho com o histórico de negociação, obtendo informações sobre instrumentos financeiros e conta atual.

    • account_info() — recebe informações sobre a conta atual. Análogo de AccountInfoInteger , AcountIndoDouble e AccountInfoString.
    • positions_total() — recebe o número de posições abertas. Análogo de PositionsTotal.
    • positions_get(symbol, ticket) — recebe posições abertas por símbolo ou ticket.
    • orders_total() — recebe o número de ordens. Análogo de OrdersTotal.
    • orders_get(symbol, ticket) — recebe ordens abertas por símbolo ou ticket.
    • history_orders_total(from, to) — recebe o número de ordens no histórico em um determinado período.
    • history_orders_get(from, to, position, ticket) — recebe ordens do histórico em um determinado intervalo por ticket ou com filtragem por posição.
    • history_deals_total() — recebe o número de transações no histórico. Análogo de HistoryDealsTotal.
    • history_deals_get(from, to, position, ticket) — — recebe o número de transações no histórico em um determinado intervalo por ticket ou com filtragem por posição.
    • symbol_info(symbol) — recebe informações sobre um instrumento financeiro. Análogo de SymbolInfoInteger, SymbolInfoDouble, SymbolInfoString.
    • symbol_info_tick(symbol) — получение последнего тика по символу. Análogo de SymbolInfoTick.
    • symbol_select(symbol, enable) — ativa/desativa símbolos na "Observação do Mercado". Análogo de SymbolSelect.
    • order_check(request) — verifica a margem de uma ordem. Análogo de OrderCheck.
    • order_send(request) — envia uma ordem ao servidor. Análogo de OrderSend.
    • order_calc_margin(action, symbol, volume, price) — cálculo da margem para a ordem. Análogo de OrderCalcMargin.
    • order_calc_profit(action, symbol, volume, price_open, price_close) — cálculo do lucro. Análogo de OrderCalcProfit.

    Inicialização de scripts Python em gráficos
    Agora, os scripts Python podem ser executados diretamente nos gráficos da plataforma, semelhante aos programas regulares do MQL5. No "Navegador", eles serão exibidos com ícones especiais.



    As mensagens de script serão exibidas na seção "Ferramentas \ Experts". Se no script for usada a Biblioteca MetaTrader 5, ele poderá receber informações sobre o instrumento, a conta, e negociar.

    Os scripts Python podem ser executados no mesmo gráfico em paralelo com outros scripts e EAs MQL5. Para parar o script, se sua execução estiver em loop, basta removê-lo do gráfico.

    Proteção adicional
    Para proteger ainda mais suas contas ao usar bibliotecas Python de terceiros, a opção "Desativar negociação automática por meio de uma API Python externa" foi adicionada às configurações do terminal.



    Os scripts Python permitem operações de negociação se esta opção estiver desabilitada explicitamente.

  2. Significativamente acelerada reinicialização de programas MQL5 e recriação de indicadores personalizados a partir de programas MQL5. Em alguns casos, a velocidade aumenta centenas de vezes.
  3. Adicionadas funções para trabalhar com bancos de dados:

    DatabaseImport
    Importa dados de um arquivo para uma tabela.
    long  DatabaseImport(
       int           database,          // identificador de banco de dados recebido em DatabaseOpen
       const string  table,             // nome da tabela para inserir dados
       const string  filename,          // nome do arquivo para importar dados
       uint          flags,             // combinação de sinalizadores
       const string  separator,         // separador de dados 
       ulong         skip_rows,         // quantas primeiras linhas a pular 
       const string  skip_comments      // linhas de caracteres que definem comentários
       );

    DatabaseExport
    Exporta uma tabela ou um resultado da consulta SQL para um arquivo CSV. O arquivo é criado como UTF-8.
    long  DatabaseExport( 
       int           database,           // identificador de banco de dados recebido em DatabaseOpen 
       const string  table_or_sql,       // nome da tabela ou consulta SQL
       const string  filename,           // nome do arquivo CSV para exportação de dados 
       uint          flags,              // combinação de sinalizadores 
       const string  separator           // separador de dados no arquivo CSV 
       );

    DatabasePrint
    Imprime uma tabela ou um resultado da consulta SQL no log do EA.
    long  DatabasePrint(
       int           database,          // identificador de banco de dados recebido em DatabaseOpen
       const string  table_or_sql,      // tabela ou consulta SQL
       uint          flags              // combinação de sinalizadores
       );

  4. MQL5: adicionada a função FileSelectDialog, que chama a caixa de diálogo do sistema para criar/abrir um arquivo ou pasta.
    int  FileSelectDialog(
       string   caption,              // título da janela
       string   initial_dir,          // pasta inicial
       string   filter,               // filtro de extensão
       uint     flags,                // combinação de sinalizadores
       string&  filenames[],          // matriz com nomes de arquivos
       string   default_filename      // nome do arquivo por padrão
       );
    A nova função permite o usuário interagir convenientemente com o programa MQL5.

  5. À enumeração ENUM_DEAL_PROPERTY_DOUBLE adicionado o valor DEAL_FEE — pagamento pela transação. De fato, esse é um tipo separado de comissão que pode ser cobrada pela corretora.

Tester

  1. Adicionada a possibilidade de definir suas próprias configurações de conta de negociação ao testar estratégias — restrições de negociação, configurações de margem e comissões. Assim, você obtém ainda mais oportunidades para modelar diferentes condições de negociação com as corretoras.



    Configurações gerais
    Nesta seção, você pode definir o número máximo de ordens e posições abertas que podem ser mantidas simultaneamente na conta. Também aqui você pode configurar sessões em que o programa testado não poderá negociar.


    Margem
    Aqui você pode controlar totalmente como a margem será reservada e qual sistema de registro de posição será usado durante o teste:

    • Gerenciamento de riscos — modelo de gerenciamento de riscos: balcão e baseado em bolsa, com compensação e cobertura. Informações detalhadas sobre eles estão disponíveis na documentação.
    • Nível "Margin call" — nível de fundos na conta, que ao serem atingidos muda para o estado Margin call.
    • Nível "Stop out" — nível de fundos que quando atingido faz com que o pedido seja retirado à força da conta e as posições de negociação sejam fechadas. Ambos os níveis podem ser indicados em porcentagem e em dinheiro. No primeiro caso, os níveis são definidos como o valor do indicador "Fundos" na conta. Quando você seleciona a opção "Em porcentagem", os níveis são determinados como o valor do indicador "Nível de margem" na conta (Fundos/Margem*100).
    • Não realizado — este campo indica como será levado em consideração o lucro/perda atual não registrado na margem livre:
      • Não usar lucros/perdas não realizados — não levar em consideração as posições abertas ao calcular.
      • Usar lucros/perdas não realizados — usar ao calcular perdas e lucro de posições abertas.
      • Usar lucro não realizado — use apenas lucro.
      • Usar perda não realizada — usar apenas perda.
    • Fixo diário — este campo indica como será levado em consideração o lucro/perda registrado pelo trader durante a negociação, na margem livre:
      • Usar lucros/perdas fixos diários — levar em consideração os lucros e perdas registrados durante o dia de negociação, na margem livre.
      • Usar perda fixa diária — levar em consideração apenas a perda registrada durante o dia de negociação, na margem livre. Durante o dia, o lucro acumulado é registrado em um campo separado da conta ("Bloqueado"). No final do pregão, o lucro acumulado é liberado (zerado) e refletido no saldo da conta (registrado na margem livre).
    • Liberar lucro acumulado no final do dia — esta opção estará disponível apenas quando a opção "Usar perda fixa diária" estiver ativada. Se ativada, no final do pregão, o lucro acumulado durante o dia será liberado e registrado no saldo (e, portanto, levado em consideração na margem livre). Caso contrário, não será considerado.


    Comissão
    Nesta seção, você está no controle total de como a comissão é cobrada em todas as operações de negociação.

    • As comissões podem ser de nível único e multinível, ou seja, podem ser cobradas com o mesmo valor, independentemente do volume da transação/rotatividade ou variar de acordo com o tamanho. As informações correspondentes são exibidas na especificação.
    • As comissões podem ser cobradas imediatamente após a transação ou no final do dia/mês de negociação.
    • As comissões podem ser cobradas dependendo da direção da transação: pela entrada, pela saída ou pelos dois tipos de operações.
    • As comissões podem ser cobradas por lote ou por transação.
    • As comissões podem ser cobradas em diferentes quantidades: em dinheiro, porcentagem ou pontos.


  2. Significativamente otimizado e acelerado o trabalho no modo "Market Scan", quando várias passagens de teste são realizadas para todos os símbolos da Observação do Mercado.
  3. Ao calcular o lucro em pips, é levado em consideração o tamanho da transação ou posição agora. Anteriormente, o cálculo era realizado sem considerar o volume, como para um lote.
  4. Aprimorado gerenciamento gráfico dos resultados de otimização. Ao aumentar o zoom em um gráfico normal de otimização, você pode rolar por ele. Clique duplo em um ponto do gráfico agora seleciona o resultado correspondente na tabela de passagens.
Documentação atualizada.
anterior1234567891011121314