Como começar com o MT5, um resumo ! - página 2

 

Em breve -
Novo sistema de comunicação um análogo do Telegrama - leia este post.

 

============

Ichimoku


O início

  1. Sistema Ichimoku simples
  2. Sistema Ichimoku simples - regras para os sistemas
  3. Escalpagem Ichimoku simples

Depois de

============

 

A boa rosca foi criada com informações visualizadas - Arosca Tips.
É fortemente recomendado ler este pequeno tópico para todos os novatos (para saber), e para usuários experientes (para atualizar seus conhecimentos).

----------------

Serviço freelance

  • Como depositar fundos em sua conta MQL5
  • Como proceder para a próxima etapa
  • Como deixar feedback
  • O que é uma captura de tela
  • Como anexar um arquivo de uma Especificação de requisitos preliminares/ arquivos de outros formatos
  • Coisas a serem fornecidas a um Desenvolvedor se o programa tiver um erro
  • Como inserir uma imagem/código/vídeo/tabela em um texto
  • Como fazer uma captura de tela em um dispositivo móvel
  • Como estender o período/custo de execução do pedido
  • Não desaparecer por 5 dias após a definição de 3 dias para execuçãoCliente: Como criar uma imagem GIF, ao invés de um vídeo, para embutir em uma conversa

----------------

Plataforma

  • Como instalar um Expert Advisor/indicador
  • Onde está o jornal plataforma/tester/optimizador
  • Onde está a MetaQuotes ID para confugurar notificações push
  • Como fazer uma captura de tela de um erro através do menu gráfico em três cliques
  • Onde ativar e configurar as notificações por e-mail
  • Onde estão os arquivos com os quais um EA/indicador trabalha
  • O que são campos de 'descrição' e 'ícone' e onde encontrá-los
  • Onde encontrar o número de construção da plataforma Como ativar a janela de dados e ver os valores indicadores
  • Como permitir a escala de tempo precisa
  • Como salvar um modelo de gráfico
  • Como adicionar uma URL para trabalhar via WebRequestOnde encontrar arquivos EX4/EX5

----------------

Consultor especializado

  • O que é Número Mágico
  • Como funciona a parada móvel Onde está o diário da EA
  • Por que um EA/indicador é cinza no Navigator
  • Qual é a diferença entre Netting e Hedging
  • Como instalar um produto comprado no mercado

----------------

Testador

  • Como salvar/carregar um arquivo de conjunto
  • Onde encontrar o jornal plataforma/tester/optimizador
  • Como os modos de teste são diferentes um do outro?
  • Como lançar e usar testes visuais
  • Como baixar um histórico de preços disponíveis no MetaTrader 4

 

Esta é uma atualização muito importante e muito interessante - por favor, leia-a -

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

MetaTrader 5 Plataforma Beta Build 1910: Arrastar e soltar os gráficos e bibliotecas .Net em MQL5

MetaQuotes Software Corp., 2018.10.12 19:43

A versão beta da plataforma MetaTrader 5 atualizada deve ser lançada em 14 de outubro de 2018. Atualizaremos nosso servidor público MetaQuotes-Demo localizado em access.metatrader5.com:443. Convidamos todos os traders a participar dos testes a fim de avaliar as características da plataforma atualizada e ajudar os desenvolvedores a corrigir erros.

Para atualizar a plataforma MetaTrader 5 até 1910, conecte-se ao servidor access.metatrader5.com:443.

A construção final da nova plataforma MetaTrader 5 será lançada após o teste beta público.

A atualização apresentará as seguintes mudanças:

  1. Terminal: Agora você pode separar os gráficos de símbolos financeiros da janela do terminal comercial.

    Este recurso é conveniente quando se usa múltiplos monitores. Assim, você pode configurar a janela principal da plataforma em um monitor para controlar o estado de sua conta e mover seus gráficos para a segunda tela para observar a situação do mercado. Para destacar um gráfico do terminal, desative a opção Docked em seu menu de contexto. Depois disso, mova o gráfico para o monitor desejado.



    Uma barra de ferramentas separada nos gráficos destacados permite aplicar objetos analíticos e indicadores sem a necessidade de alternar entre monitores. Use o menu de contexto da barra de ferramentas para gerenciar o conjunto de comandos disponíveis ou para ocultá-lo.

  2. Terminal: Completamente atualizado os bate-papos integrados. Agora eles suportam os diálogos e canais de grupo. Conduzir discussões privadas com um grupo de pessoas em um ambiente unificado sem alternar entre diferentes diálogos e criar canais de acordo com seus interesses e idiomas. Comunique-se com colegas e amigos na MQL5.community sem visitar o site.

    As conversas em grupo e os canais podem ser públicos ou privados. Seus criadores decidem se é possível juntar-se a eles livremente ou apenas por convite. Você também pode designar moderadores para canais e chats para controle adicional da comunicação.



  3. Terminal: Suporte adicional para maior precisão de volume para o comércio de moedas criptográficas. Agora o volume mínimo possível de operações de negociação é de 0,00000001 lotes. A profundidade do mercado, o tempo e as vendas, assim como outros elementos de interface agora apresentam a capacidade de exibir volumes precisos até 8 casas decimais.

    O volume mínimo e sua etapa de mudança dependem das configurações do instrumento financeiro do lado do corretor.




  4. Terminal: Adicionada a aba de artigos publicados na MQL5.community à janela Caixa de Ferramentas. Mais de 600 materiais detalhados sobre o desenvolvimento de estratégias comerciais na MQL5 estão agora disponíveis sem a necessidade de sair do terminal. Novos artigos são publicados semanalmente.



  5. Terminal: Adicionado suporte para autenticação estendida usando certificados quando se trabalha com Vinho.
  6. Terminal: Exibição fixa da profundidade do mercado quando limitado a um nível.
  7. Terminal: Adicionado o comando "Salvar como imagem" à barra de ferramentas padrão. Agora, é muito mais fácil tirar fotos de gráficos e compartilhá-las na comunidade.




  8. Terminal: Fixo aplicando o deslocamento horário na importação de barras e carrapatos. Anteriormente, o turno não era aplicado em alguns casos.



  9. MQL5: Adicionado suporte nativo para bibliotecas .NET com funções "inteligentes" de importação. Agora as bibliotecas .NET podem ser usadas sem a necessidade de escrever embalagens especiais - o MetaEditor o faz por conta própria.

    Para trabalhar com as funções das bibliotecas .NET, basta importar a própria DLL sem definir funções específicas. O MetaEditor importa automaticamente todas as funções com as quais é possível trabalhar:
    • Estruturas simples (POD, dados antigos simples)
    • Estruturas com tipos de dados simples
    • Funções públicas estáticas com parâmetros, nas quais somente tipos simples e estruturas POD ou suas matrizes são utilizadas

    Para chamar funções da biblioteca, basta importá-la:
    #import "TestLib.dll"
    
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int x=6;
       TestClass::Inc(x);
       Print(x);
      }
    O código C# da função Inc da classe de teste tem a seguinte aparência:
    public class TestClass
    {
       public static void Inc(ref int x)
       {
        x++;
       }
    }
    Como resultado da execução, o script retorna o valor de 7.

  10. MQL5: Adicionado suporte para especificadores inline, __inline e __forceinline ao analisar o código. A presença dos especificadores no código não causa erros e não afeta a compilação. No momento, esta característica simplifica a transferência do código С++ para a MQL5.
    Encontre mais informações sobre os especificadores na MSDN.

  11. MQL5: Execução significativamente otimizada dos programas da MQL5. Em alguns casos, a melhoria do desempenho pode chegar a 10%. Recompile seus programas na nova versão do MetaEditor para fazê-los funcionar mais rapidamente.
    Infelizmente, os novos programas não serão compatíveis com versões anteriores de terminais devido a esta otimização adicional. Os programas compilados no MetaEditor versão 1910 e posteriores não podem ser lançados em versões de terminal abaixo de 1880. Os programas compilados em versões anteriores do MetaEditor podem ser executados em novos terminais.

  12. MQL5: Funções múltiplas MQL5 significativamente otimizadas.
  13. MQL5: Acrescentou novas propriedades para anexar/destacar gráficos a partir da janela principal do terminal e gerenciar sua posição.

    Acrescentadas as seguintes propriedades à enumeração ENUM_CHART_PROPERTY_INTEGER:

    • CHART_IS_DOCKED - a janela do gráfico está encaixada. Se definida como 'falsa', a carta pode ser arrastada para fora da área do terminal.
    • CHART_FLOAT_LEFT - a coordenada esquerda da janela do gráfico não bloqueado em relação à tela virtual.
    • CHART_FLOAT_TOP - a coordenada superior da janela de cartas não bloqueadas em relação à tela virtual.
    • CHART_FLOAT_RIGHT - a coordenada direita da janela de gráfico desbloqueado em relação à tela virtual.
    • CHART_FLOAT_BOTTOM - a coordenada inferior da janela de gráfico desbloqueado em relação à tela virtual.

    Acrescentou as seguintes funções à enumeração ENUM_TERMINAL_INFO_INTEGER:

    • TERMINAL_SCREEN_LEFT - a coordenada esquerda da tela virtual. Uma tela virtual é um retângulo que cobre todos os monitores. Se o sistema tiver dois monitores ordenados da direita para a esquerda, então a coordenada esquerda da tela virtual pode estar na borda de dois monitores.
    • TERMINAL_SCREEN_TOP - a coordenada superior da tela virtual.
    • TERMINAL_SCREEN_WIDTH - a largura do terminal.
    • TERMINAL_SCREEN_HEIGHT - altura do terminal.
    • TERMINAL_LEFT - a coordenada esquerda do terminal em relação à tela virtual.
    • TERMINAL_TOP - a coordenada superior do terminal em relação à tela virtual.
    • TERMINAL_RIGHT - a cota direita do terminal em relação à tela virtual.
    • TERMINAL_BOTTOM - a cota inferior do terminal em relação à tela virtual.

  14. MQL5: Adicionado o campo volume_real às estruturas MqlTick e MqlBookInfo. Ele é projetado para trabalhar com volumes de maior precisão. O valor volume_real tem uma prioridade maior do que 'volume'. O servidor usará este valor, se especificado.

    struct  MqlTick
      {
       datetime         time;          // Last price update time
       double           bid;           // Current Bid price
       double           ask;           // Current Ask price
       double           last;          // Current price of the Last trade
       ulong            volume;        // Volume for the current Last price
       long             time_msc;      // Last price update time in milliseconds
       uint             flags;         // Tick flags
       double           volume_real;   // Volume for the current Last price with greater accuracy
      };

    struct MqlBookInfo
      {
       ENUM_BOOK_TYPE   type;            // order type from the ENUM_BOOK_TYPE enumeration
       double           price;           // price
       long             volume;          // volume
       double           volume_real;     // volume with greater accuracy
      };

  15. MQL5: Novas propriedades adicionadas à enumeração ENUM_SYMBOL_INFO_DOUBLE:

    • SYMBOL_VOLUME_REAL - o volume do último negócio executado;
    • SYMBOL_VOLUMEHIGH_REAL - o maior volume de negócios para o dia atual;
    • SYMBOL_VOLUMELOW_REAL - o menor volume de negócios para o dia atual;

    Use a função SymbolInfoDouble para obter estas propriedades.

  16. MQL5: Acrescentou a propriedade MQL_FORWARD à enumeração ENUM_MQL_INFO_INTEGER - bandeira de modo de teste de avanço.
  17. MQL5: Requisitos relaxados para as enumerações de fundição. No caso de uma fundição implícita, o compilador substitui automaticamente o valor de uma enumeração correta e exibe um aviso.

    Para o seguinte código:
    enum Main
      {
       PRICE_CLOSE_,
       PRICE_OPEN_
      };
    
    input Main Inp=PRICE_CLOSE;
    //+------------------------------------------------------------------+
    //| Start function                                                   |
    //+------------------------------------------------------------------+
    void OnStart()
      {
      }
    O compilador exibe o aviso:
    implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main'
    'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
    Anteriormente, foi gerado o seguinte erro nesse caso:
    'PRICE_CLOSE' - cannot convert enum
    O compilador ainda exibirá o erro se as enumerações forem usadas incorretamente nos parâmetros da função.

  18. MQL5: Compilação fixa das funções do modelo. Agora, ao utilizar funções de modelo sobrecarregadas, apenas a sobrecarga necessária, ao invés de todas as existentes, é instanciada.
    class X {  };
    
    void f(int)  {  }
      
    template<typename T>
    void a(T*) { new T(2); }  // previously, the compiler generated the error here
      
    template<typename T>
    void a()  { f(0); }
      
      
    void OnInit()  { a<X>(); }  
    
  19. MQL5: Otimização de alguns casos de acesso ao histórico de tick através da função CopyTicks*.
  20. Testador: Corrigido o cálculo da precisão da moeda de depósito ao testar/optimizar e gerar relatórios relevantes.
  21. Testador: Otimização e aceleração da operação do testador de estratégia.
  22. MetaEditor: Busca fixa de palavras inteiras. Agora, na busca, o sublinhado é contado como um caractere regular, em vez de um delimitador de palavras.
  23. Documentação atualizada.

 

Foi iniciada uma boa rosca -Como começar com a MQL5

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Como começar com a MQL5

Vladimir Karputov, 2018.12.24 20:34

Este tópico discute exemplos de código MQL5. Haverá exemplos de como obter dados de indicadores, como programar consultores ... em geral, quaisquer perguntas desde iniciantes até a linguagem da MQL5.


Se você está apenas começando a se familiarizar com o terminal MetaTrader 5, então eu posso recomendar os seguintes tópicos:

 

Há um artigo que todo vendedor no mercado deve ler: é sobre a validação dos produtos do mercado -

----------------

Os cheques que um robô comercial deve passar antes da publicação no mercado

Why products are checked before they are published in the Market 

Antes de qualquer produto ser publicado no Mercado, ele deve passar por verificações preliminares obrigatórias, pois um pequeno erro na lógica do especialista ou do indicador pode causar perdas na conta de negociação. É por isso que desenvolvemos uma série de verificações básicas para garantir o nível de qualidade exigido dos produtos do Mercado.

Se algum erro for identificado pelos moderadores do Mercado no processo de verificação de seu produto, você terá que consertar todos eles. Este artigo considera os erros mais freqüentes cometidos pelos desenvolvedores em seus robôs comerciais e indicadores técnicos. Recomendamos também a leitura dos seguintes artigos:

 

Obrigado, cara...

Muito útil, grande esforço...

 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Nova plataforma MetaTrader 5 build 2005: Calendário Econômico, aplicativos MQL5 como serviços e API de linguagem R

MetaQuotes Software Corp. , 20.02.2019 17:20

A atualização da plataforma MetaTrader 5 será lançada em 21 de fevereiro de 2019. A nova versão apresenta as seguintes alterações:

  1. Terminal: Calendário Econômico integrado completamente revisado.

    O Calendário Econômico é nossa solução proprietária. Nele você encontrará mais de 600 notícias e indicadores financeiros relacionados às 13 maiores economias globais: EUA, União Européia, Japão, Reino Unido, Canadá, Austrália, China entre outros. Dados relevantes são coletados de fontes abertas em tempo real.

    A nova versão apresenta conteúdos atualizados e filtros avançados de eventos: por hora, prioridade, moedas e países.

    Os dados do calendário agora podem ser acessados a partir de programas MQL5. Por favor, veja abaixo para detalhes.




  2. Terminal: Adicionado novo tipo de aplicativos MQL5 — Serviços. Este novo tipo permite a criação de feeds de preços personalizados para o terminal, ou seja, implementar a entrega de preços a partir de sistemas externos em tempo real, tal como é implementado nos servidores de negociação das corretoras.

    Ao contrário dos Expert Advisors, indicadores e scripts, os serviços não estão vinculados a um gráfico específico. Esses aplicativos são executados em segundo plano e são iniciados automaticamente quando o terminal é iniciado (a menos que esse aplicativo tenha sido interrompido à força).

    Os serviços podem ser gerenciados a partir de uma nova seção na janela do Navegador:





    Como criar serviços
    Para criar um modelo de serviço, use a opção correspondente do Assistente MQL5 . Os serviços têm um ponto de entrada OnStart , semelhante aos scripts. Neste ponto, você pode implementar um ciclo infinito de recebimento e manipulação de dados usando funções de rede .

    Como lançar serviços
    Para executar vários Expert Advisors ou cópias de indicadores com parâmetros diferentes, você deve iniciá-los em gráficos diferentes. Neste caso, diferentes instâncias de programa são criadas, que então operam independentemente. Os serviços não estão vinculados a gráficos, portanto, foi implementado um mecanismo especial para a criação de instâncias de serviço.

    Selecione um serviço no Navegador e clique em "Adicionar serviço" em seu menu de contexto. Isso abrirá uma caixa de diálogo padrão do programa MQL5, na qual você pode ativar/desativar negociação e acesso às configurações de sinal, bem como definir vários parâmetros.




    Uma instância de serviço pode ser iniciada e interrompida usando o menu de instância apropriado. Para gerenciar todas as instâncias, use o menu de serviço.

  3. Terminal: Um programa de aprendizagem foi adicionado.

    O novo recurso ajudará os iniciantes a aprender a interagir com a plataforma. Adicionamos mais de 100 dicas interativas sobre os principais recursos da plataforma.

    • As dicas são exibidas perfeitamente como uma barra de progresso na barra de ferramentas e, portanto, não distraem o usuário.
    • As dicas aparecem apenas para as ações que você nunca realizou na plataforma.
    • Todas as dicas incluem links interativos, pelos quais você pode navegar para os elementos de interface relevantes. Por exemplo, uma caixa de diálogo de negociação ou um menu com o programa desejado pode ser lançado diretamente da ponta.

    A área preenchida da barra de progresso aumentará sempre que você realizar as ações apropriadas e continuar o treinamento.




  4. Terminal: O histórico da conta de negociação pode ser apresentado como posições. A plataforma coleta dados sobre negócios relacionados à posição (abertura, aumento de volume, fechamento parcial ou total) e agrupa as informações em um único registro. Assim, você pode acessar os detalhes da posição: horário de abertura e fechamento, volume, preço e resultado. Este formulário de apresentação eficiente está agora disponível em relatórios de histórico exportados para arquivos.




  5. Terminal: Adicionada nova API permitindo a solicitação de dados do terminal MetaTrader 5 por meio de aplicativos usando a linguagem R.

    Preparamos um pacote especial do MetaTrader. Ele contém DLL para interações entre R e o terminal MetaTrader 5, documentação e arquivos r auxiliares. Estamos concluindo o cadastro do pacote no repositório CRAN , após o qual ele estará disponível para download e instalação.




    O pacote pode ser instalado usando um comando especial:
    R CMD INSTALL --build MetaTrader

    Os seguintes comandos relacionados à solicitação de dados estão disponíveis:

    • MT5Initialize inicializa e estabelece conexão com o terminal MetaTrader 5. Se necessário, o terminal é iniciado durante a execução do comando.
    • O MT5Shutdown é desinicializado e desconectado do MetaTrader 5.
    • O MT5Version obtém a versão do terminal MetaTrader 5.
    • O MT5TerminalInfo obtém o estado e os parâmetros da conexão do terminal ao servidor de um corretor (número da conta e endereço do servidor).
    • O MT5WaitTerminal espera que o terminal MetaTrader 5 se conecte ao servidor de um corretor.
    • MT5CopyTicksFrom(symbol, from, count, flags) copia o número especificado de ticks a partir da data especificada. A data é especificada em milissegundos desde 01.01.1970.
    • MT5CopyTicksRange(symbol, from, to, flags) copia os ticks dentro do período especificado. As datas são especificadas em milissegundos desde 01.01.1970.
    • MT5CopyRatesFrom(symbol, timeframe, from, count) copia o número especificado de barras de um minuto a partir da data especificada. A data é especificada em segundos desde 01.01.1970.
    • MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) copia barras de um minuto da posição especificada em relação à última barra.
    • MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) copia as barras de dentro do período especificado. As datas são especificadas em segundos desde 01.01.1970.

    A lista de comandos suportados será expandida ainda mais.

  6. Terminal: Caixa de diálogo Fechar por otimizado usada para fechar uma posição por uma oposta. Agora, o diálogo não fica mais lento, mesmo se você tiver um grande número de posições abertas.
  7. Terminal: Corrigidos erros de cálculo de símbolos sintéticos , devido aos quais os dados podiam ser ignorados ocasionalmente.
  8. Terminal: Quando um símbolo personalizado é excluído, os arquivos que armazenam seu histórico de marcações e barras também são excluídos. Isso evita o acúmulo de dados não utilizados no disco rígido.
  9. Terminal: Corrigida a exibição de resultados de pesquisa em telas de alto DPI.
  10. MQL5: Acesso implementado a dados de calendário econômico de programas MQL5.

    Novas funções

    CalendarCountryById — obtém a descrição do país por identificador.
     bool CalendarCountryById(
       const long            country_id,    // country ID
       MqlCalendarCountry&  country        // country description
       );
    CalendarEventById — obtém a descrição do evento por identificador.
     bool CalendarEventById(
       const long            event_id,      // event ID
       MqlCalendarEvent&     event           // event description
       );
    CalendarValueById — obtém a descrição do valor do evento por identificador.
     bool CalendarValueById(
       const long            value_id,      // value ID
       MqlCalendarValue&     value           // value description
       );
    CalendarEventByCountry — obtém a matriz de eventos disponíveis para o país.
     bool CalendarEventByCountry(
       string                country_code,  // country code
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarEventByCurrency — obtém a matriz de eventos disponíveis para a moeda afetada.
     bool CalendarEventByCurrency(
       string                currency,       // currency
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarValueHistoryByEvent — obtém a matriz de valores para o período de tempo especificado, por identificador de evento.
     bool CalendarValueHistoryByEvent(
       ulong                 event_id,      // event ID
       MqlCalendarValue&    values[],      // array of values
       datetime              datetime_from, // period beginning date
       datetime              datetime_to= 0  // period end date
       );
    CalendarValueHistory — obtém a matriz de valores para o período de tempo especificado para todos os eventos, filtrados por país e/ou moeda.
     bool CalendarValueHistory(
       MqlCalendarValue&    values[],           // array of values
       datetime              datetime_from,     // beginning of period
       datetime              datetime_to= 0 ,     // end of period
       string                country_code=NULL, // country code
       string               currency=NULL      // currency
       );
    CalendarValueLastByEvent — obtém uma matriz dos valores do último evento por identificador. Esta função habilita a solicitação dos valores que apareceram desde a solicitação anterior. O parâmetro de entrada/saída "change_id" é adicionalmente usado para esta operação.

    Toda vez que o banco de dados do calendário é alterado, a propriedade "change_id" (o último identificador de alteração) é atualizada. Durante a solicitação de dados, você especifica "change_id" e o terminal retorna os eventos que apareceram após esse período, bem como o valor atual "change_id", que pode ser usado para a próxima solicitação. Durante a primeira chamada de função, especifique o zero "change_id": a função não retornará nenhum evento, mas retornará o "change_id" atual para solicitações adicionais.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[]           // array of values
       );
    CalendarValueLast — obtém a matriz dos últimos valores de todos os eventos, filtrados por país e/ou moeda. Esta função habilita a solicitação dos valores que apareceram desde a solicitação anterior. Da mesma forma que CalendarValueLastByEvent, a propriedade "change_id" é usada para a solicitação.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[],           // array of values
       string                country_code=NULL, // country code
       string currency=NULL                     // currency
       );

    Novas estruturas

    MqlCalendarCountry — descrição do país.
     struct MqlCalendarCountry
      {
       ulong              id;                         // country ID in ISO 3166-1
       string             name;                       // text name of the country
       string             code;                       // code name of the country in ISO 3166-1 alpha-2
       string             currency;                   // country currency code
       string             currency_symbol;           // country currency symbol/sign
       string             url_name;                   // country name used in URL on mql5.com
      };
    MqlCalendarEvent — descrição do evento.
     struct MqlCalendarEvent
      {
       ulong                           id;           // event ID
       ENUM_CALENDAR_EVENT_TYPE       type;         // event type
       ENUM_CALENDAR_EVENT_SECTOR     sector;       // sector to which the event belongs
       ENUM_CALENDAR_EVENT_FREQUENCY  frequency;     // event release frequency
       ENUM_CALENDAR_EVENT_TIMEMODE   time_mode;     // event release time mode
       ulong                           country_id;   // country ID
       ENUM_CALENDAR_EVENT_UNIT       unit;         // unit for the event values
       ENUM_CALENDAR_EVENT_IMPORTANCE importance;   // event importance
       ENUM_CALENDAR_EVENT_MULTIPLIER multiplier;   // event importance multiplier
       uint                            digits;       // number of decimal places in the event value
       string                          source_url;   // source URL
       string                          event_code;   // event code
       string                          name;         // text name of the event in the terminal language
      };
    MqlCalendarValue — descrição do valor do evento.
     struct MqlCalendarValue
      {
       ulong              id;                         // value ID
       ulong              event_id;                   // event ID
       datetime           time;                       // event date and time
       datetime           period;                     // period, for which the event is published
       int                revision;                   // published indicator revision in relation to the reported period
       long               actual_value;               // current event value
       long               prev_value;                 // previous event value
       long               revised_prev_value;         // revised previous event value
       long               forecast_value;             // forecast event value
       ENUM_CALENDAR_EVENT_IMPACRT impact_type;     // potential impact on the currency rate
      };

    Novas enumerações

     enum ENUM_CALENDAR_EVENT_FREQUENCY
      {
       CALENDAR_FREQUENCY_NONE            = 0 ,   // not used
       CALENDAR_FREQUENCY_WEEK            = 1 ,   // weekly
       CALENDAR_FREQUENCY_MONTH           = 2 ,   // monthly
       CALENDAR_FREQUENCY_QUARTER         = 3 ,   // quarterly
       CALENDAR_FREQUENCY_YEAR            = 4 ,   // yearly
       CALENDAR_FREQUENCY_DAY             = 5 ,   // daily
      };
    
    enum ENUM_CALENDAR_EVENT_TYPE
      {
       CALENDAR_TYPE_EVENT                = 0 ,   // event (meeting, speech, etc.)
       CALENDAR_TYPE_INDICATOR            = 1 ,   // indicator
       CALENDAR_TYPE_HOLIDAY              = 2 ,   // holiday
      };
    
    enum ENUM_CALENDAR_EVENT_SECTOR
      {
       CALENDAR_SECTOR_NONE               = 0 ,   // no
       CALENDAR_SECTOR_MARKET             = 1 ,   // market
       CALENDAR_SECTOR_GDP                = 2 ,   // GDP
       CALENDAR_SECTOR_JOBS               = 3 ,   // jobs
       CALENDAR_SECTOR_PRICES             = 4 ,   // prices
       CALENDAR_SECTOR_MONEY              = 5 ,   // money
       CALENDAR_SECTOR_TRADE              = 6 ,   // trade
       CALENDAR_SECTOR_GOVERNMENT         = 7 ,   // government
       CALENDAR_SECTOR_BUSINESS           = 8 ,   // business
       CALENDAR_SECTOR_CONSUMER           = 9 ,   // consumer
       CALENDAR_SECTOR_HOUSING            = 10 ,   // housing
       CALENDAR_SECTOR_TAXES              = 11 ,   // taxes
       CALENDAR_SECTOR_HOLIDAYS           = 12 ,   // holidays
      };
      
    enum ENUM_CALENDAR_EVENT_IMPORTANCE
      {
       CALENDAR_IMPORTANCE_LOW            = 0 ,   // no
       CALENDAR_IMPORTANCE_NONE           = 1 ,   // low
       CALENDAR_IMPORTANCE_MODERATE       = 2 ,   // moderate
       CALENDAR_IMPORTANCE_HIGH           = 3 ,   // high
      };
    
    enum ENUM_CALENDAR_EVENT_UNIT
      {
       CALENDAR_UNIT_NONE                 = 0 ,   // no
       CALENDAR_UNIT_PERCENT              = 1 ,   // percent
       CALENDAR_UNIT_CURRENCY             = 2 ,   // national currency
       CALENDAR_UNIT_HOUR                 = 3 ,   // number of hours
       CALENDAR_UNIT_JOB                  = 4 ,   // number of jobs
       CALENDAR_UNIT_RIG                  = 5 ,   // number of rigs
       CALENDAR_UNIT_USD                  = 6 ,   // US dollar
       CALENDAR_UNIT_PEOPLE               = 7 ,   // number of people
       CALENDAR_UNIT_MORTGAGE             = 8 ,   // number of mortgages
       CALENDAR_UNIT_VOTE                 = 9 ,   // number of votes
       CALENDAR_UNIT_BARREL               = 10 ,   // number of barrels
       CALENDAR_UNIT_CUBICFEET            = 11 ,   // volume in cubic feet
       CALENDAR_UNIT_POSITION             = 12 ,   // number of job positions
       CALENDAR_UNIT_BUILDING             = 13    // number of buildings
      };
      
    enum ENUM_CALENDAR_EVENT_MULTIPLIER
      {
       CALENDAR_MULTIPLIER_NONE           = 0 ,   // no    
       CALENDAR_MULTIPLIER_THOUSANDS      = 1 ,   // thousands
       CALENDAR_MULTIPLIER_MILLIONS       = 2 ,   // millions
       CALENDAR_MULTIPLIER_BILLIONS       = 3 ,   // billions
       CALENDAR_MULTIPLIER_TRILLIONS      = 4 ,   // trillions
      };
      
    enum ENUM_CALENDAR_EVENT_IMPACRT
      {
       CALENDAR_IMPACT_NA                 = 0 ,   // not available
       CALENDAR_IMPACT_POSITIVE           = 1 ,   // positive
       CALENDAR_IMPACT_NEGATIVE           = 2 ,   // negative
      };
    
    enum ENUM_CALENDAR_EVENT_TIMEMODE
      {
       CALENDAR_TIMEMODE_DATETIME         = 0 ,   // the source publishes the exact time
       CALENDAR_TIMEMODE_DATE             = 1 ,   // the event takes the whole day
       CALENDAR_TIMEMODE_NOTIME           = 2 ,   // the source does not publish the event time
       CALENDAR_TIMEMODE_TENTATIVE        = 3 ,   // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
      };

    Novos códigos de erro

    ERR_CALENDAR_MORE_DATA             = 5400 ,   // the array is small for the whole result (values which fit in the array were passed)
    ERR_CALENDAR_TIMEOUT               = 5401 ,   // timed out waiting for a response to the calendar data request
    ERR_CALENDAR_NO_DATA               = 5402 ,   // data not found

  11. MQL5: Correções e melhorias de velocidade de operação relacionadas ao histórico de ticks e barras.
  12. MQL5: Correções e melhorias significativas na velocidade de operação relacionadas às funções de modificação do histórico de ticks e barras de símbolos de negociação personalizados, CustomTicks* e CustomRates* .
  13. MQL5: Novas funções de conversão de dados.

    CharArrayToStruct copia uma matriz uchar para uma estrutura POD.
     bool   CharArrayToStruct(
       void &         struct_object,    // structure
       const uchar &  char_array[],      // array
       uint           start_pos= 0         // starting position in the array
       );
    StructToCharArray copia uma estrutura POD para uma matriz uchar.
     bool   StructToCharArray(
       const void &  struct_object,      // structure
       uchar &       char_array[],      // array
       uint          start_pos= 0         // starting position in the array
       );

  14. Adicionada função MathSwap para alterar a ordem dos bytes nos valores ushort, uint e ulong.
     ushort MathSwap( ushort value );
    uint    MathSwap( uint    value );
    ulong   MathSwap( ulong    value );

  15. MQL5: Adicionadas funções de rede para criar conexões TCP com hosts remotos por meio de soquetes do sistema:

    • SocketCreate cria um soquete com sinalizadores especificados e retorna seu identificador
    • SocketClose fecha o soquete
    • SocketConnect se conecta ao servidor, com controle de tempo limite
    • SocketIsConnected verifica se o soquete está conectado no momento
    • SocketIsReadable obtém o número de bytes que podem ser lidos do soquete
    • SocketIsWritable verifica se a gravação de dados neste soquete é possível no momento atual
    • SocketTimeouts define os tempos limite de recebimento e envio de dados para o objeto de soquete do sistema
    • SocketRead lê dados de um soquete
    • SocketSend grava dados em um soquete
    • SocketTlsHandshake inicia uma conexão segura TLS (SSL) com o host especificado usando o protocolo TLS Handshake
    • SocketTlsCertificate recebe informações sobre o certificado usado para conexão de rede segura
    • SocketTlsRead lê dados de uma conexão TLS segura
    • SocketTlsReadAvailable lê todos os dados disponíveis de uma conexão TLS segura
    • SocketTlsSend envia dados usando uma conexão TLS segura

    O endereço do host, ao qual a conexão usando funções de rede é estabelecida, deve ser explicitamente adicionado à lista de endereços permitidos nas configurações do terminal.

    Novos códigos de erro foram adicionados para operações com funções de rede:

    • ERR_NETSOCKET_INVALIDHANDLE (5270): identificador de soquete inválido passado para a função
    • ERR_NETSOCKET_TOO_MANY_OPENED (5271): muitos soquetes abertos (máximo 128)
    • ERR_NETSOCKET_CANNOT_CONNECT (5272): erro ao conectar ao host remoto
    • ERR_NETSOCKET_IO_ERROR (5273): erro ao enviar/receber dados do socket
    • ERR_NETSOCKET_HANDSHAKE_FAILED (5274): erro de estabelecimento de conexão segura (TLS Handshake)
    • ERR_NETSOCKET_NO_CERTIFICATE (5275) — sem dados sobre o certificado usado para conexão segura

  16. MQL5: Adicionadas novas funções para operações de string :

    StringReserve reserva para uma string o buffer de memória do tamanho especificado.
     bool   StringReserve(
       string &        string_var,           // string
       uint            new_capacity          // buffer size for the string
       );
    StringSetLength define o comprimento da string especificada em caracteres.
     bool   StringSetLength(
       string &        string_var,          // string
       uint            new_length           // new string length
       );

  17. MQL5: Adicionada nova função para operações de array :

    ArrayRemove remove de uma matriz o número especificado de elementos começando com o índice especificado.
     bool   ArrayRemove(
       void &         array[],              // array of any type
       uint           start,                // the index to start removal
       uint           count=WHOLE_ARRAY      // number of elements
       );
    ArrayInsert insere em uma matriz receptora o número especificado de elementos da matriz de origem, começando com o índice especificado.
     bool   ArrayInsert(
       void &         dst_array[],          // receiver array
       const void &   src_array[],          // source array
       uint           dst_start,            // index in the receiver array where to insert
       uint           src_start= 0 ,           // index in the source array to start copying
       uint           count=WHOLE_ARRAY     // number of inserted elements
       );
    ArrayReverse reverte em uma matriz o número especificado de elementos começando com o índice especificado.
     bool   ArrayReverse(
       void &         array[],              // array of any type
       uint           start= 0 ,               // index to start reversing
       uint           count=WHOLE_ARRAY      // number of elements
       );

  18. MQL5: Novo parâmetro "uint count" foi adicionado nas funções CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd e CustomTicksReplace . Permite especificar o número de elementos do array passado, que serão utilizados para essas funções. O valor WHOLE_ARRAY é usado para o parâmetro por padrão. Isso significa que toda a matriz será utilizada.
  19. MQL5: Adicionada a função CustomBookAdd para passar o status do Depth of Market para um símbolo personalizado. A função permite transmitir o Depth of Market como se os preços chegassem do servidor de um corretor.
     int   CustomBookAdd(
       const string         symbol,             // symbol name
       const MqlBookInfo&  books[]             // an array with the DOM elements descriptions
       uint                 count=WHOLE_ARRAY   // number of elements to be used
       );
  20. MQL5: Adicionada sobrecarga de função CustomSymbolCreate . Isso permite a criação de um símbolo de negociação personalizado com base em um já existente. Após a criação, qualquer propriedade do símbolo pode ser editada usando as funções correspondentes.
     bool   CustomSymbolCreate (
       const string         symbol_name,       // custom symbol name
       const string         symbol_path= "" ,    // name of the group in which the symbol will be created
       const string         symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
       );
    O nome do símbolo, do qual as propriedades do símbolo personalizado devem ser copiadas, é especificado no parâmetro "symbol_origin".

  21. A função StringToTime que converte a string com data/hora em um valor de data e hora foi atualizada. Agora ele suporta os seguintes formatos de data:

    • aaaa.mm.dd [hh:mi]
    • aaaa.mm.dd [hh:mi:ss]
    • aaaammdd [hh:mi:ss]
    • aaaammdd [hhmiss]
    • aaaa/mm/dd [hh:mi:ss]
    • aaaa-mm-dd [hh:mi:ss]

  22. MQL5: Nova propriedade TERMINAL_VPS na enumeração ENUM_TERMINAL_INFO_INTEGER ; ele mostra que o terminal está sendo executado no servidor MetaTrader Virtual Hosting (MetaTrader VPS). Se um aplicativo estiver sendo executado em um servidor de hospedagem, você poderá desabilitar todas as suas funções visuais, pois o servidor virtual não possui uma interface gráfica de usuário.
  23. MQL5: Nova propriedade SYMBOL_EXIST na enumeração ENUM_SYMBOL_INFO_INTEGER , significa que o símbolo sob este nome existe.
  24. MQL5: Corrigida a digitação ao usar pré-declarações de função de modelo.
  25. MQL5: Adicionada reinicialização de indicadores ao alterar uma conta de negociação.
  26. MQL5: Função StringSplit otimizada.
  27. MQL5: Corrigidos erros na operação da biblioteca padrão.
  28. Testador: função TesterStop adicionada — desligamento antecipado de rotina de um Expert Advisor em um agente de teste. Agora você pode parar o teste à força depois de atingir o número especificado de negociações perdidas, um nível de rebaixamento predefinido ou qualquer outro critério.

    O teste concluído usando esta função é considerado bem-sucedido. Após a chamada da função, o histórico de negociação obtido durante o teste e todas as estatísticas de negociação são passadas para o terminal.

  29. Testador: capacidade desativada para testar e otimizar Expert Advisors por meio da MQL5 Cloud Network no modo de tick real. Esse modo só pode ser usado em agentes locais e farms de rede local.
  30. Testador: Trabalho aprimorado com indicadores durante o teste visual. Agora, o gráfico de preços e as linhas do indicador são desenhados de forma síncrona, mesmo para a velocidade máxima de visualização.
  31. Testador: Teste e otimização otimizados e significativamente acelerados.
  32. Testador: Corrigida a depuração de indicadores em dados históricos. Agora as funções do indicador OnInit e OnDeinit podem ser depuradas corretamente.
  33. Testador: Implementado acesso mais rápido a dados históricos ao testar Expert Advisors de várias moedas.
  34. Testador: Corrigido o congelamento ocasional do testador visual durante a depuração em dados históricos.
  35. Testador: Implementado início mais rápido de passos de otimização ao processar um pacote de tarefas por um agente.
  36. Testador: Alterada a política de distribuição de pacotes de tarefas para agentes de teste. O tamanho do pacote foi aumentado e, portanto, o consumo de recursos nas operações de rede foi reduzido significativamente.
  37. Testador: Alterado o comportamento das opções permitindo o uso de agentes locais, de rede e de nuvem. Agora, quando você desativa as opções, os agentes concluem o processamento das tarefas recebidas, enquanto não são atribuídas mais novas tarefas a eles. Nas versões anteriores, o comportamento era semelhante ao comando "Desativar", que interrompeu imediatamente a operação do agente.




  38. MetaEditor: Adicionado suporte para caracteres não ANSI no depurador. Agora, as expressões são exibidas corretamente, mesmo que o nome da variável seja especificado em cirílico.
  39. MetaEditor: Corrigida a exibição de resultados de pesquisa em telas de alto DPI.
  40. Adicionada a tradução da interface do usuário para o croata.
  41. A documentação foi atualizada.
A atualização estará disponível através do sistema LiveUpdate.

 

Olá.

Preciso remover meu build 1940 antes de instalar este 2005?
Eu tentei sem desinstalar e depois de instalar é o mesmo 1940 como antes.
Além disso, não consegui atualizar desde o ano passado, por alguma razão?
Devo remover tudo e tentar novamente?


Obrigado...

 
útil para iniciantes
Razão: