---
title: "Como posso eu próprio criar um expert advisor ou um indicador - Trading algorítmico, robôs comerciais - Ajuda para o MetaTrader 5"
description: "Para desenvolver sistemas de negociação, a plataforma tem a sua própria linguagem de programação MetaQuotes... - Como posso eu próprio criar um expert advisor ou um indicador - Trading algorítmico, robôs comerciais - Ajuda para o MetaTrader 5"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading"
---

[Ajuda para o MetaTrader 5](https://www.metatrader5.com/pt/terminal/help) → [Trading algorítmico, robôs comerciais](https://www.metatrader5.com/pt/terminal/help/algotrading) → Como posso eu próprio criar um expert advisor ou um indicador

# Como posso eu próprio criar um expert advisor ou um indicador

Para desenvolver sistemas de negociação, a plataforma tem a sua própria linguagem de programação MetaQuotes Language 5 ([MQL5](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#mql5)), o meio de desenvolvimento [MetaEditor](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#metaeditor) e instrumentos de teste de estratégias.

> Qualquer informação sobre o desenvolvimento de estratégias de negociação na linguagem MQL5 pode ser encontrada no site oficial da [MQL5.community](https://www.mql5.com/). Nesse site, na seção [Base de código](https://www.mql5.com/pt/code), podem ser encontrados exemplos de aplicativos prontos.

## Linguagem de programação built-in de estratégias de negociação MQL5 [#](#mql5)

A plataforma de negociação tem uma linguagem embutida para programação de estratégias de negociação [MetaQuotes Language 5](https://www.mql5.com/). Essa é a quinta geração de linguagem MQL. Ela permite que você escreva [experts](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#type) para automatizar o gerenciamento de ações de negociação e implementar suas próprias estratégias de negociação. Além disso, você pode criar [indicadores personalizados](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#type), [scripts](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#type) e bibliotecas de funções.

Características da linguagem MQL5:

- Orientação de objetos;
- A sintaxe da MQL5 é semelhante à da linguagem C++;
- Um grande número de funções é necessário para a análise de cotações, gerenciamento de posições, execução de indicadores técnicos, etc.;
- Alto desempenho;
- Um elevado nível de proteção contra descompilação: algoritmos de criptografia novos e sofisticados, verificação de integridade de arquivos e complexidade da própria linguagem;
- O suporte [OpenCL](https://www.mql5.com/pt/articles/405) permite o uso da placa gráfica para executar cálculos em programas MQL5;
- O meio integrado de desenvolvimento de programas [MetaEditor](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#metaeditor) inclui um depurador.

Você poderá encontrar uma descrição detalhada de todas as funções e construções da linguagem no manual MQL5. Todas as informações sobre MQL5 podem ser encontradas no site da comunidade de desenvolvedores [https://www.mql5.com](https://www.mql5.com/).

## Editor para criar os aplicativos de negociação do MetaEditor [#](#metaeditor)

O MetaEditor é um meio para o desenvolvimento integrado na linguagem [MQL5](https://www.mql5.com/) que faz parte da plataforma de negociação. O MetaEditor permite criar, editar, compilar e depurar textos fonte de programas escritos na linguagem [MQL5](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#mql5).

- Assistente MQL5 para criar modelos e robôs de negociaçãoO MetaEditor tem embutido o Assistente MQL5 para criar rapidamente programas MQL5. Graças ao Assistente MQL5, o trader, sem conhecimentos de programação, pode criar experts. Tudo o que você precisa de fazer é selecionar os sinais de negociação (que serão usados pelo expert), o algoritmo de gerenciamento e o trailing stop. O código do expert será gerado automaticamente com base nos parâmetros selecionados.Além disso, o Assistente MQL5 permite que você crie modelos de programas MQL5, o que facilita o trabalho do programador.
- Assistência ao trabalhar com o código fonteO MetaEditor reconhece várias construções da linguagem: gera dicas sobre o uso de funções e destaca vários elementos de código do programa. Assim, o próprio editor simplifica a orientação no código dos programas de negociação e acelera o seu desenvolvimento.
- Depuração de errosO MetaEditor permite efetuar a depuração de programas, tornando mais fácil a pesquisa de erros. Você pode depurar passo a passo o código fonte e seguir os valores das variáveis.
- Criação de perfil para otimização do códigoNo editor também está disponível a opção de criar um perfil. Você pode identificar as funções mais lentas no código fonte e otimizar ao máximo o trabalho dos programas de negociação.
- Artigos sobre programação e biblioteca de códigos fonteDiretamente no editor, você pode encontrar muitos artigos instrutivos sobre programação na MQL5. Além disso, você tem acesso a uma enorme biblioteca de programas gratuitos para autotrading na forma de códigos fonte.
- MQL5 Storage – depósito online com apoio do sistema de controle de versãoO depósito oferece muitas vantagens: armazenamento seguro de arquivos, capacidade de restauração quando o seu computador sair do sistema, acesso ao seu código a partir de qualquer computador usando a conta da MQL5.community, possibilidade de trabalhar conjuntamente em projetos.

A descrição detalhada do MetaEditor é dada no manual desse programa. A descrição da linguagem MQL5 pode ser encontrada no manual interno, bem como no site oficial da [MQL5.community](https://www.mql5.com/).

## Artigos sobre o desenvolvimento de aplicativos de negociação [#](#articles)

No site da [MQL5.community](https://www.mql5.com/) está disponível uma extensa biblioteca de [artigos sobre programação em MQL4/MQL5](https://www.mql5.com/pt/articles). Os artigos são um excelente material de ajuda para criar programas, eles cobrem muitas tarefas práticas de trading algorítmico. Novos artigos são publicados a cada semana.

Uma lista de todos os artigos disponíveis é exibida diretamente no MetaEditor. Para encontrar o material de interesse, use a [pesquisa online](https://www.metatrader5.com/pt/terminal/help/startworking/interface#search).

![Artigos sobre programação em MQL4/MQL5](https://www.metatrader5.com/i/help/terminal/en/articles.png)

## Quais são os diferentes tipos de aplicativos na MQL5? [#](#type)

Existem três tipos principais de aplicativos de negociação.

### Expert Advisors

Os experts são sistemas mecânicos de negociação que permitem automatizar totalmente as atividades de análise e negociação para um desempenho eficiente nos mercados financeiros. Eles permitem que você realize rapidamente a análise técnica de dados de preços e, com base nos sinais recebidos, gerencie a atividade de negociação. Eles também ajudam a seguir com precisão a estratégia de negociação, eliminando o papel do fator emocional.

Todos os experts são armazenados na pasta [/MQL5/Experts](https://www.metatrader5.com/pt/terminal/help/start_advanced/structure#ea) da plataforma de negociação.

### Indicadores personalizados

Os indicadores personalizados são indicadores técnicos escritos por você e estão destinados à análise da dinâmica de preços. Na base dos algoritmos dos indicadores são construídas táticas de negociação e desenvolvidos experts. Os indicadores personalizados destinam-se apenas à análise da dinâmica de preços dos instrumentos financeiros. Os indicadores não podem negociar e não têm acesso aos gráficos.

Todos os indicadores são armazenados na pasta [/MQL5/Indicators](https://www.metatrader5.com/pt/terminal/help/start_advanced/structure#indicators) da plataforma de negociação.

### Scripts

O script é um programa escrito em linguagem [MQL5](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#mql5) destinado à execução única de qualquer ação. Um script pode executar tanto funções analíticas como de negociação. Ao contrário dos [experts](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#type), os scripts são executados a pedido. Por outras palavras, se o expert trabalha quase em permanência, o script, tendo trabalhado uma vez, termina o trabalho por si.

Todos os scripts são armazenados na pasta [/MQL5/Scripts](https://www.metatrader5.com/pt/terminal/help/start_advanced/structure#scripts) da plataforma de negociação.

### Serviços

[Serviços](https://www.metatrader5.com/pt/terminal/help/algotrading/trade_robots_indicators#service) permitem que você use suas próprias fontes de dados de preços para a plataforma – transfira preços de sistemas externos em tempo real, como os servidores de negociação das corretoras. Os serviços também podem ser usados para executar outras tarefas de manutenção em segundo plano.

Ao contrário de EAs, de indicadores e de scripts, os serviços não estão vinculados a um gráfico específico. Eles correm em segundo plano e trabalham automaticamente quando o terminal inicia (se eles não tiverem sido parados forçosamente).

Todos os serviços são armazenados na pasta [/MQL5/Services](https://www.metatrader5.com/pt/terminal/help/start_advanced/structure#scripts) da plataforma de negociação.

> Dentro das pastas Experts, Indicators, Scripts e Services, os programas podem ser distribuídos por subpastas. Para isso, na janela ["Navegador"](https://www.metatrader5.com/pt/terminal/help/startworking/interface) será exibida a estrutura da sua colocação.

## Como criar e executar um aplicativo de negociação [#](#create)

Clique em "![Criar](https://www.metatrader5.com/i/help/terminal/en/create_icon.png) Criar" no menu de contexto da janela ["Navegador"](https://www.metatrader5.com/pt/terminal/help/startworking/interface) na seção "Experts", "Indicadores" ou "Scripts". Para executar o MetaEditor você também pode pressionar F4.

![Prosseguir com a criação de aplicativos de negociação](https://www.metatrader5.com/i/help/terminal/en/ea_create.png)

Depois disso, será executado o [MetaEditor](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#metaeditor) e nele se abrirá automaticamente o "Assistente MQL5". Ele permite gerar o modelo do programa desejado para que este comece a ser desenvolvido rapidamente. Por exemplo, vamos criar um simples script que exibirá no [diário](https://www.metatrader5.com/pt/terminal/help/start_advanced/journal) a entrada "Hello world".

![O assistente MQL5 gera o modelo da aplicação](https://www.metatrader5.com/i/help/terminal/en/example_wizard_script.png)

No modelo resultante escrevemos o código Print("Hello World"); e pressionamos F7 para obter o arquivo executável. O arquivo executável tem uma extensão EX5; somente esse tipo de arquivo pode ser executado na plataforma de negociação.

![Compilação e seus resultados](https://www.metatrader5.com/i/help/terminal/en/example_compile.png)

Os resultados da compilação são exibidos no diário do editor.

Em conformidade com o tipo de programa, o código fonte foi salvo na pasta MQL5\Scripts\. Nessa mesma pasta foi criado o arquivo executável. Agora, você pode voltar para a plataforma de negociação e executar o script gerado.

![Execução de um script na plataforma de negociação](https://www.metatrader5.com/i/help/terminal/en/example_run_script.png)

> As características do trabalho com programas de trading automatizados estão descritas na seção ["Experts de negociação e indicadores personalizados"](https://www.metatrader5.com/pt/terminal/help/algotrading/trade_robots_indicators).

## Como alterar um aplicativo de negociação [#](#modify)

Para iniciar a edição de um robô de negociação ou indicador personalizado, clique em "![Alterar](https://www.metatrader5.com/i/help/terminal/en/modify_icon.png) Alterar" no seu menu de contexto na janela ["Navegador"](https://www.metatrader5.com/pt/terminal/help/startworking/interface) ou selecione-o e pressione "Enter". Além disso, será aberto o [MetaEditor](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#metaeditor), no qual já está baixado o código fonte do indicador selecionado. Após a alteração do indicador você deve compilá-lo novamente (F7), caso contrário na plataforma será usada a versão anterior, sem alterações.

## Como desligar aplicativos de negociação [#](#quit)

Há muitas maneiras de fechar o trabalho de um aplicativo de negociação na plataforma.

| Robô de negociação | Indicador técnico personalizado | Script |
| --- | --- | --- |
| - Clique "Excluir" na janela ["Lista de experts"](https://www.metatrader5.com/pt/terminal/help/charts_advanced/charts_objects_list#ea);<br>- Altere o [modelo](https://www.metatrader5.com/pt/terminal/help/charts_advanced/templates_profiles) do gráfico;<br>- Altere o [perfil](https://www.metatrader5.com/pt/terminal/help/charts_advanced/templates_profiles#profiles), desde que nas configurações da plataforma esteja habilitada a [opção correspondente](https://www.metatrader5.com/pt/terminal/help/startworking/settings#profile);<br>- Desligue a plataforma de negociação;<br>- Feche o gráfico ao qual está fixado o expert;<br>- Coloque outro expert no mesmo gráfico;<br>- Clique em "![Excluir expert](https://www.metatrader5.com/i/help/terminal/en/ea_remove_icon.png) Excluir" no menu de contexto com o ícone do expert no gráfico. | - Clique "![Excluir indicador](https://www.metatrader5.com/i/help/terminal/en/delete_indicator_icon.png) Excluir" ou "![Excluir janela do indicador](https://www.metatrader5.com/i/help/terminal/en/delete_indicator_window.png) Excluir a janela do indicador" no menu de contexto do indicador;<br>- Clique "Excluir" na janela ["Lista de indicadores"](https://www.metatrader5.com/pt/terminal/help/charts_advanced/charts_objects_list#indicators);<br>- Altere o [modelo](https://www.metatrader5.com/pt/terminal/help/charts_advanced/templates_profiles) do gráfico;<br>- Reabra o gráfico. | - Clique "Excluir" na janela ["Lista de experts"](https://www.metatrader5.com/pt/terminal/help/charts_advanced/charts_objects_list#ea). Essa janela contém também uma lista dos scripts que foram executados;<br>- Altere o [modelo](https://www.metatrader5.com/pt/terminal/help/charts_advanced/templates_profiles) do gráfico;<br>- Altere o [perfil](https://www.metatrader5.com/pt/terminal/help/charts_advanced/templates_profiles#profiles), desde que nas configurações da plataforma esteja habilitada a [opção correspondente](https://www.metatrader5.com/pt/terminal/help/startworking/settings#profile);<br>- Altere o símbolo do [gráfico](https://www.metatrader5.com/pt/terminal/help/charts_analysis/charts);<br>- Altere o [período](https://www.metatrader5.com/pt/terminal/help/charts_analysis/charts#operations) do gráfico;<br>- Desligue a plataforma de negociação;<br>- Feche o gráfico ao qual está ligado o script;<br>- Coloque outro script no mesmo gráfico;<br>- Clique em "![Excluir script](https://www.metatrader5.com/i/help/terminal/en/script_remove_icon.png) Excluir" no menu de contexto do ícone do script no gráfico. |

> Se o aplicativo de negociação for executado no gráfico, a exclusão do arquivo executável correspondente, a partir da janela ["Navegador"](https://www.metatrader5.com/pt/terminal/help/startworking/interface), não conclui o seu trabalho.O encerramento dos experts nas [configurações da plataforma de negociação](https://www.metatrader5.com/pt/terminal/help/startworking/settings#enable_ea) não é garantia de que sejam desligados por completo. Essa opção só proíbe os experts de executar negociações.

## Como executar arquivos de código fonte MQL5 [#](#mq5)

Se você tem apenas o arquivo de código fonte (*.MQ5), coloque-o na pasta que corresponde ao tipo de aplicativo:

- Para experts – /MQL5/Experts
- Para indicadores – /MQL5/Indicators
- Para scripts – /MQL5/Scripts

Para encontrar rapidamente a pasta de armazenamento de informação da plataforma de negociação, clique em "![Abrir diretório de dados](https://www.metatrader5.com/i/help/terminal/en/terminal_data_icon.png) Abrir diretório de dados" no menu ["Arquivo"](https://www.metatrader5.com/pt/terminal/help/startworking/interface).

Para executar o arquivo na plataforma de negociação, compile-o no [MetaEditor](https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading#metaeditor):

- Abra o MetaEditor com o botão F4.
- No MetaEditor, na janela "Navegador, abra o arquivo de código fonte clicando nele duas vezes com o botão esquerdo do mouse.
- O compile com o botão F7.

Como resultado, você irá receber o arquivo executável *.EX5, que pode executar na plataforma de negociação.

> O arquivo fonte (*.MQ5) não é exibido na janela ["Navegador"](https://www.metatrader5.com/pt/terminal/help/startworking/interface) da plataforma de negociação.

## In this section

- [Assessores de negócios e indicadores personalizados](https://www.metatrader5.com/pt/terminal/help/algotrading/trade_robots_indicators)
- [Onde encontrar robôs de negócios e indicadores](https://www.metatrader5.com/pt/terminal/help/algotrading/algotrading_get_ea_indicator)
- Como posso eu próprio criar um expert advisor ou um indicador
- [Estratégias de teste](https://www.metatrader5.com/pt/terminal/help/algotrading/testing)
- [Como o testador carrega os dados históricos](https://www.metatrader5.com/pt/terminal/help/algotrading/test_preparation)
- [Estratégias de otimização](https://www.metatrader5.com/pt/terminal/help/algotrading/strategy_optimization)
- [Recursos de teste](https://www.metatrader5.com/pt/terminal/help/algotrading/testing_features)
- [Relatório de teste](https://www.metatrader5.com/pt/terminal/help/algotrading/testing_report)
- [Visualização de teste](https://www.metatrader5.com/pt/terminal/help/algotrading/visualization)
- [Diário de teste](https://www.metatrader5.com/pt/terminal/help/algotrading/tester_journal)
- [Tipos de otimização](https://www.metatrader5.com/pt/terminal/help/algotrading/optimization_types)
- [Ticks reais e gerados](https://www.metatrader5.com/pt/terminal/help/algotrading/tick_generation)
- [MetaTester e agentes remotos](https://www.metatrader5.com/pt/terminal/help/algotrading/metatester)
- [Variáveis globais](https://www.metatrader5.com/pt/terminal/help/algotrading/service_global)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/pt/terminal/help", "name": "Ajuda para o MetaTrader 5"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/pt/terminal/help/algotrading", "name": "Trading algorítmico, robôs comerciais"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/pt/terminal/help/algotrading/autotrading", "name": "Como posso eu próprio criar um expert advisor ou um indicador"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: Como posso eu próprio criar um expert advisor ou um indicador", "acceptedAnswer": { "@type": "Answer", "text": "Para desenvolver sistemas de negociação, a plataforma tem a sua própria linguagem de programação MetaQuotes..." } }] }
```
