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

O que há de novo na MetaTrader 5?

17 setembro 2020

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.