Última atualização da MetaTrader 4

Plataforma de negociação para o Forex na MetaTrader 4

14 outubro 2016
MetaTrader 4 Android build 996
  1. Adicionado bate-papo onde você pode falar gratuitamente com membros da MQL5.community. Simplesmente especificando o login do usuário no destinatário das mensagens, você pode enviar-lhe mensagens diretamente para o dispositivo móvel.

  2. Adicionada a possibilidade de editar os níveis dos indicadores.
  3. Adicionadas a traduções da interface para indonésio e híndi.
30 agosto 2016
MetaTrader 4 iOS build 975
  1. Um novo design de mensagens. Agora, as mensagens MQL5.community e notificações push da plataforma de desktop são exibidos como chat, semelhantes aos populares messengers de celular.

  2. Agora é possível mudar para uma das 22 línguas disponíveis direto da plataforma. Se você preferir usar a interface de inglês enquanto negocia, você pode selecioná-la na seção "Opções" ("Sobre o programa" no iPad) sem alterar a configuração de idioma de seu dispositivo.

18 agosto 2016
MetaTrader 4 build 1010: expansão dos recursos MQL4

Terminal

  1. Foi corrigido o erro que impedia a execução de programas MQL4 em terminais, ao trabalhar em versões de 32 bist de Windows 10, build 1607.
  2. Foram corrigidos os erros que, em alguns casos, causavam a exibição errada dos botões de pesquisa e do bate-papo.
  3. Foi corrigido o erro que, em alguns casos, causava a duplicação das cartas de boas-vindas recebidas no terminal ao abrir uma conta demo.

MQL4

  1. Foram adicionados os ponteiros 'void *', isso irá permitir criar coleções abstratas de objetos. Neste tipo de variável, você pode armazenar um ponteiro para um objeto de qualquer classe. Para a conversão inversa, recomenda-se usar o operador dynamic_cast<nome da classe *>(ponteiro void *). Se a conversão não for possível, o resultado será NULL.
    class CFoo { };
    class CBar { };
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       void *vptr[2];
       vptr[0]=new CFoo();
       vptr[1]=new CBar();
    //---
       for(int i=0;i<ArraySize(vptr);i++)
         {
          if(dynamic_cast<CFoo *>(vptr[i])!=NULL)
             Print("CFoo * object at index ",i);
          if(dynamic_cast<CBar *>(vptr[i])!=NULL)
             Print("CBar * object at index ",i);
         }
       CFoo *fptr=vptr[1];  // emite um erro sobre coerção do ponteiro, vptr[1] não é um objeto CFoo
      }
    //+------------------------------------------------------------------+
  2. Foi adicionado o suporte do operador [] para a cadeia de caracteres, isso irá permitir obter um símbolo a partir da cadeia de caracteres no índice. Se o índice especificado sair dos limites da cadeia de carateres, o resultado será 0.
    string text="Hello";
    ushort symb=text[0];  // retorna o código do símbolo 'H'
    
  3. Foi melhorado o trabalho com funções de cópia de dados histórica CopyXXX de ticks.
  4. Foi corrigido o erro de eliminação em massa de objetos gráficos no prefixo usando a função ObjectDeleteAll. Antigamente, após a execução de esta função, era violada a ordem de desenho dos objetos restantes.
  5. Foi corrigido o erro que, em alguns casos, levava a uma violação da ordem de exibição de objetos gráficos, durante a alteração do timeframe.

Hospedagem

  1. Agora, na sincronização do terminal com o servidor virtual, os gráficos sem EA (conselheiros) não estarão mais envolvidos, mesmo se indicadores personalizados estiverem em execução neles. Para migrar separadamente um indicador personalizado funcional, no seu gráfico, execute um conselheiro "vazio" que não esteja a realizar nenhuma operação. Ele pode ser facilmente gerado através do Master MQL4, no MetaEditor, selecionando "Advisor: modelo". Isso garante que a migração de indicadores personalizados seja feita conscientemente.
  2. Agora, você pode sincronizar conselheiros (EA) e indicadores personalizados que contêm, no nome, caracteres não-latinos (por exemplo, caracteres chineses, cirílicos, etc.)
  3. Correções de crash-logs.


1 julho 2016
MetaTrader 4 build 985: bate-papo embutido MQL5.community

Terminal

  1. Foi adicionado um bate-papo embutido. Agora, diretamente na plataforma, você pode conversar com amigos e colegas na MQL5.community. No bate-papo é exibido todo o histórico de conversas, bem como a número de mensagens não-lidas. Para começar a conversar, acesse a sua conta diretamente da caixa de bate-papo ou a partir das configurações da plataforma: Ferramentas -> Opções -> Comunidade.




  2. Foi otimizada a leitura da base do e-mail interno ao executar o terminal.

MQL4

  1. Foi adicionada a possibilidade de exibir/ocultar a escala do preço e do tempo em qualquer gráfico. Anteriormente, o programa MQL4 podia alterar as propriedades CHART_SHOW_PRICE_SCALE e CHART_SHOW_DATE_SCALE apenas do gráfico no qual ele estava sendo executado.
  2. Foi adicionada a propriedade MODE_CLOSEBY_ALLOWED para a função MarketInfo. O valor TRUE significa que no instrumento indicado é permitida a opreação Close By, isto é, fechamento da posição oposta.
  3. Foi corrigida a transferência do parâmetro de seqüência para o ponto de entrada OnChartEvent, que levava ao valor incorreto do parâmetro. O OnChartEvent permite rastrear eventos no gráfico: pressionar um botão no teclado, deslocar o mouse e outros.
  4. Foi acelerada a eliminação em massa de objetos gráficos usando a função ObjectsDeleteAll.

Signals

  1. Foi melhorada a comparação automática dos pares de moedas contendo RUB e RUR.

Tester

  1. Foi corrigida a colocação do tempo de criação de objetos gráficos durante os testes. Anteriormente, era colocada a hora atual do terminal, em vez do tempo de teste.

MetaEditor

  1. Foi corrigida a configuração do foco, no campo do texto de substituição, ao abrir a caixa de diálogo de substituição.
  2. Foi corrigida substituição de texto em massa, ao pesquisar para cima, a partir da posição atual.
  3. Correções de crash-logs.


3 junho 2016
MetaTrader 4 build 970: abertura de contas demo simplificada e expansão das possibilidades MQL4

Terminal

  1. Foi simplificada a janela de abertura da conta demo. Agora você não precisa de preencher um formulário extenso, basta indicar as informações básicas e selecionar as opções de negociação: o tipo de conta, depósito e alavancagem.




MQL4

  1. Foi alterado o formato dos arquivos executáveis EX4 devido ao acrescentamento de novas funcionalidades na linguagem MQL4. Todos os antigos programas EX4 estão compilados no MetaEditor dos anteriores builds, após a atualização funcionarão corretamente. Desse modo, a compatibilidade de baixo para cima foi preservada em sua totalidade.

    Ao mesmo tem, os programas EX4, compilados nos builds 970 e superior, não funcionarão nos terminais dos antigos builds devido à ausência de compatibilidade no sentido oposto.

  2. Foi adicionado o suporte para classes abstratas e funções virtuais puras.

    As classes abstratas são projetadas para criar entidades generalizadas, em cujas bases se supõe que serão criadas classes derivadas mais específicas. Uma classe abstrata é uma classe que pode ser usada apenas como uma classe base para outra classe, por isso é impossível criar um objeto do tipo de classe abstrata.

    Uma classe, que contenha pelo menos uma função meramente virtual, é abstrata. Portanto, as classes derivadas a partir da classe abstrata devem implementar todas suas funções virtuais puras, caso contrário também serão classes abstratas.

    Uma função virtual é considerada "pura" usando a sintaxe de um especificador de pureza. Por exemplo, consideremos a classe CAnimal que é criada apenas para fornecer funções comuns, dito de outro modo, os próprios objetos do tipo CAnimal têm um caráter demasiado amplo para uma aplicação prática. Assim, a classe CAnimal é uma boa candidata para uma classe abstrata:
    class CAnimal
      {
    public:
                          CAnimal();     // construtor
       virtual void       Sound() = 0;   // função virtual pura
    private:
       double             m_legs_count;  // número de patas do animal
      };
    
    Aqui a função Sound() é virtual pura, porque está declarada pelo especificador da função virtual PURE (=0).

    São funções virtuais puras apenas as funções virtuais para as quais é indicado o especificador de pureza PURE, e precisamente: (=NULL) ou (=0). Exemplo de declaração e uso de uma classe abstrata:
    class CAnimal
      {
    public:
       virtual void       Sound()=NULL;   // PURE method, deve ser redefinido no descendente, a mesma classe CAnimal tornou-se abstrata e não pode ser criada
      };
    //--- descendente a partir da classe abstrata
    class CCat : public CAnimal
     {
    public:
      virtual void        Sound() { Print("Myau"); } // PURE redefinido, a classe CCat não é abstrata e pode ser criada
     };
    
    //--- exemplos de utilização incorreta
    new CAnimal;         // erro 'CAnimal' - o compilador emitirá o erro "cannot instantiate abstract class"
    CAnimal some_animal; // erro 'CAnimal' - o compilador emitirá o erro "cannot instantiate abstract class"
    
    //--- exemplos de utilização correta
    new CCat;  // não há erro - a classe CCat não é abstrata
    CCat cat;  // não há erros - a classe CCat não é abstrata
    
    Restrições sobre o uso de classes abstratas
    Quando o construtor chamar uma classe abstrata da função virtual pura (direta ou indiretamente) o resultado será indefinido.
    //+------------------------------------------------------------------+
    //| Classe básica abstrata                                           |
    //+------------------------------------------------------------------+
    class CAnimal
      {
    public:
       //--- função virtual pura
       virtual void      Sound(void)=NULL;
       //--- função
       void              CallSound(void) { Sound(); }
       //--- construtor
       CAnimal()
        {
         //--- chamada direta do método virtual
         Sound();
         //--- chamada indireta (através de una terceira função)
         CallSound();
         //--- no construtor e/ou destrutor sempre são chamadas suas funções,
         //--- apesar do caráter virtual e da redefinição da função da chamada no descendente
         //--- se a função chamada for virtual pura, então,
         //--- a chamada provocará um erro crítico de execução: "pure virtual function call"
        }
      };
    
    No entanto, os construtores e destruidores de classes abstratas podem chamar outras funções membro.

  3. Para facilitar a organização de modelos de eventos, foi adicionado o suporte de indicadores para funções.

    Para declarar um indicador para uma função, defina o tipo "indicador para função", por exemplo:
    typedef int (*TFunc)(int,int);
    Agora TFunc é um tipo e é possível declarar o indicador mutável para a função:
    TFunc func_ptr;
    Na mutável func_ptr é possível armazenar o endereço da função para, no futuro, a chamar:
    int sub(int x,int y) { return(x-y); }
    int add(int x,int y) { return(x+y); }
    int neg(int x)       { return(~x);  }
    
    func_ptr=sub;
    Print(func_ptr(10,5));
    
    func_ptr=add;
    Print(func_ptr(10,5));
    
    func_ptr=neg;           // erro: neg não tem tipo  int (int,int)
    Print(func_ptr(10));    // erro: deve ter dois parâmetros
    
    Indicadores para funções podem ser armazenados e transferidos como um parâmetro. É impossível obter um indicador para um método não estático de uma classe.

  4. Na numeração das propriedades do terminal de cliente ENUM_TERMINAL_INFO_INTEGER foi adicionado o valor TERMINAL_SCREEN_DPI — resolução da informação na tela que está definida pelo número de pontos por polegada linear na superfície (DPI). Ao conhecer esse parâmetro, você pode especificar as dimensões dos objetos gráficos para que eles que sejam iguais em monitores com resolução diferente.
  5. Na enumeração das propriedades ENUM_TERMINAL_INFO_INTEGER foi adicionado o valor TERMINAL_PING_LAST — último valor conhecido de um ping até ao servidor em microssegundos. Em um segundo há um milhão de microssegundos.
  6. Nos indicadores personalizados, os buffers DRAW_NONE (sem construção gráfica) agora não participam nos cálculos do mínimo e máximo da janela do gráfico.
  7. Foi corrigida a formação de eventos, ao mover o mouse e pressionar os botões dele sobre os objetos do tipo OBJ_LABEL e OBJ_TEXT. Anteriormente, quando se encontravam nas bordas de outros objetos do tipo OBJ_RECTANGLE_LABEL, OBJ_RECTANGLE, os eventos formavam-se incorretamente.
  8. Nos indicadores personalizados, foi corregido o desenho das barras do histograma de altura zero. Anteriormente, essas barras não se desenhavam, agora elas são desenhadas com uma altura de 1 pixel.

Signals

  1. Foram corrigido os erros de pesquisa de instrumentos de negociação, ao comparar as ferramentas de negociação disponíveis da fonte do sinal e o assinante.

Tester

  1. Foi corrigida a implementação do spread no arquivo fxt, caso nas configurações de teste for utilizado o spread atual.

Market

  1. Foram corrigidos vários erros de exibição no mostruário do Mercado.

MetaEditor

  1. Foi corrigida a pesquisa de palavra por arquivo no modo "Apenas palavra inteira".
  2. Foi adicionada a possibilidade de ir até ao arquivo através de um duplo clique nos resultados da compilação do arquivo respectivo.
  3. Foi corrigida a exibição de alguns elementos de gerenciamento no Windows XP.

Correções de crash-logs.

18 maio 2016
MetaTrader 4 Android build 952
  1. Adicionamos uma janela pop-up com informações detalhadas sobre as negociações. Em um toque você poderá verificar: o momento de abertura ou fechamento das ordens, os seus comentários anexados às posições e o tamanho da comissão do corretor.
  2. Agora temos, no gráfico, uma linha vermelha que corresponde ao preço Ask da última barra. Isso irá ajudá-lo a controlar mais precisamente as suas negociações.
  3. Ajustamos o trabalho com notícias para que você possa selecionar, à vontade, apenas a categoria que lhe interessa ler e adicionar seus materiais prediletos aos favoritos.
  4. Todas as alterações nas configurações dos objetos analíticos são salvas após fechar o aplicativo.
6 maio 2016
MetaTrader 4 iOS build 947

Agora, você pode definir um código de segurança para acessar a aplicação. Isso proporcionará proteção adicional às suas contas, mesmo que você perca o seu dispositivo móvel. Habilite "Bloquear ecrã" nas configurações da aplicação. Por defeito, o código de segurança é igual ao código usado para acessar o gerador de senhas descartável.

Além disso, a nova versão inclui múltiplas melhorias e correções.

23 fevereiro 2016
Plataforma web MetaTrader 4: um conjunto completo de indicadores técnicos e interface em 38 línguas

A nova versão da plataforma web MetaTrader 4 recebeu um conjunto completo de indicadores para análise técnica. Agora ela dispõe de 30 dos indicadores técnicos mais populares do mundo, como na versão para PC da MetaTrader 4:

Acelerador Oscilador
DeMarker Moving Average
Acumulação/Distribuição  Envelopes Moving Average of Oscillator
Alligator Force Index
On Balance Volume
Average Directional Movement Index Fractais Parabolic SAR 
Average True Range
Oscilador Gator Relative Strength Index 
Oscilador Maravilhoso Ichimoku Kinko Hyo Relative Vigor Index
Bears Power
MACD Desvio Padrão
Bollinger Bands
Índice de facilitação de mercado
Stochastic Oscillator
Bulls Power
Momentum Volume
Commodity Channel Index
Índice de fluxo de dinheiro Williams' Percent Range

Continuamos trabalhando no acesso à aplicação, é por isso que agora a interface da plataforma web está disponível em 38 línguas. Foram adicionadas traduções em 14 línguas:

Neerlandês
Lituano Croata
Grego Romeno Tcheco
Hebraico Sérvio
Sueco
Italiano Esloveno
Estoniano
Letão
Finlandês



Abra a sua plataforma web agora e desfrute da sua aplicação atualizada!

15 fevereiro 2016
Plataforma web MetaTrader 4: foram adicionados os indicadores Bill Williams

Na nova versão da plataforma web MetaTrader 4, aceleramos significativamente os gráficos graças à utilização da moderna tecnologia gráfica WebGL, de modo que agora até um conjunto de indicadores executados ao mesmo tempo não irá afetar o desempenho da plataforma web.

Foi iniciado um trabalho sobre a implementação de indicadores técnicos. Atualmente já estão disponíveis os indicadores Bill Williams:

  1. Alligator,
  2. Fractals,
  3. Market Facilitation Index,
  4. Awesome Oscillator,
  5. Accelerator Oscillator,
  6. Gator Oscillator.
Continuamos trabalhando no acesso à aplicação, é por isso que traduzimos a interface para híndi, usbeque e ucraniano.
15 janeiro 2016
MetaTrader 4 iOS build 945
  • Adicionado suporte para o modo retrato na versão iPad. Agora você pode facilmente visualizar longas listas de operações de negociação, bem como notícias e e-mails.
  • Adicionado suporte para iPad Pro.
  • Nova interface de linguagem: Coreano.
  • Várias correções de bugs e melhorias.
23 dezembro 2015
MetaTrader 4 build 950: Vídeos incorporados e funcionamento melhorado

Virtual Hosting

  1. Um link que conduz ao vídeo tutorial "Como arrendar uma plataforma virtual" foi adicionado à caixa de diálogo do servidor virtual. Assista a este vídeo de dois minutos e descubra como é simples pôr o robô comercial a funcionar ou a copiar sinais 24 horas por dia, 7 dias por semana.


    Este e muitos outros vídeos estão disponíveis no canal oficial da MetaQuotes Software Corp. no YouTube.

Terminal

  1. Foi corrigida a classificação de programas MQL4 nas subpastas da janela "Navegador". A classificação é realizada por nomes.
  2. Foi corrigido o desenho do indicador de status de conexão de rede, ao trabalhar com ecrãs de alta resolução (4K).
  3. Foi corrigida a exibição da janela de visualização de impressão para notícias.
  4. Foi adicionada uma pesquisa completamente funcional ao visualizador de registro do terminal, do Expert Advisor, do testador e do hosting virtual. Agora você pode realizar a pesquisa para diante e para atrás, tendo em conta o registro e introduzindo palavras inteiras.

MetaEditor

  1. Foi adicionado o link do vídeo tutorial "Como montar um robô de negociação" ao Assistente MQL4. Assista a este vídeo de três minutos e crie um robô comercial, sem escrever uma única linha de código.


    Este e muitos outros vídeos estão disponíveis no canal oficial da MetaQuotes Software Corp. no YouTube.

MQL4

  1. Foi corrigido o valor retornado pela função SignaBaseTotal. Em alguns casos, em vez do número total de sinais disponíveis no terminal, voltava ao valor 0.
  2. Foi corrigido o erro ao alterar a visibilidade de um objeto gráfico em diferentes timeframes de MQL4 programas. Em alguns casos, o objeto no era exibido no gráfico, apos alterar esta propriedade.

Tester

  1. Foi corrigida a exibição dos valores de preços e níveis SL\TP na janela de resultados de simulação (testes).

Correções de crash logs.

11 dezembro 2015
MetaTrader 4 build 940: Otimizada para telas de alta resolução (4K)

Terminal

  1. A interface do terminal foi completamente adaptada para telas de alta resolução (4K). Todos os elementos de interface do usuário são exibidos corretamente em telas grandes. Nas telas menores, os elementos de interface do usuário são aumentados automaticamente para melhor visualização.




MQL4

  1. Corrigido um bug que poderia causar ocasionalmente o erro ao escrever um arquivo EX4 ("Error writing EX4") durante a compilação no Windows 10.
  2. Corrigido um bug que poderia causar ocasionalmente erros ao carregar DLLs externos em scripts e Expert Advisors.

Virtual Hosting

  1. Corrigida a migração do ambiente de negociação com um indicador personalizado que continha uma chamada da biblioteca EX4, se o indicador fosse chamado a partir de um Expert.

Sinais

  1. Corrigidas as notificações de erros na página de assinatura do sinal. Por exemplo, as notificações sobre a ausência de ativos (símbolos) necessários para as cópias, sobre diferentes condições de negociações, etc.

MetaEditor

  1. Corrigido o arranjo das janelas abertas, se uma delas fosse maximizada. Agora usando os comandos apropriados do menu Janela, os arquivos abertos podem estar lado a lado, em cascata, dispostos verticalmente e horizontalmente .
Corrigidos erros relatados nos registros (arquivos logs) quebrados.
26 novembro 2015
MetaTrader 4 build 920: Operação mais rápida e gerenciamento de teste visual a partir de um arquivo de configuração

Terminal

  1. Corrigido a varredura inicial e periódica dos servidores de negociação no diálogo de abertura da conta de negociação. Agora, a disponibilidade e os pings são definidos oportunamente, sem a necessidade de digitalização manual.




  2. A operação do terminal do cliente foi otimizada e acelerada.
  3. A interface do terminal foi adaptada para telas de alta resolução (4K).

MQL4

  1. Corrigido o download de indicadores personalizados a partir dos recursos de aplicativos MQL4. Os indicadores são incluídos nos recursos através da diretiva #resource. Isto permite a criação dos aplicativos tipos "todos em um", que são muito mais fáceis de distribuir.
  2. Corrigido a precisão do valor de nível nos indicadores personalizados. Anteriormente esta precisão sempre compreendia 4 casas decimais, agora depende da precisão de valores apropriados do indicador personalizado.
  3. Corrigido a verificação da possibilidade de reduzir o tipo de um objeto a outro tipo, resultado da herança ao transferir o objeto como um parâmetro método\função.
  4. Corrigido o recálculo dos indicadores padrão num buffer específico (iIndicatornArray), no caso dos dados serem definidos por uma array de tamanho fixo. Antes, eventualmente o indicador não era recalculado.
  5. Erros foram corrigidos nos modelos de classe.

Testador

  1. Adicionado a possibilidade de gerenciamento do modo de visualização, quando se abre no testador uma configuração de arquivo ini. O novo parâmetro TestVisualEnable (true/false) foi implementado para que se o parâmetro não for especificado, a configuração atual é usada.
  2. Corrigido um erro nas funções CopyXXX provocados por dados históricos reais, em vez de ser devolvido o teste histórico padrão.
  3. Corrigido o teste de leitura dos parâmetros a partir da configuração do arquivo ini, transferido na linha de comando.
  4. Corrigido desalocamento de memória excessiva após o fechamento de um gráfico no teste visual, ocasionalmente indisponibilizando dados histórico para as efetivas operações dos Expert Advisors.

Corrigidos erros relatados nos registros (logs) dos problemas.

12 novembro 2015
MetaTrader 4 build 910: Aperfeiçoadas a Base de Código e a Interface no Windows 10

CodeBase

  1. Corrigido e agilizado o download de programas MQL4 a partir da Base de Código na Comunidade MQL5. Faça o download gratuitamente dos códigos fonte de robôs de negociação e indicadores diretamente da plataforma.

Terminal

  1. Corrigido o descarregamento do histórico de preços da memória. Anteriormente ocorria um erro no caso de memória insuficiente.
  2. Corrigida a exibição de alguns elementos da interface do usuário ao trabalhar com Windows 10.
  3. Corrigido a remoção de objetos do gráfico usando a tecla de espaço.

Sinais

  1. Melhorias e correções das traduções da vitrine dos sinais de negociação.

MQL4

  1. Implementado a propriedade somente de leitura SYMBOL_VISIBLE ao enumerador ENUM_SYMBOL_INFO_INTEGER.
  2. Corrigido a operação do template.
  3. Corrigido o comportamento da função ArrayCopy ao copiar um array de string em que a área de dados dos códigos e o destinatário se sobrepõem totalmente ou parcialmente

Testador

  1. Implementado uma limitação ao testar versões demo de indicadores e Expert Advisors do Mercado MQL5. Agora, os testes das versões de demonstração dos produtos pagos serão rigorosamente concluídos na data estabelecida.

MetaEditor

  1. Conflitos ocasionais foram corrigidos entre as dicas de ferramentas e outras aplicações.

Corrigidos erros relatados nos registros (arquivos logs) quebrados.


22 outubro 2015
MetaTrader 4 Build 900: Modelos de Classes em MQL4 e Otimização do Uso de Memória

Terminal

  1. Corrigida a alteração da senha para uma conta inativa (sem conexão).




  2. Otimização do uso e liberação de memória quando se trabalha com grandes quantidades de dados históricos.
  3. Corrigido e otimizado o trabalho com um grande número de categorias de notícias.

Sinais

  1. Corrigido o cancelamento de sinais através do menu de contexto da janela do Navegador.



MQL4

  1. Implementado modelos que permitem criar classes parametrizadas como no C++. Isso permite uma maior capacidade de abstração e uso do mesmo código para trabalhar com objetos de diferentes classes de uma maneira uniforme. Um exemplo de uso:
    //+------------------------------------------------------------------+
    //|                                                    TemplTest.mq5 |
    //|                        Copyright 2015, MetaQuotes Software Corp. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2015, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    //+------------------------------------------------------------------+
    //| Declara uma classe template                                      |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArray
      {
    protected:
       T                 m_data[];
    
    public:
    
       bool              Append(T item)
         {
          int new_size=ArraySize(m_data)+1;
          int reserve =(new_size/2+15)&~15;
          //---
          if(ArrayResize(m_data,new_size,reserve)!=new_size)
             return(false);
          //---
          m_data[new_size-1]=item;
          return(true);
         }
       T                 operator[](int index)
         {
          static T invalid_index;
          //---
          if(index<0 || index>=ArraySize(m_data))
             return(invalid_index);
          //---
          return(m_data[index]);
         }   
      };
    //+------------------------------------------------------------------+
    //| Classe template do array de ponteiro. No processo de destruição, |
    //| exclui os objetos que são os ponteiros armazenados no array.     |
    //|                                                                  |
    //|  Por favor, note a herança do array da classe template           |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArrayPtr : public TArray<T *>
      {
    public:
       void             ~TArrayPtr()
         {
          for(int n=0,count=ArraySize(m_data);n<count;n++)
             if(CheckPointer(m_data[n])==POINTER_DYNAMIC)
                delete m_data[n];
         }
      };
    //+------------------------------------------------------------------------------+
    //| Declarar a classe. Ponteiros aos respectivos objetos são armazenados no array|
    //+------------------------------------------------------------------------------+
    class CFoo
      {
       int               m_x;
    public:
                         CFoo(int x):m_x(x) { }
       int               X(void) const { return(m_x); }
      };
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    TArray<int>     ExtIntArray;   // criar instância TArray (TArray especializada pelo tipo int)
    TArray<double>  ExtDblArray;   // criar instância TArray (TArray especializada pelo tipo double)
    TArrayPtr<CFoo> ExtPtrArray;   // criar instância TArrayPtr (TArrayPtr especializada pelo tipo CFoo)
    //+------------------------------------------------------------------+
    //| Função "Start" de Programa Script                                |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- preencher o array com dados
       for(int i=0;i<10;i++)
         {
          int integer=i+10;
          ExtIntArray.Append(integer);
          
          double dbl=i+20.0;
          ExtDblArray.Append(dbl);
          
          CFoo *ptr=new CFoo(i+30);
          ExtPtrArray.Append(ptr);
         }
    //--- Saída do conteúdo do array
       string str="Int:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtIntArray[i];      
       Print(str);   
       str="Dbl:";
       for(i=0;i<10;i++)
          str+=" "+DoubleToString(ExtDblArray[i],1);
       Print(str);   
       str="Ptr:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtPtrArray[i].X();      
       Print(str);
    //--- Objetos CFoo criados via nova versão não devem ser suprimidos, uma vez que eles são excluídos no objeto destructor TArrayPtr <CFoo>  
      }
    Resultado da execução:
    TemplTest EURUSD,M1: Ptr: 30 31 32 33 34 35 36 37 38 39
    TemplTest EURUSD,M1: Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
    TemplTest EURUSD,M1: Int: 10 11 12 13 14 15 16 17 18 19
  2. Corrigida a realocação de memória na função ArraycCpy, ocasionalmente poderia causar falhas de programas MQL4.

Testador

  1. Corrigido um erro que ocasionalmente causava nulidade das variáveis ​​declaradas a nível global depois de testado um indicador.
  2. Corrigido o teste quando a conexão com um servidor de negociação era perdido.

MetaEditor

  1. Corrigida a definição do nome de função no MetaAssist na presença de tipo "casting.'
  2. Corrigido a abertura de arquivos grandes.
  3. Implementado a tecla de atalho F para chamar a função de pesquisa da guia Base de Código, bem como várias dicas na barra de status para os comandos de trabalho com um código: aumentar/diminuir o recuo, navegação, deslocamento, etc.
Corrigidos erros relatados nos registros (logs) quebrados.
2 outubro 2015
MetaTrader 4 iPhone build 861
  • Melhoria da praticidade referente a análise de objetos. Somente aparecem no gráfico atual agora. A exibição em outros símbolos pode ser habilitado nas configurações de objeto. Para otimizar a área do gráfico, habilite a exibição de objeto apenas para os timeframes que você precisa.
  • Ative a exibição das bordas nos timeframes maiores no gráfico atual, permitindo os separadores de período.
  • Melhoria da compatibilidade do iOS 9.
    18 setembro 2015
    New MetaTrader 4 Build 880: Negociação Web, Senhas Descartáveis e Pagamento Direto pelos Serviços

    Versão 880 do Terminal de Cliente MetaTrader 4

    1. Negociação Web: A primeira versão web da plataforma de negociação foi liberada. As funcionalidades de negociação e análise agora podem ser acessadas de um navegador web! A plataforma web é segura para usar - qualquer informação transmitida é criptografada.

      Negociação web já está disponível na nova seção Negociação do site da comunidade MQL5. Logo você negociará diretamente do site da sua corretora, porque o terminal web é facilmente integrado numa página HTML como um widget prático, usando um iframe.



      Adicionar uma conta de negociação: determine o número e o nome do servidor, então digite a senha para se conectar.



      A interface da plataforma web é semelhante à versão desktop e por isso é fácil de entender. As seguintes funções básicas estão disponíveis atualmente:

      • Todos os tipos de operações de negociação: a colocação no mercado de ordens pendentes
      • Cotação em tempo real da Observação do Mercado
      • Personalização de gráficos de preços
      • 9 timeframes disponível ao gráfico
      • Objetos básicos de análise: linhas horizontal, vertical e de tendência, canal equidistante e linhas Fibonacci

      Os recursos da plataforma web serão expandidos.



      Contas de negociação podem ser gerenciadas a partir do perfil do usuário, na nova seção "Contas de negociação".




    2. Hospedagem e sinais: Pagamentos por Hospedadgem Virtual e assinaturas de Sinal podem ser transferidos diretamente dos sistemas de pagamento.

      Para pagar os serviços de hospedagem, os usuários não precisam registrar uma conta na Comunidade MQL5 e depositarem dinheiro. O pagamento de um serviço já pode ser transferido diretamente da plataforma, usando um dos sistemas de pagamento disponíveis.



      Escolha um dos sistemas disponíveis e faça transferência de dinheiro online:




      Da mesma forma, um pagamento de uma assinatura de sinal de negociação pode ser feita diretamente do terminal através de um dos sistemas de pagamento.



      Primeiramente o montante necessário será transferido para sua conta da comunidade MQL5, onde um pagamento do serviço será feito. Assim você mantém um histórico claro e unificado das locações das plataformas de hospedagem virtual e assinaturas de sinal, podendo facilmente acessar e revisar todos os seus pagamentos aos serviços da comunidade MQL5.

    3. Terminal: Um novo comando do menu de contexto foi adicionado para uma conexão rápida ao terminal Web. Um terminal web agora pode ser aberto diretamente a partir da plataforma para uma conta de negociação. Neste caso um usuário não precisa digitar o número da conta, senha e nome do servidor na página web. Isso será feito automaticamente.

      Negociação Web somente está disponível em contas demo a partir do servidor de dados MetaQuotes-Demo. Assim que a sua corretora atualizar a plataforma MetaTrader 4 e permitir a opção de negociação web no servidor, você negociará na conta da sua corretora através do terminal web.




    4. Terminal: Recurso de autenticação da nova OTP. O uso da Senha Descartável (One Time Password/OTP) permite um nível adicional de segurança às contas de negociação. O usuário é solicitado a digitar uma senha descartável de uso exclusivo cada vez que se conectar a uma conta.
      Senhas de uso único (descartáveis) são geradas nos terminais móveis MetaTrader 4 para smartphones iPhone ou Android.
      Como habilitar a Senha Descartável (OTP)
      Para começar a usar senhas descartáveis, uma conta de negociação deve estar vinculada a um gerador de senha, que são os terminais móveis MetaTrader 4 para os smartphones iPhone e Android.
      A opção OTP (senha descartável) somente está disponível no servidor de dados MetaQuotes-Demo .

      O novo recurso estará disponível nos servidores de negociação das suas corretoras após a atualização da sua plataforma MetaTrader 4 e ativar a opção OTP.
      Vá para as Configurações do terminal móvel e selecione OTP. Por razões de segurança, quando a seção é aberta pela primeira vez, o usuário é solicitado a definir uma senha de quatro dígitos. A senha deve ser digitada toda vez que acessar o gerador de senha.



      Na janela aberta, selecione "Vincular conta".



      Em seguida coloque o nome do servidor da conta de negociação aberta, o número da conta e a senha principal para ele. A opção "Vincular" deve ser mantida habilitada. Esta opção deve ser desabilitada quando a conta especificada necessita ser desvinculada do gerador de OTP para não usar a senha descartável.

      Uma vez que o botão "Vincular" no topo da janela é acionado, uma conta de negociação está vinculada ao gerador e uma mensagem apropriada é exibida.



      Da mesma forma, um número ilimitado de contas podem estar ligadas ao gerador.

      A senha descartável é exibida na parte superior da seção OTP. Na parte de baixo, uma barra azul registra o tempo de visualização da senha. Uma vez que a senha expira, não é mais válida e uma nova senha será gerada

      Comandos Adicionais:

      • Alterar Senha - altera a senha do gerador.
      • Sincronizar Tempo - sincroniza a hora do dispositivo móvel com o servidor de referência.

      Os requisitos de precisão são conectados com a necessidade da senha descartável estar ligada ao intervalo de tempo atual, e este tempo deve ser o mesmo no terminal do cliente e da parte do servidor.
      Como Usar a Senha Descartável (OTP) no Terminal Desktop

      Após vincular uma conta de negociação ao gerador OTP, uma senha descartável será solicitada adicionalmente durante cada conexão a partir do terminal de desktop:




      Para obter a senha, abra o terminal móvel MetaTrader 4 em seu smartphone, vá para a seção OTP e digite o código de verificação para receber a senha descartável (OTP)

      MetaTrader 4 Android
       MetaTrader 4 iPhone





    5. Terminal: Nós criamos uma série de tutoriais em vídeo sobre Sinais, Mercado e Hospedagem Virtual a fim de ajudar os usuários a aprenderem os recursos da plataforma de negociação. Os vídeos podem ser acessados ​​diretamente da plataforma de negociação:



      Todos os vídeos estão disponíveis no nosso canal YouTube, MetaQuotes Official.

    6. Terminal: A lista de parâmetros dos ativos de negociação foi significativamente expandida. Um novo comando para abertura de detalhes específicos foi adicionado no menu de contexto da Observação do Mercado.


      The following parameters have been added:

      • Volume mínimo - volume mínimo para a oferta de um ativo.
      • Volume máximo - volume máximo para a oferta de um ativo.
      • Passo de volume - passo para alteração do volume.
      • Congelar nível - congelar distância para ordens e posições que estão perto do preço de mercado. Se o preço de uma ordem ou uma posição está a uma distância igual ou inferior ao nível de congelamento, então modificar, remover e fechar uma ordem ou posição fica proibido.
      • Percentual de margem define o percentual cobrado do valor da margem base, é calculado de acordo com o tipo de instrumento.
      • Margem da moeda - moeda utilizada para o cálculo da margem.
      • Negociação - tipo de permissão do ativo de negociação: Acesso completo (fechar e abrir posições), Somente fechar e Não (a negociação é desativada).
      • Execução - o tipo de execução do instrumento: Instantânea, Pedido ou Mercado.
      • 3 dias de swap - dia da semana quando a taxa swap tripla é cobrada.
      • Primeira negociação - a negociação do instrumento financeiro iniciado nesta data.
      • Última negociação - a negociação do instrumento financeiro finalizado nesta data.

    7. Terminal: O processo de seleção de programas para serem executados no Testador de Estratégia ficou muito mais fácil. A lista é exibida agora como uma árvore de diretório onde os Expert Advisors e indicadores são armazenados.



    8. Terminal: As dicas de ferramentas, agora conterão informações sobre o motivo/origem da ordem colocada, na lista de aberturas das ordens e histórico de negociação.
    9. Terminal: Arrastando um cursor do mouse sobre o aplicativo do grupo de objetos gráficos agora chama uma dica do último objeto adicionado, ou seja, a do topo. Antes de a correção, era exibido uma dica do último objeto em ordem alfabética.
    10. Terminal: Informações sobre as características de hardware do PC e do sistema operacional estão conectados agora a um Diário, ao iniciar o terminal do cliente. Exemplo:
      2015.09.14 14:48:18.486	Data Folder: E:\ProgramFiles\MetaTrader 4
      2015.09.14 14:48:18.486	Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7  920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:00
      2015.09.14 14:48:18.486	MetaTrader 4 build 872 started (MetaQuotes Software Corp.)
    11. Terminal: Corrigido a exclusão ocasional do último objeto gráfico acrescentado, ao invés de selecionado.
    12. Terminal: Corrigido o preenchimento de objeto dos canais gráficos, tais como Canal de Regressão, Canal Eqüidistante, etc.
    13. Terminal: Corrigido a verificação de entradas do indicador Bollinger Bands.
    14. Terminal: Corrigido o congelamento do terminal ocasionado durante a visualização das notícias de maior conteúdo.
    15. Terminal: Operação com e-mails internos foi revista e otimizada.
    16. Terminal: Interface do usuário em Alemão e Português foram atualizadas.
    17. Terminal: A interface do terminal foi adaptada para telas de alta resolução (4K).
    18. Mercado: Adicionado a compra de produtos usando o UnionPay.
    19. Mercado: A operação com o banco de dados do produto no Mercado MQL5 foi revista e otimizada.
    20. Mercado: Compras sem uma conta na comunidade MQL5 foram desativadas para terminais no VPS. A compra agora exige a especificação de uma conta na comunidade MQL5 na configuração do terminal: Ferramentas - Opções - Comunidade.
    21. Testador: corrigido uso do spread nos parâmetros de testes para otimização de um Expert Advisor. Nas versões mais antigas, o spread corrente poderia ser usado ao invés do especificado.
    22. MQL4: A função ArrayCopy foi corrigida e otimizada - a velocidade de desempenho aumentou 20%, a cópia um array para si foi corrigida.
    23. MQL4: Corrigido um erro que poderia levar ao travamento do terminal após deletar objetos gráficos a partir de programas MQL4.
    24. MQL4: Corrigido o comportamento da StringToTime durante a transmissão de uma única data como uma string (por exemplo, "21:03"). Antes da atualização, uma data correspondente a UTC era utilizada como base. Agora ele usa a data do fuso horário local.
    25. MQL4: Aumento da velocidade de recompilação de programas MQL4 durante a primeira partida do terminal com uma nova versão de compilador.
    26. MQL4: Novas operações * e & para receber uma variável por referência e receber uma referência a uma variável..
    27. MQL4: Corrigido o funcionamento do ArrayResize.
    28. Hospedagem: corrigida a migração para exportação das configuraçõe FTP. Essas configurações são especificadas nas guias: Ferramentas - Opções - FTP.
    29. Hospedagem: O assistente de migração da Hospedagem Virtual foi redesenhado e simplificado.
    30. MetaEditor: Corrigida a parada forçada da depuração e perfilamento dos programas MQL4. Em versões mais antigas, a depuração e o perfilamento poderiam parar em alguns casos.
    31. MetaEditor: Adicionada a tradução UI para tailandês.

    Corrigidos erros relatados nos relatório (logs) de travamento.

    17 setembro 2015
    MetaTrader 4 Android build 846
    • Adicionado sistema de e-mail interno para entrar em contato com equipe de suporte da corretora.
    • Adicionado sistema de envio de registros a equipe de suporte do desenvolvedor de aplicativos.
    • Várias correções de bugs e melhorias.
    15 setembro 2015
    MetaTrader 4 iPhone build 843
    Foi melhorada a compatibilidade com o iOS 9. 
    4 setembro 2015
    MetaTrader 4 iPhone build 841
    • Foi adicionado o suporte de autenticação de dois fatores (senha descartável, OTP) para acessar uma conta de negociação
    • A versão de negociação iPhone agora pode ser executada a partir de um gráfico com um único toque - ligando o dispositivo a partir da posição horizontal e abrindo rapidamente um painel de negociação.
    • Várias correções de bugs e melhorias.
    1234567