---
title: "MetaTrader 5 build 1455: Biblioteca de funções matemáticas MQL5 - Última atualização"
description: "Untitled Document Foram adicionados dicas pop-up para os botões Buy, Sell e Close nos diálogos da negociação. - Última atualização"
image: "https://www.metatrader5.com/c/17/0/2__2.png"
url: "https://www.metatrader5.com/pt/releasenotes/terminal/1384"
---

# MetaTrader 5 build 1455: Biblioteca de funções matemáticas MQL5

## Untitled Document Foram adicionados dicas pop-up para os botões Buy, Sell e Close nos diálogos da negociação

14 outubro 2016

### Terminal

1. Foram adicionados dicas pop-up para os botões Buy, Sell e Close nos diálogos da negociação. As dicas explicam exatamente quais ativos são comprados e vendidos durante a execução de uma operação, ajudando traders iniciantes a entender o processo de negociação.

   ![](https://www.metatrader5.com/c/17/0/1__2.png)
2.  Foram adicionados novos ícones de ordens, transações e posições nas guias "Negociação" e "Histórico".

   ![](https://www.metatrader5.com/c/17/0/2__2.png)
3.  Foram otimizados e acelerados consideravelmente (até 4-5 vezes) a exibição e atualização do livro de ofertas, gráfico de ticks do livro de ofertas e canal de negociações.
4.  Foi corrigido o erro de sincronização do histórico de ticks em tempo de não-negociação. Em alguns casos, o erro levava ao consumo excessivo de tráfego de rede.

### MQL5

1. Na biblioteca padrão, foi incluía a versão MQL5 da [biblioteca de análise numérica ALGLIB](https://www.alglib.net/).

   **Possibilidades da biblioteca**

     - Álgebra linear
     - Solução de sistemas de equações lineares e não lineares
     - Interpolação
     - Otimização
     - Transformada rápida de Fourier
     - Integração numérica
     - Aproximação de mínimos quadrados lineares e no-lineares
     - Solução de equações diferenciais ordinárias
     - Cálculo de funções especiais
     - Estatística descritiva e testes de hipóteses
     - Análise de dados: classificação, regressão
     - Implementação de algoritmos de álgebra linear, interpolação, etc. na aritmética de alta precisão (usando MPFR)

   **Como usar**

   Os arquivos da biblioteca ALGLIB estão localizados no diretório \MQL5\Include\Math\Alglib. Para usar as funções, adicione o arquivo principal da biblioteca ao seu programa:

    #include <Math\Alglib\alglib.mqh>
2. A biblioteca padrão foram adicionadas funções de trabalho com estatística matemática. Agora, em MQL5, estão disponíveis as possibilidades da [linguagem R](https://www.r-project.org/), ela é um dos melhores instrumentos de processamento estatístico e análise de dados.<br1>

   **Possibilidades da biblioteca**

   A biblioteca estatística contém funções para cálculo de características estatísticas de dados, bem como funções para trabalhar com distribuições estatísticas:

     - Funções para calcular as características estatísticas de elementos de matriz
     - Funções para trabalhar com distribuições estatísticas: distribuição normal, distribuição log-normal, distribuição beta, etc.

   **Como usar**

   Os arquivos da biblioteca ALGLIB estão localizados no diretório \MQL5\Include\Math\Stat. Para usar as funções, adicione o arquivo com as funções desejadas ao seu programa, por exemplo:

   ```
   #include <Math\Stat\Binomal.mqh> #include <Math\Stat\Cauchy.mqh>
   ```

   Leia descrições detalhadas das funções da biblioteca no artigo [Distribuições estatísticas em MQL5: pegamos as melhores a partir de R](https://www.mql5.com/pt/articles/2742).
3. Na biblioteca padrão, foi incluía a versão MQL5 da [biblioteca Fuzzy](https://sourceforge.net/projects/fuzzynet/), ela implementa sistemas de inferência de lógica difusa Mastop e Sugeno.

   **Possibilidades da biblioteca**

     - 13 funções de associação
     - Forma flexível de criação de regras para sistemas fuzzy
     - Sistema de inferência de lógica difusa Mastop
     - Sistema de inferência de lógica difusa Sugeno
     - 5 métodos de exclusão da difusão para sistemas do tipo Mamdani
     - Número ilimitado de variáveis de entrada e saída

   **Como usar**

   Os arquivos da biblioteca Fuzzy estão localizados no diretório \MQL5\Include\Math\Fuzzy. Para usar as funções, adicione o arquivo com as funções desejadas ao seu programa, por exemplo:

   ```
   #include <Math\Fuzzy\mamdanifuzzysystem.mqh> #include <Math\Fuzzy\sugenofuzzysystem.mqh>
   ```

   Uma descrição detalhada da biblioteca pode ser encontrada ni Code Base: [Fuzzy, biblioteca para trabalhar com lógica difusa](https://www.mql5.com/pt/code/13697)
4. Foi adicionada a propriedade CHART_QUICK_NAVIGATION para habilitar/desabilitar a barra de navegação rápida no gráfico. Para alterar e obter o estado das propriedades, utilize as funções ChartSetInteger e ChartGetInteger.

   ![](https://www.metatrader5.com/c/17/0/3__2.png)

    A barra é chamada pressionado a tecla Enter ou Space. Ao usá-la, é possível passar rapidamente para a data especificada no gráfico, alternar o símbolo e período. Se seu programa MQL5 manipula as teclas Enter ou Space, desative a propriedade CHART_QUICK_NAVIGATION para o terminal não capturar esses eventos. Além disso, a barra de navegação rápida pode ser chamada mediante duplo clique.
5. Foram adicionadas as funções FileLoad e FileSave para facilitar a leitura e armazenamento de matizes nos arquivos. Ao contrário de FileRead* e FileWrite*, essas funções não precisam o manipulador de arquivo. FileLoad e FileSave trabalham com matrizes de tipos numéricos, bem como com estruturas simples sem cadeias de caracteres, matrizes dinâmicas ou objetos de uma classe.

   ```
   long  FileLoad(    const string filename,      // [in] nome do arquivo    void         &buffer[],     // [out] matriz na qual é tomado em consideração o arquivo    uint         common_flag=0  // [in] 0 - busca do arquivo na pasta Files do terminal, FILE_COMMON - na pasta comum dos terminais    ); bool  FileSave(    const string filename,      // [in] nome do arquivo    const void   &buffer[],     // [in] matriz armazenada no arquivo    uint         common_flag=0  // [in] 0 - criação do arquivo na pasta Files do terminal, FILE_COMMON - na pasta comum dos terminais    );
   ```

    Exemplo de como armazenar, numa pasta, uma matriz de ticks e, em seguida, lê-la.

   ```
   //--- parâmetros de entrada input int      ticks_to_save=1000; // número de ticks //+------------------------------------------------------------------+ //| Script program start function                                    | //+------------------------------------------------------------------+ void OnStart()   {    string  filename=_Symbol+"_ticks.bin";    MqlTick ticks[]; //---    int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);    if(copied!=-1)      {       PrintFormat(" CopyTicks(%s) copied %d ticks",_Symbol,copied);       //--- se o histórico de ticks estiver sincronizado, o código de erro será igual a zero       if(!GetLastError()==0)          PrintFormat("%s: Ticks are not synchronized. Error=",_Symbol,copied,_LastError);       //---  armazenamos os ticks no arquivo       if(!FileSave(filename,ticks,FILE_COMMON))          PrintFormat("FileSave() failed, error=%d",GetLastError());      }    else       PrintFormat("Failed CopyTicks(%s), Error=",_Symbol,GetLastError()); //--- agora lemos de volta estes ticks a partir do arquivo    ArrayFree(ticks);    long count=FileLoad(filename,ticks,FILE_COMMON);    if(count!=-1)      {       Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");       for(int i=0;i<count;i++)         {          PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",          TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,          ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);         }      }   }
   ```
6. Foi modificada a exibição do indicador personalizado com modo de desenho DRAW_CANDLES. Agora é possível definir de uma a três cores. A exibição de velas depende de quantas cores são definidas. **Se for indicada uma cor**, todas as velas no gráfico serão completamente pintadas com essa cor.

   ```
   //--- velas pintadas na mesma cor #property indicator_label1  "One color candles" #property indicator_type1   DRAW_CANDLES //--- foi indicado apenas uma cor, por isso todas as velas terão apenas uma cor #property indicator_color1  clrGreen
   ```

   **Se forem indicadas duas cores**, os contornos das velas serão desenhadas usando a primeira cor, enquanto o corpo usando a segunda.

   ```
   //--- a cor das velas difere da cor das sombras #property indicator_label1  "Two color candles" #property indicator_type1   DRAW_CANDLES //--- sombras e contorno de velas de cor verde, corpo de cor branca #property indicator_color1  clrGreen,clrWhite
   ```

   **Se forem indicadas duas cores**, os contornos das velas serão desenhadas usando a primeira cor, enquanto o as velas de alta e baixa serão definidas usando uma segunda e terceira.

   ```
   //--- o cor das velas é diferente da cor das sombras #property indicator_label1  "One color candles" #property indicator_type1   DRAW_CANDLES //--- as sombras e contornos de cor verde; o corpo da vela de alta de cor branca; corpo da vela de baixa de cor vermelha #property indicator_color1  clrGreen,clrWhite,clrRed
   ```

    Assim, usando o estilo DRAW_CANDLES, é possível criar suas próprias opções personalizadas para colorir velas. Também é possível alterar dinamicamente todas as cores -no processo de trabalho do indicador- mediante a função PlotIndexSetInteger(índice_de_construção_DRAW_CANDLES, PLOT_LINE_COLOR, número_de_modificador, cor), aqui o número_de_modificador pode ter os seguintes valores:

     - 0 – cor do contorno e as sombras
     - 1 – cor do corpo da vela de alta
     - 2 – cor do corpo da vela de baixa

   ```
   //--- definimos a cor do contorno e das sombras PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,clrBlue); //--- definimos a cor do corpo para a vela de alta PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,clrGreen); //--- definimos a cor do corpo para a vela de baixa PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,clrRed);
   ```
7. Foram corrigidos vários bugs e foi acelerado o trabalhar com o histórico de ticks usando as funções CopyTicks.
8. Permitido usar operadores nas interfaces.

### Market

1.  Foi corrigido o erro que, em alguns casos, levava a um pedido repetido de autorização na MQL5.community ao comprar no Mercado.

### Tester

1. Foi adicionada a tradução da interface do usuário para grego, malaio e hebraico.

Documentação atualizada.

**Veja as notícias anteriores:**

- [Plataforma web MetaTrader 5: otimização do código e novas possibilidades da interface](https://www.metatrader5.com/pt/releasenotes/terminal/1382)
- [MetaTrader 5 iOS build 1403](https://www.metatrader5.com/pt/releasenotes/iphone/1379)
- [MetaTrader 5 Android build 1372](https://www.metatrader5.com/pt/releasenotes/android/1377)
- [MetaTrader 5 build 1430: guia Exposure atualizada](https://www.metatrader5.com/pt/releasenotes/terminal/1375)
- [MetaTrader 5 build 1395: aceleração de operações de negociação e melhorias no teste visual](https://www.metatrader5.com/pt/releasenotes/terminal/1369)
