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

O que há de novo na MetaTrader 5?

24 março 2017

Terminal

  1. 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. 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. Corrigido o erro que, em alguns casos, levava à classificação incorreta do histórico de posições.
  4. otimizada e corrigida a exibição da aba "Ativos".

MQL5

  1. 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)

  2. 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.

  3. Otimizada a exibição de indicadores de usuário com o tipo de desenho DRAW_ZIGZAG.
  4. 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.

  5. 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.
  6. 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.
  7. Corrigido o erro de transcodificação de imagens de 24 bits ao serem colocadas nos recursos do aplicativo MQL5.
  8. Corrigido o erro de impressão de estruturas das funções ArrayPrint.
  9. Atualizadas as bibliotecas-padrão MQL5.

MetaEditor

  1. Adicionada a tradução da interface de usuário para malaio.

Signals

  1. 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.

Tester

  1. Corrigido o erro da função CopyTicks em execução, no testador de estratégias.
  2. Corrigida a classificação de transações do tipo "Retirada" (Withdrawal) ao gerar um relatório de teste.
  3. Corrigida a modificação de ordens pendentes.

Hosting

  1. Corrigida a exibição do assistente da hospedagem virtual em telas de altíssima resolução (4K).

Documentação atualizada.