Nova versão da plataforma MetaTrader 5 build 1570: melhoria do mostruário do Mercado e expansão de funções de modelo em MQL5

 

Nova versão da plataforma MetaTrader 5 build 1570: melhoria do mostruário do Mercado e expansão de funções de modelo em MQL5

Na sexta-feira, 24 de março de 2017, liberaremos uma atualização da plataforma MetaTrader 5. Ela contém as seguintes alterações:

  1. Terminal: atualizado o mostruário da loja de aplicativos MetaTrader Market. A escolha de robôs de negociação e indicadores técnicos tornou-se mais fácil. Nós não só atualizamos o design, mas também acrescentamos a seleção de produtos:

    • Na página principal agora são mostrados os mais populares Experts, indicadores, produtos recentes do Mercado, bem como os melhores aplicativos gratuitos.
    • Nas seções de Experts, indicadores e utilitários apareceram subcategorias: robôs de cobertura e de grade, indicadores de tendência e multimoeda, e muito mais.




  2. Terminal: corrigida tanto a atualização do terminal de cliente quanto a mecânica das compras embutidas no Mercado, Sinais e Hospedagem Virtual, ao utilizar a conta de usuário de Windows com privilégios restritos.
  3. Terminal: corrigido o erro que, em alguns casos, levava à classificação incorreta do histórico de posições.
  4. Terminal: otimizada e corrigida a exibição da aba "Ativos".
  5. MQL5: adicionado o suporte para a sobrecarga de funções de modelo de parâmetros. Por exemplo, se existir uma função de modelo que registra no primeiro parâmetro o valor do segundo parâmetro usando uma conversão explícita de tipos. Em linguagem MQL5 é proibida a conversão do tipo string para o tipo bool, mas podemos fazer isto nós mesmos. Criamos uma sobrecarga de função de modelo:
    //+------------------------------------------------------------------+
    //| Função de modelo                                                 |
    //+------------------------------------------------------------------+
    template<typename T1,typename T2>
    string Assign(T1 &var1,T2 var2)
      {
       var1=(T1)var2;
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Sobrecarga especial para o caso bool+string                      |
    //+------------------------------------------------------------------+
    string Assign(bool &var1,string var2)
      {
       var1=(StringCompare(var2,"true",false) || StringToInteger(var2)!=0);
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int i;
       bool b;
       Print(Assign(i,"test"));
       Print(Assign(b,"test"));
      }
    Como resultado da execução deste código, podemos ver que para o par int+string foi utilizada a função de modelo Assign(), enquanto, na segunda chamada, para o par bool+string já foi utilizada a versão sobrecarregada.
    string Assign<int,string>(int&,string)
    string Assign(bool&,string)

  6. MQL5: adicionada a possibilidade de especialização explícita de funções de modelo. Para fazer isto, antes da lista de parâmetros de chamada, é preciso especificar os parâmetros de digitação:
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // especialização explícita da função de modelo
      }
    Assim, a especialização não se realiza através do parâmetro de chamada, mas sim especificando os tipos.

  7. MQL5: otimizada a exibição de indicadores de usuário com o tipo de desenho DRAW_ZIGZAG.
  8. MQL5: na enumeração de tipos de transações ENUM_DEAL_TYPE adicionados novos valores:

    • DEAL_DIVIDEND — operação de dividendo.
    • DEAL_DIVIDEND_FRANKED — operação de dividendo franqueado (não tributável, a empresa paga pelo cliente).
    • DEAL_TAX — dedução de imposto.

  9. MQL5: corrigida a exibição de indicadores com o tipo de desenho DRAW_FILLING. Caso coincidam as coordenadas das linhas superior e inferior, agora é desenhada uma linha fina.
  10. MQL5: corrigido o cálculo de coordenadas do objeto "Etiqueta bitmap" (Bitmap Label) ao definir o parâmetro CHART_SHOW na condição false. Este parâmetro é definido pela função ChartSetInteger e permite ocultar todos os elementos do gráfico de preço a fim de criar uma interface própria de programa.
  11. MQL5: corrigido o erro de transcodificação de imagens de 24 bits ao serem colocadas nos recursos do aplicativo MQL5.
  12. MQL5: corrigido o erro de impressão de estruturas das funções ArrayPrint.
  13. MQL5: atualizadas as bibliotecas-padrão MQL5.
  14. MetaEditor: adicionada a tradução da interface de usuário para malaio.
  15. Signals: corrigida a abertura da pagina de sinal no terminal, durante a transição a partir do site da MQL5.community, caso a conta de negociação não esteja conectada.
  16. Tester: corrigido o erro da função CopyTicks em execução, no testador de estratégias.
  17. Tester: corrigida a classificação de transações do tipo "Retirada" (Withdrawal) ao gerar um relatório de teste.
  18. Tester: corrigida a modificação de ordens pendentes.
  19. Hosting: corrigida a exibição do assistente da hospedagem virtual em telas de altíssima resolução (4K).
  20. Documentação atualizada.


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

Razão: