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. 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:
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":

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" no menu "Editar" ou "Ctrl+Space" após inserir o primeiro caractere do nome.
 Listar nomes" no menu "Editar" ou "Ctrl+Space" após inserir o primeiro caractere do nome.
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" no menu "Editar" 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" no menu "Editar" 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:

Na imagem acima, para a função, as seguintes informações são exibidas:
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" 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.
 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.
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.
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" no menu "Editar" ou "Alt+M".
 Listar funções" no menu "Editar" ou "Alt+M".

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:
 – Função.
 – Função. – função de processamento de eventos (On*).
 – função de processamento de eventos (On*). – método público de classe (public).
 – método público de classe (public). – método protegido de classe (protected).
 – método protegido de classe (protected). – método privado de classe (private).
 – método privado de classe (private).Para facilitar o trabalho com comentários no código do programa no menu "Editar" e na barra de ferramentas "Padrão", está disponível uma série de funções:
 Função cabeçalho – insere um excerto de comentário para a função;
 Função cabeçalho – insere um excerto de comentário para a função; Bloco de comentário – insere caracteres de comentário de linha única;
 Bloco de comentário – insere caracteres de comentário de linha única; Comentar linhas – insere comentários "//" no início de cada linha selecionada;
 Comentar linhas – insere comentários "//" no início de cada linha selecionada; Sem comentar linha – remove os comentários "//" do início de cada linha selecionada.
 Sem comentar linha – remove os comentários "//" do início de cada linha selecionada.Comando " Bloco de comentário" (Ctrl+/) insere os caracteres de um comentário de linha única na posição atual do cursor:
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" (Ctrl+.) insere na posição atual do cursor um excerto para comentar a função:
Função cabeçalho" (Ctrl+.) insere na posição atual do cursor um excerto para comentar a função:
| //+------------------------------------------------------------------+
 | 
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", do menu "Editar", estão disponíveis vários comandos que simplificam a edição de código fonte:
 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.
 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 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.
 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 – converte todas as letras da frase selecionada em maiúsculas. A operação análoga é realizada usando o atalho Ctrl+Shift+U.
 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 – converte todas as letras da frase selecionada em minúsculas. A operação análoga é realizada usando o atalho Ctrl+U.
 Minúscula – converte todas as letras da frase selecionada em minúsculas. A operação análoga é realizada usando o atalho Ctrl+U.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" e do menu de contexto do código fonte:
 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";
 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 – vai para o próximo marcador no código atual. A mesma ação pode ser executada com a tecla "F2";
 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 – vai para o marcador anterior no código atual. A mesma ação pode ser executada pressionando as teclas "Shift+F2";
 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 – remove todos os marcadores do código atual. A mesma ação pode ser executada pressionando as teclas "Ctrl+Shift+F2".
 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.
Para saltar rapidamente para qualquer linha de código no arquivo atual, clique em " Ir para linha" no menu "Pesquisa" ou "Ctrl+G". A seguinte janela será aberta:
 Ir para linha" no menu "Pesquisa" ou "Ctrl+G". A seguinte janela será aberta:

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".
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  , 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.
, 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.

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. | 
Para facilitar o desenvolvimento de aplicativos, no menu "Editar – Inserir", está disponível uma série de comandos para inserir rapidamente arquivos de recursos.
Insere na posição atual do programa a diretiva #property e imediatamente abre a lista de todas as propriedades do programa disponíveis na linguagem.
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" | 
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"
 | 
Entre as diretivas, adicione a descrição das funções importadas.
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> | 
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" | 
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.

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.

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.
| //+------------------------------------------------------------------+
 | 
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]=
 | 
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":
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 habilitar/desabilitar o rastreamento, use o comando correspondente na barra de ferramentas ou as configurações do editor.