---
title: "Controle inteligente - Desenvolvimento de programas - Ajuda para o MetaEditor"
description: "Para facilitar o desenvolvimento de programas no MetaEditor, são fornecidas várias ferramentas, desde substituições... - Controle inteligente - Desenvolvimento de programas - Ajuda para o MetaEditor"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management"
---

[Ajuda para o MetaEditor](https://www.metatrader5.com/pt/metaeditor/help) → [Desenvolvimento de programas](https://www.metatrader5.com/pt/metaeditor/help/development) → Controle inteligente

# Controle inteligente

Para facilitar o desenvolvimento de programas no MetaEditor, são fornecidas várias ferramentas, desde substituições automáticas de nomes e dicas para funções até marcadores e [teclas de atalho](https://www.metatrader5.com/pt/metaeditor/help/workspace/hotkeys). Essas ferramentas permitem acelerar o processo de escrita de código, convenientemente navegar por ele e evitar erros.

Esta seção descreve as seguintes funções:

- [Substituição automática de nomes de funções](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#substitute)
- [Info. parâmetro](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#info)
- [Ir para definição](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#definition)
- [Listar funções](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#list)
- [Inserir comentários](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#comments)
- [Possibilidades adicionais de edição de código](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#additional)
- [Marcadores](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#bookmarks)
- [Ir para a linha](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#goto_line)
- [Trechos de código](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#snippet)
- [Inserindo recursos](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#resource)
- [Conversão de texto](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#convert)
- [Rastreamento da área de transferência](https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management#clipboard)

> Qualquer alteração no código pode ser revertida executando o comando "![Desfazer](https://www.metatrader5.com/i/help/metaeditor/en/undo_icon.png) Desfazer" no menu ["Editar"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit#undo), na barra de ferramentas ["Padrão"](https://www.metatrader5.com/pt/metaeditor/help/toolbar/toolbar_standard#undo) ou pressionando as teclas de atalho "Ctrl+Z".

## Substituição automática de nomes de funções [#](#substitute)

Quando você escreve o código do programa, o MetaEditor sugere automaticamente possíveis opções de substituição para funções internas e definidas pelo usuário, constantes, variáveis, membros de classe, palavras-chave, etc. Isso acelera a escrita de código. Por exemplo, assim que você inserir as primeiras letras do nome da função, uma lista de funções com os nomes correspondentes será aberta imediatamente. Selecione a opção apropriada com as setas no teclado e pressione "Enter":

![Listar nomes](https://www.metatrader5.com/i/help/metaeditor/en/list_names.png)

Se a lista de variantes for muito grande, digite mais algumas letras do nome da função. Para chamar a lista manualmente, clique em "![Listar nomes](https://www.metatrader5.com/i/help/metaeditor/en/list_names_icon.png) Listar nomes" no menu ["Editar"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit#list_names) ou "Ctrl+Space" após inserir o primeiro caractere do nome.

## Info. parâmetro [#](#info)

Você pode ver a assinatura da função enquanto escreve código, sem abrir o manual de referência de linguagem. Para fazer isso, coloque o cursor após o parêntese de abertura, que começa a descrição dos parâmetros da função e clique em "![Info. parâmetro](https://www.metatrader5.com/i/help/metaeditor/en/parameter_info_icon.png) Info. parâmetro" no menu ["Editar"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit#parameter_info) ou "Ctrl+Shift+Space". Informações sobre os parâmetros e o tipo do valor de retorno da função serão mostrados na forma de uma dica de ferramenta:

![Info. parâmetro](https://www.metatrader5.com/i/help/metaeditor/en/parameter_info.png)

Na imagem acima, para a função, as seguintes informações são exibidas:

- [1 of 2] – significa que a função tem opções de chamada, com diferentes parâmetros. Para alternar entre eles, use as setas no teclado ou clique no botão esquerdo do mouse na linha de dica.
- bool – indica o tipo do valor retornado pela função.
- ObjectSetInteger – nome da função.
- (long chart_id, ... ) – enumeração dos possíveis parâmetros da função, antes de cada parâmetro é indicado seu tipo (neste caso, "long").O parâmetro no qual o cursor está localizado atualmente é exibido em negrito.

## Ir para a definição [#](#definition)

Essa ferramenta permite navegar rapidamente para a definição (implementação) do tipo ou elemento de classe selecionado. Coloque o cursor sobre seu nome e prima "![Ir para a definição](https://www.metatrader5.com/i/help/metaeditor/en/go_to_definition_icon.png) Ir para a definição" no menu de contexto ou "Alt+G". Se a definição estiver noutro ficheiro, ele será aberto e o cursor será situado na sua posição correspondente.

A função também permite acessar os ficheiros de inclusão. Para isso, coloque o cursor em qualquer parte da linha onde é declarado (diretiva #include) e executar o comando mencionado acima.

## Ir para a declaração [#](#declaration)

Esta ferramenta permite acessar rapidamente a declaração de uma variável ou de um membro da classe. Coloque o cursor sobre o nome do item e prima "Ir para a declaração" no menu de contexto. Se a declaração estiver noutro ficheiro, ele será aberto e o cursor será situado na posição correspondente.

## Listar funções [#](#list)

Esta ferramenta permite que você veja a lista de todas as funções declaradas no arquivo atual. Para abrir a lista, clique em "![Listar funções](https://www.metatrader5.com/i/help/metaeditor/en/list_funtions_icon.png) Listar funções" no menu ["Editar"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit#list_functions) ou "Alt+M".

![Listar funções](https://www.metatrader5.com/i/help/metaeditor/en/list_functions.png)

Entre parênteses à direita do nome da função são indicados seus parâmetros. A fim de ir para uma função, clique no seu nome na lista. Cada tipo de função na lista é marcado com seu ícone:

- ![Módulos de Funções](https://www.metatrader5.com/i/help/metaeditor/en/function_icon.png) – Função.
- ![Função de processamento de eventos](https://www.metatrader5.com/i/help/metaeditor/en/function_event_icon.png) – função de processamento de eventos (On*).
- ![Método público de classe](https://www.metatrader5.com/i/help/metaeditor/en/class_public_method_icon.png) – método público de classe (public).
- ![Método protegido de classe](https://www.metatrader5.com/i/help/metaeditor/en/class_method_protected_icon.png) – método protegido de classe (protected).
- ![Método privado de classe](https://www.metatrader5.com/i/help/metaeditor/en/class_method_private_icon.png) – método privado de classe (private).

## Inserir comentários [#](#comments)

Para facilitar o trabalho com comentários no código do programa no menu ["Editar"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit#comments) e na barra de ferramentas ["Padrão"](https://www.metatrader5.com/pt/metaeditor/help/toolbar/toolbar_standard), está disponível uma série de funções:

- ![Função cabeçalho](https://www.metatrader5.com/i/help/metaeditor/en/function_header_icon.png)Função cabeçalho – insere um excerto de comentário para a função;
- ![Comentário em bloco](https://www.metatrader5.com/i/help/metaeditor/en/block_comment_icon.png)Bloco de comentário – insere caracteres de comentário de linha única;
- ![Comentar linhas](https://www.metatrader5.com/i/help/metaeditor/en/comment_lines_icon.png)Comentar linhas – insere comentários "//" no início de cada linha selecionada;
- ![Remover comentários de linha](https://www.metatrader5.com/i/help/metaeditor/en/uncomment_lines_icon.png)Sem comentar linha – remove os comentários "//" do início de cada linha selecionada.

Comando "![Comentário em bloco](https://www.metatrader5.com/i/help/metaeditor/en/block_comment_icon.png)Bloco de comentário" (Ctrl+/) insere os caracteres de um comentário de linha única na posição atual do cursor:

```
//---
```

Comando "![Função cabeçalho](https://www.metatrader5.com/i/help/metaeditor/en/function_header_icon.png)Função cabeçalho" (Ctrl+.) insere na posição atual do cursor um excerto para comentar a função:

```
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
```

## Possibilidades adicionais de edição de código [#](#additional)

Você pode facilmente mover trechos de código de uma parte do programa para outra. Para fazer isso, selecione o fragmento e arraste-o para a posição desejada (Drag'n'Drop").

No submenu ["Avançado"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit#comments), do menu "Editar", estão disponíveis vários comandos que simplificam a edição de código fonte:

- ![Aumenta o recuo de linha](https://www.metatrader5.com/i/help/metaeditor/en/increase_indent_icon.png)Aumentar recuo – insere três espaços (caractere de tabulação) no início das linhas selecionadas. Para inserir espaços em branco numa única cadeia de caracteres, coloque o cursor no seu início. Para inserir espaços em branco em algumas cadeias de caracteres, selecione-as completamente.
- ![Diminuir o recuo de linha](https://www.metatrader5.com/i/help/metaeditor/en/decrease_indent_icon.png)Diminuir recuo – remove três espaços (o caractere de tabulação) no início de várias linhas selecionadas. A operação análoga é realizada usando o atalho Tab+Shift.
- ![Maiúscula](https://www.metatrader5.com/i/help/metaeditor/en/make_uppercase_icon.png)Maiúscula – converte todas as letras da frase selecionada em maiúsculas. A operação análoga é realizada usando o atalho Ctrl+Shift+U.
- ![Minúscula](https://www.metatrader5.com/i/help/metaeditor/en/make_lowercase_icon.png)Minúscula – converte todas as letras da frase selecionada em minúsculas. A operação análoga é realizada usando o atalho Ctrl+U.

## Marcadores [#](#bookmarks)

Os marcadores são projetados para saltar rapidamente para diferentes partes do código. Marque as linhas necessárias com os marcadores e, em seguida, navegue entre elas usando os comandos de menu ["Editar – Marcadores"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit#bookmarks) e do menu de contexto do código fonte:

- ![Alternar marcadores](https://www.metatrader5.com/i/help/metaeditor/en/toggle_bookmark_icon.png)Alternar marcadores – ativa ou desativa o marcador na linha atual, dependendo do seu estado atual. A mesma ação pode ser executada usando as teclas "Ctrl+F2";
- ![Próximo marcador](https://www.metatrader5.com/i/help/metaeditor/en/next_bookmark_icon.png)Próximo marcador – vai para o próximo marcador no código atual. A mesma ação pode ser executada com a tecla "F2";
- ![Marcador anterior](https://www.metatrader5.com/i/help/metaeditor/en/previous_bookmark_icon.png)Marcador anterior – vai para o marcador anterior no código atual. A mesma ação pode ser executada pressionando as teclas "Shift+F2";
- ![Remover todos marcadores](https://www.metatrader5.com/i/help/metaeditor/en/clear_all_bookmarks_icon.png)Remover todos marcadores – remove todos os marcadores do código atual. A mesma ação pode ser executada pressionando as teclas "Ctrl+Shift+F2".

O MetaEditor também fornece marcadores nomeados, isto é, marcadores aos quais é atribuído um identificador digital. Para definir esse tipo de marcador, pressione uma tecla de 0 a 9 enquanto mantém pressionado Ctrl. Para ir para o marcador anteriormente definido, pressione o número correspondente enquanto mantém pressionada a tecla Alt.

## Ir para a linha [#](#goto_line)

Para saltar rapidamente para qualquer linha de código no arquivo atual, clique em "![Ir para linha](https://www.metatrader5.com/i/help/metaeditor/en/go_to_line_icon.png) Ir para linha" no menu ["Pesquisa"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_search) ou "Ctrl+G". A seguinte janela será aberta:

![Ir para linha](https://www.metatrader5.com/i/help/metaeditor/en/goto_line.png)

A janela especifica o intervalo de linhas com o código no arquivo atual. Para ir até a linha, digite seu número e clique em "OK".

## Trechos de código [#](#snippet)

Os trechos de código são pequenos fragmentos de modelo do código fonte que descrevem um constructo da linguagem MQL4/MQL5. Eles facilitam e agilizam a escrita do código fonte. Por exemplo, usando-os no código do programa, você pode adicionar rapidamente um excerto para descrever uma classe ou um ciclo. Para fazer isso, basta digitar a palavra-chave - class ou for. Depois disso, o cursor muda para ![É possível inserir um trecho de código](https://www.metatrader5.com/i/help/metaeditor/en/snippet_cursor.png), indicando a possibilidade de inserir um trecho de código. Clique em "Tab" e o programa inserirá um trecho para a classe ou ciclo, respectivamente.

![Exemplo de um trecho de código](https://www.metatrader5.com/i/help/metaeditor/en/snippet_example.png)

Para alternar entre os campos ativos de trechos de código (neste caso, é o nome, o construtor e o destruidor da classe), use as teclas "Tab" e "Shift+Tab".

Alteração de um campo ativo altera automaticamente os restantes. Por exemplo, se você alterar o nome da classe, os nomes do construtor e do destruidor serão alterados automaticamente; quando você altera o nome de uma variável numa das expressões no ciclo "for", as variáveis ​​mudam nas outras expressões.

O sistema de trabalho com trechos também reconhece estruturas, classes, enumerações, métodos e funções já descritos. Coloque o cursor dentro da descrição da estrutura correspondente e pressione "Ctrl+Enter". Depois disso, você pode navegar entre membros (para classes, estruturas e enumerações) e argumentos (para métodos e funções) com as teclas "Tab" e "Shift+Tab", e editá-los juntos, conforme descrito acima.

No momento, são suportados os seguintes trechos de código:

| Palavra-chave | valor |
| --- | --- |
| #import | Declaração de importação. |
| OnBookEvent | Manipulador OnBookEvent. |
| OnCalculate | Manipulador OnCalculate. |
| case | Seletor case. |
| OnChartEvent | Manipulador OnChartEvent. |
| class | Declaração de classe. |
| OnDeinit | Manipulador OnDeinit. |
| do | Declaração do ciclo do while. |
| enum | Declaração da enumeração. |
| for | Declaração do ciclo for. |
| if | Declaração da condição if. |
| else | Declaração da condição else. |
| OnInit | Manipulador OnInit. |
| OnStart | Manipulador OnStart. |
| struct | Declaração de estrutura. |
| switch | Seletor switch. |
| OnTester | Manipulador OnTester. |
| OnTesterInit | Manipulador OnTesterInit. |
| OnTesterPass | Manipulador OnTesterPass. |
| OnTesterDeinit | Manipulador OnTesterDeinit. |
| OnTick | Manipulador OnTick. |
| OnTimer | Manipulador OnTimer. |
| OnTrade | Manipulador OnTrade. |
| OnTradeTransation | Manipulador OnTradeTransation |
| while | Declaração do ciclo while. |

## Inserindo recursos [#](#resource)

Para facilitar o desenvolvimento de aplicativos, no menu ["Editar – Inserir"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit), está disponível uma série de comandos para inserir rapidamente arquivos de recursos.

### Configurações como #property

Insere na posição atual do programa a diretiva #property e imediatamente abre a lista de todas as [propriedades do programa](https://www.mql5.com/pt/docs/basis/preprosessor/compilation) disponíveis na linguagem.

### BMP/WAV como #resource

Para adicionar uma imagem ou um arquivo de som nos recursos do programa, basta executar este comando e escolher o arquivo BMP ou WAV (deve estar dentro da pasta \MQL5). Na posição atual do programa será adicionada a diretiva #resource com o caminho corretamente especificado para o arquivo selecionado.

```
#resource "\\Images\\image.bmp"
```

### DLL/EX5 como #import

Para importar funções da biblioteca externa DLL ou arquivo EX5/EX4, basta executar este comando e selecionar o arquivo (deve estar dentro da pasta \MQL5). Na posição atual do programa será adicionado o par diretiva #import com o caminho corretamente especificado para o arquivo selecionado.

```
#import "..\Experts\SendNotification.ex5"

#import
```

Entre as diretivas, adicione a descrição das funções importadas.

### MQH como #include

Para adicionar um arquivo de inclusão no código do programa, execute este comando e, em seguida, selecione o arquivo MQH (deve estar dentro da pasta \MQL5). Na posição atual do programa será adicionada a diretiva #include com o caminho corretamente especificado para o arquivo selecionado.

```
#include <Arrays\Array.mqh>
```

### Conjunto de parâmetros como #property

Para adicionar um conjunto de opções para teste do Expert Advisor no código do programa, execute este comando e, em seguida, selecione o arquivo SET (deve estar dentro da pasta \MQL5). Na posição atual do programa será adicionada a diretiva #property com o caminho corretamente especificado para o arquivo selecionado.

```
#property tester_set "\\Profiles\\Tester\\Moving Average.set"
```

### Data e hora em formato AAAA.MM.DD hh:mm:ss / hora UNIX

Este comando facilita a inserção de data e hora em seu código no formato desejado. Quando você clica nele, é exibido um calendário interativo. Selecione a data e a hora que será inserida na posição atual do programa no formato selecionado.

![Inserindo data e hora no código](https://www.metatrader5.com/i/help/metaeditor/en/insert_datetime.png)

### Cor na forma de clrColor

Este comando facilita a inserção de cor no código no formato desejado. Quando você clica nele, é exibida uma paleta interativa. Selecione uma cor que será inserida na posição atual no formato clrColor usado em funções MQL5.

![Inserindo cor no código](https://www.metatrader5.com/i/help/metaeditor/en/insert_color.png)

### Arquivo como uma matriz binária

Este comando permite que você inclua no texto do programa qualquer arquivo como uma matriz binária. Execute-o e selecione o arquivo desejado (deve estar dentro da pasta \MQL5). À posição atual do programa será adicionada a matriz char.

Usando esse recurso, você pode, por exemplo, transferir modelos de gráficos junto com experts/indicadores: habilite seu modelo no código do programa na forma de uma matriz, em seguida, use a função FileSave para guardá-lo disco. Depois disso, o modelo pode ser aplicado a um gráfico utilizando a função ChartApplyTemplate.

```
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- arquivo de modelo como uma matriz binária
   unsigned char my_template[]=
     {
      0xFF,0xFE,0x3C, ... ,0x00 // matriz de dados é reduzida no exemplo
     };
//--- salvando e implementando o modelo
   if(FileSave("my_template.tpl",my_template))
     {
      Print("Custom template saved in \\MQL5\\Files");
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
         Print("Custom template applied to the current chart");
      else
         Print("Failed to apply custom template");
     }
   else
      Print("Failed to save custom template");
  }
```

### CSV como matriz de texto

Para adicionar um arquivo desde um arquivo de texto no código do programa, execute este comando e, em seguida, selecione o arquivo TXT ou CSV (deve estar dentro da pasta \MQL5). Na posição atual do programa, será adicionada uma matriz string de dimensão adequada com os dados do arquivo:

```
string data[][3]=
  {
   {"name1","value1"},
   {"name2","value2"},
   {"name3","value3"}
  };
```

## Conversão de texto [#](#convert)

MetaEditor permite facilmente converter o formato dos dados de origem. Para fazer isso, abra o arquivo desejado, selecione o texto nele e execute um dos comandos no menu ["Editar – Converter"](https://www.metatrader5.com/pt/metaeditor/help/main_menu/main_menu_edit):

- ASCII para HEX
- ASCII para Base64
- ASCII para matriz binária
- HEX para ASCII
- Base64 para ASCII

## Rastreamento da área de transferência [#](#clipboard)

A função de rastreamento de buffer melhora a usabilidade do código-fonte acessando rapidamente os últimos dados usados. Pressione Alt+V em qualquer lugar no código-fonte, selecione qualquer uma das linhas copiadas anteriormente no menu e ela será colada no lugar.

![Para colar desde o histórico da área de transferência, pressione ALT+V ou use a barra de ferramentas](https://www.metatrader5.com/i/help/metaeditor/en/clipboard.png)

Para habilitar/desabilitar o rastreamento, use o comando correspondente na barra de ferramentas ou as [configurações do editor](https://www.metatrader5.com/pt/metaeditor/help/beginning/settings#common).

## In this section

- Controle inteligente
- [Procurar e Substituir](https://www.metatrader5.com/pt/metaeditor/help/development/source_code_find)
- [Estilizador](https://www.metatrader5.com/pt/metaeditor/help/development/styler)
- [Compilar](https://www.metatrader5.com/pt/metaeditor/help/development/compile)
- [Proteção adicional de programa (MQL5 Protector)](https://www.metatrader5.com/pt/metaeditor/help/development/mql5_cloud_protector)
- [Depurando código](https://www.metatrader5.com/pt/metaeditor/help/development/debug)
- [Criação de perfil de código](https://www.metatrader5.com/pt/metaeditor/help/development/profiling)
- [Ajuda do AI Assistant ao escrever código](https://www.metatrader5.com/pt/metaeditor/help/development/ai_assistant)
- [Gerando código de inclusão](https://www.metatrader5.com/pt/metaeditor/help/development/generate_mqh)
- [Trabalhando com DLL C++ (integração com MS Visual Studio)](https://www.metatrader5.com/pt/metaeditor/help/development/c_dll)
- [Trabalho com Python](https://www.metatrader5.com/pt/metaeditor/help/development/python)
- [Suporte a OpenCL](https://www.metatrader5.com/pt/metaeditor/help/development/opencl)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/pt/metaeditor/help", "name": "Ajuda para o MetaEditor"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/pt/metaeditor/help/development", "name": "Desenvolvimento de programas"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/pt/metaeditor/help/development/intelligent_management", "name": "Controle inteligente"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: Controle inteligente", "acceptedAnswer": { "@type": "Answer", "text": "Para facilitar o desenvolvimento de programas no MetaEditor, são fornecidas várias ferramentas, desde substituições..." } }] }
```
