Ajuda para o MetaEditorDesenvolvimento de programasControle 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. 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:

Qualquer alteração no código pode ser revertida executando o comando "Desfazer Desfazer" no menu "Editar", na barra de ferramentas "Padrão" ou pressionando as teclas de atalho "Ctrl+Z".

Substituição automática de nomes de 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":

Listar nomes

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

Info. parâmetro #

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 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

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 #

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 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 #

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 #

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 Listar funções" no menu "Editar" ou "Alt+M".

Listar funções

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 – Função.
  • Função de processamento de eventos – função de processamento de eventos (On*).
  • Método público de classe – método público de classe (public).
  • Método protegido de classe – método protegido de classe (protected).
  • Método privado de classe – método privado de classe (private).

Inserir comentários #

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 Função cabeçalho – insere um excerto de comentário para a função;
  • Comentário em bloco Bloco de comentário – insere caracteres de comentário de linha única;
  • Comentar linhas Comentar linhas – insere comentários "//" no início de cada linha selecionada;
  • Remover comentários de linha Sem comentar linha – remove os comentários "//" do início de cada linha selecionada.

Comando "Comentário em blocoBloco de comentário" (Ctrl+/) insere os caracteres de um comentário de linha única na posição atual do cursor:

//---

Comando "Função cabeçalhoFunçã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 #

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:

  • Aumenta o recuo de linha 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 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 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 Minúscula – converte todas as letras da frase selecionada em minúsculas. A operação análoga é realizada usando o atalho Ctrl+U.

Marcadores #

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 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 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 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 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 #

Para saltar rapidamente para qualquer linha de código no arquivo atual, clique em "Ir para linha Ir para linha" no menu "Pesquisa" ou "Ctrl+G". A seguinte janela será aberta:

Ir para linha

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 #

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

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 #

Para facilitar o desenvolvimento de aplicativos, no menu "Editar – Inserir", 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 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

 

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

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 #

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

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

Rastreamento da área de transferência #

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

Para habilitar/desabilitar o rastreamento, use o comando correspondente na barra de ferramentas ou as configurações do editor.