O que há de novo no MetaTrader 5?

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

2 junho 2022
MetaTrader 5 build 3320: Melhorias e correções

Terminal

  1. Aprimoradas as dicas de ferramentas para objetos de negociação exibidos em gráficos.
    • A exibição de lucro foi adicionada para negociações de saída do mercado.
    • Para as transações realizadas como resultado de um acionamento de Take Profit ou Stop Loss, foi adicionada a indicação correspondente - TP/SL.

    Dicas semelhantes foram adicionadas às linhas que conectam as negociações de entrada e saída.

    Estendidas dicas de ferramentas para objetos de transações


  2. Acelerado o trabalho do sistema gráfico.
  3. Adicionado o registo em log de operações em massa sobre ordens e posições abertas. Ao executar esse comando, uma mensagem do tipo "bulk closing of XXX positions started" é registada no log.
  4. Corrigido o fechamento de posições em massa por meio de posições contrárias.
  5. Corrigida a atualização dos objetos que representam o histórico de negociação no gráfico. Esse erro ocorria quando o instrumento de negociação era alterado no gráfico.

MQL5

  1. Continuamos a trabalhar nas funções para matrizes e vetores: adicionada o suporte a float e complex.
  2. O operador "!" (LNOT) para ponteiros verifica agora se ele é válido através de uma chamada implícita da função CheckPointer. O operador "==" deve ser utilizado para verificar rapidamente se ele é NULL, assim: ptr==NULL ou ptr!=NULL.

MetaTester

  1. Corrigida a exibição de objetos de transações no gráfico de teste.
  2. Acelerado o funcionamento do sistema gráfico.

MetaEditor

  • Atualizadas traduções da interface.

Correções de crash-logs.

20 maio 2022
MetaTrader 5 build 3300: Compilação rápida e melhor navegação pelo código no MetaEditor

Terminal

  1. Adicionada a capacidade de redimensionar o objeto gráfico "Rectângulo" arrastando qualquer um dos quatro cantos.



  2. Acelerada a renderização da GUI.
  3. Melhorado o suporte a endereços IPv6.
  4. Corrigido o cálculo da altura do campo de data e a largura do campo de preço logo na primeira inicialização da plataforma.

MQL5

  1. Adicionada a função para manusear matrizes e vetores —  RegressionMetric. Ela especifica o cálculo para avaliar a regressão.
     double vector.RegressionError(const enum lr_error);
     double matrix.RegressionError(const enum lr_error);
     vector matrix.RegressionError(const enum lr_error,const int axis);
    Os cálculos que podem ser utilizados são:
    enum REGRESSION_ERROR
      {
       REGRESSION_MAE,     // Erro médio absoluto
       REGRESSION_MSE,     // Erro médio quadrático
       REGRESSION_RMSE,    // Raiz do erro médio quadrático
       REGRESSION_R2,      // R ao quadrado
       REGRESSION_MAPE,    // Erro médio absoluto em porcentagem
       REGRESSION_MSPE,    // Erro médio quadrático em porcentagem
       REGRESSION_RMSLE    // Erro médio logarítmico quadrático
      };
  2. Adicionado o recurso para escrever matrizes com um tamanho de dados maior que INT_MAX (matrizes de estruturas).

MetaEditor

  1. Redesenhado o painel de guias:

    • O painel não fica oculto mesmo que apenas uma janela esteja aberta. Assim, os comandos do menu de contexto da guia estão sempre disponíveis.
    • Um botão "X" foi adicionado a cada guia para fechamento. Além disso, as guias podem ser fechadas com o botão do meio do mouse ou através do menu de contexto.

  2. Adicionado o comando para a rápida compilação de programas. Nenhuma otimização de código é realizada neste modo, o que reduz significativamente o tempo necessário para criar um arquivo EX5 executável. Use este modo quando você estiver em um estágio ativo de desenvolvimento e precisar verificar o código escrito rapidamente. Já ao compilar o programa, mude para o modo de otimização máxima para obter o melhor desempenho.

    O parâmetro "Otimização máxima" nas configurações do projeto desempenha a mesma função.
    Todas as operações relacionadas à compilação foram colocadas no menu "Compilação".

  3. Melhorado o gerenciamento de código:
    • Foram separados os comandos para acessar a declaração e a implementação. Anteriormente, era usado um comando que exibia um menu de seleção. Agora você pode pular imediatamente para a parte necessária do código.
    • Acrescentada a substituição de palavra-chave atribuída, pressionando "Tab", além de "Enter".


  4. Adicionada a exibição automática de variáveis locais na lista de monitoramento do depurador. Para fazer isso, ative a opção "Locais" no menu de contexto. Durante a depuração, conforme você navega pelo código, as variáveis do escopo atual serão exibidas automaticamente na lista.



  5. Melhorado o funcionamento da lista de monitoramento para vetores e matriz no depurador.
  6. Corrigidos os caminhos para os arquivos de projeto. O erro podia acarretar o desaparecimento de arquivos.

Tester

  1. Melhorada o desligamento de agentes de teste ao encerrar a plataforma.
  2. Adicionado um quinto nó para a MQL5 Cloud Network, está localizado em Hong Kong. Isso acelerará a otimização dos robôs que utilizam a rede nas regiões mais próximas.

Correções de crash-logs.
29 abril 2022
MetaTrader 5 build 3280: melhorias e correções baseadas no feedback dos traders

Terminal

  1. Corrigido o preenchimento dos níveis de Trailing Stop padrão no menu de contexto de ordens e posições abertas.



  2. Atualizadas as traduções da interface do usuário.

Correções de crash-logs.
21 abril 2022
MetaTrader 5 build 3270: Melhorias e correções

Terminal

  1. Bate-papo embutido melhorado:
    • O design foi atualizado e as mensagens agora aparecem sem "nuvens", liberando a conversa de detalhes desnecessários. Adicionados avatares e separadores de datas.
    • Comandos de cópia e exclusão foram adicionados ao menu de mensagens.
    • Corrigidos erros e melhorada a estabilidade.



  2. Corrigido o funcionamento do comando para o fechamento de posições em massa. O erro ocorria em contas com um sistema de registro de posições com cobertura.
  3. Corrigido o cálculo de alguns tipos de negócios ao gerar o histórico de posições.

Correções de crash-logs.
15 abril 2022
MetaTrader 5 build 3260: Operações em massa, funções matriciais e vetoriais, e melhorias no bate-papo

Terminal

  1. Adicionados comandos para fechamento de posições e remoção de ordens pendentes em massa.

    No menu de contexto da seção de negociação, foi acrescentada uma nova seção, "Operações em massa". A lista de comandos disponíveis é gerada de forma inteligente, dependendo da operação selecionada e do seu tipo de conta.



    Os comandos estão sempre disponíveis no menu:
    • Fechamento de todas as posições. Para as contas de cobertura, o sistema primeiro tenta fechar posições com posições contrárias, e depois fecha as posições restantes de acordo com o procedimento normal.
    • Fechamento de todas as posições lucrativas e todas as posições desfavoráveis
    • Remoção de todas as ordens pendentes
    • Remoção de todas as ordens pendentes separadamente por tipo: Limit, Stop, Stop Limit

    Se uma posição for selecionada, comandos adicionais aparecem no menu:
    • Fechamento de todas as posições com o mesmo símbolo
    • Fechamento de todas as posições na mesma direção (para contas de cobertura)
    • Fechamento de posições contrárias com o mesmo símbolo (para contas de cobertura)
    • Reversão de posição (para contas de compensação)

    Se uma ordem pendente for selecionada, comandos adicionais aparecem no menu:
    • Remoção de todas as ordens pendentes com o mesmo símbolo
    • Remoção de todas as ordens pendentes com o mesmos tipo e símbolo

    Para que estes comandos funcionem, o usuário deve habilitar a negociação com um clique nas configurações da plataforma: Serviço \ Configurações \ Negociação.
  2. Expandidas as funções de bate-papo embutidas:
    • Adicionada a opção de responder a mensagens. O texto da mensagem original será incluído na resposta como uma citação.
    • Adicionada a criação de mensagens com diferentes tipos de conteúdo: imagens com texto, texto com anexos, etc.
    • Corrigida a exibição do separador de mensagens lidas e não lidas.
    • Corrigidos vários erros e alcançada uma maior estabilidade.



  3. Otimizada e significativamente acelerada a operação do sistema gráfico do terminal. Menos recursos serão gastos na exibição da interface.
  4. Corrigido o cálculo da variação diária do preço de futuros. Se a corretora transmitir o preço de compensação, o cálculo será feito a partir dele.
    ((Last - preço de compensação)/preço de compensação)*100
    Você pode saber mais sobre o cálculo para cada tipo de instrumento na documentação.

  5. Corrigidos erros ao adquirir serviços MQL5:
    • Em alguns casos, os sistemas de pagamento podiam exibir mensagens de erro incorretas relativas a operações bem sucedidas.
    • Em estágios intermediários de aluguel de produtos no Mercado, a página podia apresentar um preço incorreto.

  6. Corrigido o funcionamento do botão "Iniciar" na página do produto comprado/descarregado via Mercado. Agora ele executa o aplicativo corretamente no primeiro dos gráficos abertos.
  7. Corrigido o cálculo de alguns tipos de negócios ao gerar o histórico de posições.

MQL5

  1. Adicionadas novas funções para trabalhar usando matrizes e vetores:
    • Median — retorna a mediana dos elementos da matriz ou vetor
    • Quantile — retorna o q-ésimo quantil de elementos da matriz/vetor ou elementos ao longo do eixo matricial especificado
    • Percentile — retorna o q-ésimo percentil dos elementos da matriz/vetor ou elementos ao longo do eixo matricial especificado
    • Std — calcula o desvio padrão dos elementos de uma matriz ou vetor
    • Var — calcula a variância dos elementos de uma matriz ou vetor
    • CorrCoef — calcula o coeficiente de correlação de uma matriz ou vetor
    • Correlate — calcula a correlação cruzada dos dois vetores
    • Convolve — retorna uma convolução linear discreta de dois vetores
    • Cov — calcula a matriz de covariância

  2. Continuam os trabalhos para adicionar métodos embutidos para matrizes numéricas. Isto ampliará a facilidade de escrita do código, o tornará mais compacto e melhorará a compatibilidade com outras linguagens.

    Atualmente, há três métodos disponíveis:
    • ArgSort — classifica a matriz por uma dada dimensão, por padrão pela mais recente (axis=-1).
    • Range — retorna o número de elementos na dimensão especificada da matriz. Análogo a ArrayRange.
    • Size — retorna o número de elementos da matriz. Análogo a ArraySize.

    Exemplo:
    void OnStart()
      {
       int arr[4][5]=
         {
            {22, 34, 11, 20,  1},
            {10, 36,  2, 12,  5},
            {33, 37, 25, 13,  4},
            {14,  9, 26, 21, 59}
         };
       ulong indexes[4][5];
    //--- Classificamos a matriz
       arr.ArgSort(indexes,-1,0);
       Print("indexes");  
       ArrayPrint(indexes);
      }
    
    // Resultado no log:
    // indexes
    //     [,0][,1][,2][,3][,4]
    // [0,]   4   2   3   0   1
    // [1,]   2   4   0   3   1
    // [2,]   4   3   2   0   1
    // [3,]   1   0   3   2   4

  3. Em andamento esforços para acrescentar métodos embutidos para strings.

    Os seguintes métodos estão atualmente disponíveis:
    • BufferSize — retorna o tamanho do buffer alocado para a cadeia.
    • Compare — compara duas strings e retorna o resultado como um inteiro.
    • Length — retorna o número de caracteres na string.
    • Find — procura uma substring na string.
    • Upper — converte a string em maiúsculas.
    • Lower — Upper — converte a string em minúsculas.
    • Replace — substitui a substring.
    • Reserve — reserva um buffer para a string.

    Todos os métodos funcionam da mesma maneira que as funções de string.

    Exemplo:
    void OnStart()
      {
       string test="some string";
       PrintFormat("String length is %d",test.Length());
      }
    
    // Resultado no log:
    // String length is 11
  4. Adicionado o valor SYMBOL_SUBSCRIPTION_DELAY à enumeração ENUM_SYMBOL_INFO_INTEGER — tamanho do atraso nas cotações transmitidas pelo símbolo.

    Usado somente para instrumentos baseados em assinaturas, geralmente, ao transmitir dados em modo de teste gratuito.

    A propriedade só pode ser consultada para símbolos selecionados na Observação do Mercado. Caso contrário, você receberá o erro ERR_MARKET_NOT_SELECTED (4302).

  5. Adicionada a propriedade ACCOUNT_HEDGE_ALLOWED à propriedade ENUM_ACCOUNT_INFO_INTEGER — permissão para abrir posições opostas e ordens pendentes. Usado somente para contas de cobertura, permitindo a implementação das exigências de alguns reguladores quando a conta é proibida de ter posições opostas, mas permitido ter múltiplas posições do mesmo símbolo na mesma direção.

    Se esta opção for desativada, não é permitido que as contas tenham posições e ordens opostas para o mesmo instrumento ao mesmo tempo. Por exemplo, se houver uma posição Buy na conta, o usuário não poderá abrir uma posição Sell ou colocar uma ordem de venda pendente. Se o usuário tentar fazer isso, ele receberá o erro TRADE_RETCODE_HEDGE_PROHIBITED.

  6. Acrescentadas novas propriedades à enumeração ENUM_SYMBOL_INFO_DOUBLE:
    • SYMBOL_SWAP_SUNDAY
    • SYMBOL_SWAP_MONDAY
    • SYMBOL_SWAP_TUESDAY
    • SYMBOL_SWAP_WEDNESDAY
    • SYMBOL_SWAP_THURSDAY
    • SYMBOL_SWAP_FRIDAY
    • SYMBOL_SWAP_SATURDAY

    Elas permitem que você obtenha a taxa de acumulação de swaps para cada dia da semana. 1 — único swap acumulado, 3 — triplo, 0 — sem acumulação.

  7. Corrigido um bug, ao usar CopyTicks e CopyTicksRange, que fazia com que os dados desatualizados fossem dados à meia-noite. Ocorria quando não eram recebidos ticks do instrumento.
  8. Correções de crash-logs.
11 fevereiro 2022
MetaTrader 5 build 3210: adicionamos novos métodos de matrizes e controle de valor mínimo/máximo de indicador

MQL5

  1. Adicionadas as funções Min, Max, ArgMin, ArgMax e Sum para vetores e matrizes, que permitem encontrar valores mínimos e máximos, índices e soma correspondentes.
  2. Adicionado suporte para métodos Flat para matrizes. Isto permite que um elemento matricial seja endereçado através de um único índice, e não através de dois.
    double matrix::Flat(ulong index) const;      // getter
    void matrix::Flat(ulong index,double value); // setter

    Pseudocódigo para calcular o endereço de um elemento da matriz:

    ulong row=index / mat.Cols();
    ulong col=index % mat.Cols();
    
    mat[row,col]

    Por exemplo, para uma matriz matrix mat(3,3) o acesso aos elementos pode ser registrado assim:

      para leitura —  x=mat.Flat(4), o que corresponde à expressão x=mat[1][1]
      para registro —  mat.Flat(5, 42), o que corresponde à expressão mat[1][2]=42

    Caso seja chamada uma função com um índice de matriz inválido, será gerado um erro crítico de
    execução - OutOfRange.
  3. Melhorada a formatação de números fracionários nos parâmetros de entrada MQL5 do programa. Quando eram lidos alguns números reais, nos parâmetros de entrada eram substituídos números com mais zeros, por exemplo, 0,4 era representado como 0.400000000002.
  4. Corrigidos bugs da biblioteca matemática Math\Stat\Math.mqh. Além disso, foi modificada a função MathSample desta biblioteca para corresponder ao comportamento clássico do mesmo tipo de bibliotecas matemáticas quando da amostragem com retorno.
  5. Corrigido um bug ao usar CopyTicks/CopyTicksRange, este erro fazia com que os dados desatualizados fossem dados à meia-noite para aqueles casos em que não eram recebidos ticks do instrumento.
  6. Acrescentados os novos valores INDICADOR_FIXED_MINIMUM e INDICADOR_FIXED_MAXIMUM à enumeração ENUM_CUSTOMIND_PROPERTY_INTEGER.
    Estas propriedades são utilizadas para habilitar/desabilitar a fixação dos valores mínimos e máximos do indicador através da função IndicatorSetInteger. Ao chamar IndicatorSetInteger(INDICATOR_FIXED_MINIMUM/INDICATOR_FIXED_MAXIMUM, true) é usado o valor mínimo/máximo atual, respectivamente.



Tester

  1. Alterado o algoritmo de cálculo Sharpe Ratio, agora é calculado da maneira clássica e seu valor é reduzido ao intervalo anual. O algoritmo anterior se baseava no PnL (spread of profits and losses), mas não levava em conta as flutuações do capital líquido em posições abertas. Agora são levados em conta os altos e baixos do capital líquido, e o valor do próprio índice de Sharpe é tratado classicamente:
    •  Sharpe Ratio < 0              Estratégia não lucrativa, não é boa.  Ruim.
    •  0 < Sharpe Ratio  < 1.0    Risco não compensa. Tais estratégias podem ser tomadas para operar se não houver alternativas.  Incerto.
    • Sharpe Ratio ≥ 1.0            Caso o índice de Sharpe seja maior que um, o risco está compensando, a carteira/estratégia está funcionando. Bom.
    • Sharpe Ratio ≥ 3.0            Um número alto indica que a probabilidade de ocorrência de uma perda em qualquer negócio em particular é muito baixa. Muito bom

Terminal

  1. Otimizado o consumo de memória do terminal.
  2. Aprimorado o funcionamento do subsistema de rede para melhorar o desempenho e reduzir a latência da rede.
  3. Removida a exibição do zero da grade no indicador quando a renderização da grade estiver desativada.


28 janeiro 2022
MetaTrader 5 build 3180: Vetores e matrizes em MQL5 e uso mais prático

Terminal

  1. Adicionada a ativação da janela do gráfico ao soltar nela quer seja um símbolo desde a "Observação do mercado" ou uma operação de negociação desde o histórico da conta.

    Ambas as ações alteram o símbolo do gráfico para o selecionado. Anteriormente, isso não causava que a janela do gráfico ficasse ativa. Assim, algumas ações adicionais, como chamar a caixa de diálogo de negociação (F9) ou alterar a escala (+/-) usando teclas de atalho, podem ser aplicadas inesperadamente a outro gráfico para o usuário. Agora, após arrastar o gráfico do símbolo alterado, este fica imediatamente selecionado.

  2. Adicionada a abertura de uma nova janela de ordem ao clicar duas vezes em uma operação no histórico da conta. O instrumento financeiro da operação em que você clicou é imediatamente substituído na caixa de diálogo, permitindo negociar mais rapidamente. Um comando semelhante foi adicionado ao menu de contexto.




  3. Adicionada a inclusão inteligente de volumes reais ou de ticks ao abrir novos gráficos. Esses dados são importantes na hora de analisar o mercado, porém, nem todos os traders estão cientes de sua disponibilidade na plataforma.

    A prioridade é dada aos volumes reais de negociação. Se forem fornecidos por uma corretora, sua exibição será habilitada no gráfico. Caso contrário, será habilitada a exibição de volumes de ticks.

    O mecanismo é usado apenas se o gráfico for aberto como modelo default.tpl. Se o usuário desabilitar manualmente a exibição de volumes nas configurações do gráfico, ele não será habilitado novamente quando for reaberto. Os modelos personalizados não são afetados.

  4. Corrigida e significativamente acelerada a exibição da interface do usuário.
  5. Aprimorada a função de impressão de gráfico, chamada através do menu "Arquivo":
    • Corrigido o salvamento das configurações de impressão
    • Melhorada a aparência da página impressa: ampliadas linhas de grade, escondido nome do programa, atualizada fonte do cabeçalho
    • Aumentada a caixa de diálogo de impressão para exibir a interface corretamente

  6. Corrigido o funcionamento do campo de volume no painel de negociação rápida no gráfico. Anteriormente, após inserir um novo valor e pressionar a tecla Tab, o valor era redefinido para o valor anterior.
  7. Corrigida a exibição de histórico de negociação no gráfico. Anteriormente, ao alternar entre contas, as operações da conta anterior não eram removidas dos gráficos.
  8. Corrigido o pagamento de serviços da MQL5.com via PayPal.
  9. Corrigido o congelamento da plataforma ao exibir o gráfico de volatilidade de opções.
  10. Corrigida a verificação de número de telefone na janela de registro da conta real. Em alguns casos, após inserir o número certo, a plataforma não permitia avançar para a próxima etapa do registro.
  11. Corrigida a verificação de direitos ao entrar em um bate-papo em grupo com membros da comunidade MQL5.com. Anteriormente, um usuário recém-conectado só podia ler, mas não escrever mensagens.
  12. Substituído o rótulo no gráfico na ausência de dados. Agora, o nome, o timeframe e a descrição do instrumento são exibidos em vez de "Waiting for update".
  13. Melhorado o suporte de preços negativos, adicionado no build 2450. Para os respectivos instrumentos, a "Observação do mercado" agora também pode exibir valores zero.
  14. Corrigida a exibição de logotipos de produtos no Mercado ao trabalhar no Wine.

MQL5

  1. Continuamos a trabalhar o suporte para vetores e matrizes. As novas funções ampliam significativamente as possibilidades para desenvolvedores de soluções baseadas em redes neurais.

    Já existem muitas funcionalidades neste momento:
    • Eye — cria uma matriz com uns na diagonal especificada e zeros nos outros lugares.
    • Identity — cria uma matriz com o tamanho especificado com uns na diagonal principal e zeros nos outros lugares.
    • Ones — cria uma matriz com o tamanho especificado, preenchida com uns.
    • Zeroes — cria uma matriz com o tamanho especificado, preenchida com zeros.
    • Full — cria uma matriz com o tamanho especificado, preenchida com os valores especificados.
    • Copy — cria uma cópia de uma matriz ou de um vetor.
    • Diag — extrai uma diagonal de uma matriz, e preenche a diagonal especificada com valores provenientes de um vetor.
    • Tri — cria uma matriz com uns na diagonal especificada e sob ela e zeros nos outros lugares.
    • Row — retorna uma linha de matriz como um vetor, e preenche a linha especificada com valores provenientes de um vetor.
    • Col — retorna uma coluna de matriz como um vetor, e preenche a coluna especificada com valores provenientes de um vetor.
    • Rows — retorna o número de linhas em uma matriz.
    • Cols — retorna o número de colunas em uma matriz.
    • Transpose — transposição da matriz.
    • * — produto de matrizes, de vetores e de escalares — produto dot.
    • Power — exponenciação de matriz.
    • Kron — produto de Kronecker.
    • Cholesky — decomposição de Cholesky.
    • QR — fatoração QR.
    • SVD — decomposição SVD.
    • LU — decomposição LU.
    • LUP — decomposição LUP.
    • Norm — cálculo de norma de matriz.
    • Cond — cálculo de número de condição de matriz.
    • Spectrum — cálculo de espetro de matriz.
    • Det — cálculo de determinante de matriz.
    • Rank — cálculo de posto de matriz.
    • SLogDet — obtém o sinal e o logaritmo de um determinante de matriz
    • Trace — cálculo de traço de matriz.
    • Solve — solução de sistemas de equações lineares.
    • LstSq — solução de sistemas de equações lineares pelo método dos mínimos quadrados.
    • Inv — cálculo de inversa de matriz.
    • PInv — cálculo de pseudoinverso pelo método Moore-Penrose
    • Compare — comparação de duas matrizes pelo método Épsilon.

    Informações detalhadas sobre a formatação estão disponíveis na documentação MQL5:

  2. Corrigidos erros ao trabalhar usando arquivos e bancos de dados relacionados à restrição de comprimento de caminho. Em particular, a função DatabaseOpen permitia definir um caminho maior que o permitido, causando a criação incorreta do banco de dados. A função agora retornará corretamente o código de erro ERR_TOO_LONG_FILE_NAME.
  3. Corrigido o controle de constância de variáveis. Em alguns casos, o compilador podia não gerar o erro "constant variable cannot be passed as reference".
  4. Corrigidos avisos errôneos do compilador sobre o uso de uma variável não inicializada.
  5. Corrigido o funcionamento da função ChartWindowOnDropped para indicadores. Anteriormente, sempre retornava valor zero.
  6. Adicionado ao módulo de integração com Python o suporte para Python 3.10.

VPS

  1. Corrigida a exibição do item VPS no Navegador. Em alguns casos, desaparecia ao alternar entre contas.

MetaEditor

  1. Corrigida expansão de expressões complexas na janela de visualização durante a depuração.

Tester

  1. Corrigida a exportação de relatórios de teste para um arquivo. Alguns valores eram arredondados incorretamente quando uma moeda com 0 casas decimais era usada como moeda de depósito. Por exemplo, o JPY.
22 outubro 2021
MetaTrader 5 build 3091: melhorias de desempenho

Terminal

  1. Corrigida a transição para uma página em branco após a compra de serviços MQL5. Os usuários agora serão diretamente reencaminhados para os resultados da operação.
  2. Corrigida a compressão excessiva de imagens de documentos carregadas ao solicitar contas reais. Isso melhorou a qualidade das verificações KYC automatizadas e a velocidade de tomada de decisão.
  3. Corrigido o funcionamento do gráfico aberto quando o teste é concluído.

MQL5

  1. Adicionado suporte para SQLite 3.36.0.

MetaEditor

  1. Adicionado destaque de fundo para parêntesis emparelhados. Para habilitar vá para as configurações gerais do MetaEditor.
  2. Aprimorado o desempenho do depurador de programas MQL5.

Correções de crash-logs.
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 &quot;Minhas assinaturas&quot; 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 para fácil instalação do MetaTrader 5 em computadores macOS. Ele facilita a instalação da plataforma como um aplicativo normal.
      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.pkg.zip
    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.

123456789101112131415