MetaTrader 5 build 2265: funções DirectX para visualização 3D em MQL5 e configuração de ferramentas no testador de estratégias

Estendida a lista de colunas disponíveis na Observação do Mercado. Agora, na seção principal, você pode incluir até 40 parâmetros adicionais para instrumentos que estavam disponíveis anteriormente apenas na guia 'Detalhes'

6 dezembro 2019

Terminal

  1. Estendida a lista de colunas disponíveis na Observação do Mercado. Agora, na seção principal, você pode incluir até 40 parâmetros adicionais para instrumentos que estavam disponíveis anteriormente apenas na guia 'Detalhes'.




  2. Adicionado o realce da conta atual conectada e do servidor atual no Navegador. A função será útil se você usar muitas contas com diferentes corretoras.




  3. Atualizado design de bordas para gráficos. Eles se tornaram mais compactos, liberando mais espaço para informações úteis.




  4. Alterado o algoritmo para calcular os totais ao exibir o histórico de negociação na forma de posições. Agora eles são calculados a partir de registros reais.

    Para apresentar o histórico na forma de posições, o terminal utiliza informações sobre trades concluídos durante o período solicitado. Além disso, são exibidas apenas as posições fechadas durante esse período. Se a posição ainda estiver aberta ou o tempo de fechamento não cair dentro do intervalo selecionado, ela não será exibida. Nesse sentido, as leituras totais (lucro, comissão) podem ser diferentes ao visualizar posições ou ao visualizar ordens/trades.

    Por exemplo, você está visualizando o histórico da semana passada. Nesse período, foram concluídos 100 trades, 98 dos quais abriram e fecharam 20 posições. Os dois últimos trades abriram novas posições que ainda não estão fechadas. Nesse caso, ao visualizar o histórico na forma de trades, você verá 100 entradas, bem como leituras totais calculadas com base nelas. Ao visualizar o histórico na forma de posições, você verá 20 entradas coletadas com base em 98 trades. São estes dados que serão levados em consideração ao dar as leituras finais. Se a corretora cobrar uma comissão pelos trades de entrada, o tamanho final da comissão ao visualizar o histórico de trades e de posições será diferente, pois, neste último caso, os dois últimos trades não serão levados em consideração.

  5. Acelerada a inicialização de programas MQL5.
  6. Adicionada a opção /beta para o arquivo de instalação do terminal que permite baixar a versão beta do programa em vez da versão de lançamento. No modo normal, para obter uma versão beta, você deve primeiro instalar a versão de lançamento e depois atualizá-la. Agora você pode pular esta etapa, economizando tempo e tráfego. Exemplo de início de instalação:
    C:\mt5setup.exe /beta
  7. Corrigido o erro na exibição de requisitos de margem para ações (instrumentos do tipo "Exchange Stocks").
  8. Acelerado o trabalho de todos os componentes da plataforma graças ao uso do compilador Clang/LLVM. Em alguns casos, a aceleração atinge 20%.

MQL5

  1. Adicionados novos recursos e shaders do DirectX 11 para visualização em 3D. Agora você pode criar gráficos tridimensionais poderosos diretamente em MQL5.

    A nova classe CCanvas3D é uma extensão da classe de gráficos personalizados CCanvas. Está disponível no diretório \MQL5\Include\Canvas\. Ele implementa funções para renderizar objetos tridimensionais através do DirectX API.

    • Create — criar cenário.
    • Attach — vinculação do cenário ao gráfico.
    • Destroy — destruição do cenário.
    • ObjectAdd — adição de objeto-herdeiro da classe base CDXObject ao cenário.
    • Render — ciclo completo de renderização com limpeza de buffers e renderização de todos os CDXObjects adicionados através do método ObjectAdd.
    • RenderBegin — inicia a renderização do cenário, preenche o buffer de imagem com a cor especificada (ao usar o sinalizador DX_CLEAR_COLOR) e os buffers de profundidade (ao usar DX_CLEAR_DEPTH) e também define o buffer de cenário DXInputScene para shaders por padrão.
    • RenderEnd — completa a renderização do cenário e recebe o resultado no buffer interno. Se redraw==true, exibe a imagem no gráfico ao qual está anexada.
    • ViewMatrixGet — obter matrizes de exibição.
    • ViewMatrixSet — definir matrizes de exibição. A matriz não é compatível com os métodos ViewPositionSet, ViewRotationSet, ViewTargetSet, ViewUpDirectionsSet.
    • ViewPositionSet — definir o ponto de vista/posição da câmera.
    • ViewRotationSet — definir a matriz de rotação da câmera.
    • ViewTargetSet — definir o ponto para o qual aponta a câmera. Juntamente com o ViewUpDirectionsSet, é uma alternativa ao ViewRotationSet.
    • ViewUpDirectionsSet — definir a direção vertical da câmera. Juntamente com o ViewTargetSet, é uma alternativa ao ViewRotationSet.
    • ProjectionMatrixGet — obter matrizes de projeção.
    • ProjectionMatrixSet — definir matrizes de projeção.

    A documentação completa sobre a nova biblioteca estará disponível em breve.




  2. Adicionado suporte para trabalhar com bancos de dados SQLite diretamente em MQL5. Agora você pode executar facilmente consultas SQL sem criar ligações complexas. A nova extensão da biblioteca padrão assume todo o trabalho interno.

    As seguintes funções estão disponíveis:

    • DatabaseOpen — abre ou cria um banco de dados no arquivo especificado
    • DatabaseClose — fecha um banco de dados
    • DatabaseTableExists — verifica a existência de tabela no banco de dados
    • DatabaseExecute — executa uma consulta no banco de dados especificado
    • DatabasePrepare — cria um identificador de consulta, que pode ser executado usando DatabaseRead()
    • DatabaseRead — realiza o a transição para o próximo registro como resultado de uma consulta
    • DatabaseFinalize — exclui uma consulta criada em DatabasePrepare()
    • DatabaseTransactionBegin — inicia a execução da transação
    • DatabaseTransactionCommit — conclui a execução da transação
    • DatabaseTransactionRollback — executa a reversão de transações
    • DatabaseColumnsCount — obtém o número de campos na consulta
    • DatabaseColumnName — obtém o nome do campo pelo número
    • DatabaseColumnType — obter tipo de campo por número
    • DatabaseColumnSize — obtém o tamanho do campo em bytes
    • DatabaseColumnText — obtém o valor do campo do registro atual como uma string
    • DatabaseColumnInteger — obtém um valor int do registro atual
    • DatabaseColumnLong — obtém um valor long do registro atual
    • DatabaseColumnDouble — obtém um valor double do registro atual
    • DatabaseColumnBlob — obtém o valor do campo do registro atual como um array

    Os seguintes códigos de erro foram adicionados para trabalhar com novas funções:

    • ERR_MQL_DATABASE_INTERNAL (5120) — erro interno do banco de dados
    • ERR_MQL_DATABASE_INVALID_HANDLE (5121) — identificador de banco de dados inválido
    • ERR_MQL_DATABASE_TOO_MANY_OBJECTS (5122) número de objetos Database excedido
    • ERR_MQL_DATABASE_CONNECT (5123)erro de conexão ao banco de dados
    • ERR_MQL_DATABASE_EXECUTE (5124) erro ao realizar a consulta
    • ERR_MQL_DATABASE_PREPARE (5125) erro ao criar a consulta
    • ERR_MQL_DATABASE_NO_MORE_DATA (5126) — não há mais dados para leitura
    • ERR_MQL_DATABASE_STEP (5127) ошибка transição para o seguinte registro de consulta
    • ERR_MQL_DATABASE_NOT_READY (5128) os dados para leitura dos resultados da consulta ainda não estão prontos
    • ERR_MQL_DATABASE_BIND_PARAMETERS (5129) erro de substituição automática de parâmetro na consulta SQL

  3. Adicionada a nova propriedade de programas MQL5 para escolher o método de visualização por padrão.
    #property optimization_chart_mode "3d,InpX,InpY"
    Ao usá-la, você pode especificar o tipo de gráfico aberto uma vez concluída a otimização, bem como os parâmetros do programa para seus eixos X e Y.

    A propriedade define apenas a visualização do gráfico por padrão. O usuário pode alterá-la manualmente a qualquer momento através do menu de contexto.

  4. Adicionada a função MathArctan2. Retorna em radianos o valor de um ângulo cuja tangente é igual ao quociente de dois números especificados.
    double  MathArctan2(
       double  y      // coordenada y do ponto
       double  x      // coordenada x do ponto
       );
  5. Realizada otimização geral de programas para melhorar o desempenho e reduzir o consumo de recursos.
  6. MQL5: adicionados exemplos de cálculos matemáticos que podem ser executados no testador de estratégias. Você pode encontrá-los no diretório \MQL5\Experts\Examples\Math 3D\.
  7. Implementado controle mais rígido do escopo de visibilidade (namespaces).
  8. Adicionado carregamento de bibliotecas vinculadas ao usar bibliotecas .NET em programas MQL5. Se a biblioteca .NET usada exigir o uso de outras bibliotecas, o compilador tentará carregá-las automaticamente do diretório atual ou do diretório \MQL5\Libraries.
  9. Corrigido o trabalho com a hora no módulo MetaTrader para integração com Python. Agora, todos os dados de saída usam o horário do servidor de negociação ao qual o terminal está conectado.

Tester

  1. Muitos novos recursos e melhorias no testador de estratégia:


    Configurações personalizadas para instrumentos financeiros
    Agora você pode alterar as configurações do instrumento principal no qual ocorre o teste/otimização. Você dispõe de quase todos os parâmetros de especificação: volumes, modo de negociação, requisitos de margem, modo de execução e muito mais. Desse modo, para verificar o EA sob outras condições de negociação, agora é opcional criar um símbolo personalizado e carregar o histórico nele. Você pode simplesmente alterar as configurações do instrumento padrão.



    Ao alterar a especificação de um símbolo, o ícone de configurações, bem como o ícone do próprio símbolo, são marcados com um asterisco na lista. Assim, você sempre saberá que o teste vem com configurações personalizadas.




    Configurações/EAs/gráficos recentes
    Para configurar o teste ou a otimização rapidamente, use os novos comandos do menu de contexto. Escolha as últimas configurações do testador utilizadas, os gráficos ou programas mais recentes:




MetaEditor

  1. adicionada o recurso para compilar projetos С/С++ e Python diretamente do MetaEditor. Agora, ao usar o editor embutido, você pode realizar projetos multilíngues.

    Se no seu computador já estiverem instalados os compiladores respectivos, o MetaEditor irá detectá-los e adicioná-los às configurações. Você também pode especificar o caminho para os componentes necessários, acessando a guia "Compiladores". Se os componentes ainda não estiverem instalados, você pode baixá-los clicando em "Instalar" no lado oposto do campo correspondente.




    Depois disso, você poderá trabalhar com projetos em С/С++ e Python da mesma maneira que nos programas regulares MQL5.

  2. Agora dentro do diretório Shared Projects, destinado a trabalhar com projetos de grupo através do MQL5 Storage, você pode criar subprojetos. Anteriormente, apenas podiam ser criados projetos individuais no nível superior.
  3. Atualizado depurador embutido.
  4. Corrigida a adição de cabeçalho de função ao usar estilizador de código.
  5. Comandos para navegar para a posição anterior e seguinte do cursor agora estão disponíveis não apenas no menu "Visualizar", mas também na barra de ferramentas.
  6. Agora você pode usar espaços nos nomes dos projetos.

Android

  1. Adicionado acesso rápido para depositar/retirar fundos da conta de negociação no site da corretora.

    Agora você não precisa procurar as funções correspondentes em sua conta no site da corretora. Os comandos para navegar rapidamente para as páginas de depósito e retirada da contas estão disponíveis diretamente nos terminais — na seção de contas e negociação:



    • Os comandos de depósito/retirada estão disponíveis apenas se as funções correspondentes estiverem ativadas para a conta de negociação no lado da corretora.
    • O terminal de negociação não realiza nenhuma operação de depósito/retirada da conta. As funções internas redirecionam o usuário apenas para as páginas da Web da corretora correspondentes.

  2. Agora as posições no histórico são classificadas por data de fechamento.
  3. As posições fechadas por Stop Loss ou Take Profit agora são realçadas com linhas verticais vermelhas e verdes na seção de histórico.
  4. À especificação do instrumento de negociação adicionados novos campos:

    • Categoria — propriedade usada para marcação adicional de instrumentos financeiros. Por exemplo, pode indicar setores de mercado relacionados com o símbolo: Agricultura, Petróleo e Gás, etc. Exibida apenas se as informações respectivas forem fornecidas pela corretora.
    • Bolsa de valores — aqui é indicado o nome da bolsa ou da plataforma na qual é negociado o símbolo. Exibida apenas se as informações respectivas forem fornecidas pela corretora.

  5. Adicionada indicação de status 'Margin Call' à seção de negociação. Quando ele ocorrer, as opções 'Margem', 'Margem livre ' e 'Nível da Margem' ficam vermelhas.
  6. Corrigida exibição do botão de navegação para a seção de senhas descartáveis em tablets.
  7. Várias correções e melhorias.

iPhone/iPad

  1. Adicionada a possibilidade de mudar rapidamente para depositar/retirar fundos da conta de negociação no site da corretora. Os detalhes do trabalho são fornecidos acima na descrição das alterações de terminal para Android.



  2. Adicionado suporte a layout escuro para iOS/iPadOS.
  3. Seção de trabalho com senhas OTP agora disponível na versão para iPad.
  4. As posições fechadas por Stop Loss ou Take Profit agora são realçadas com linhas verticais vermelhas e verdes na seção de histórico.
  5. Agora as posições no histórico são classificadas por data de fechamento. Se a posição ainda não foi fechada, para classificação é usada a hora de abertura.
  6. Várias correções e melhorias.