- Execução de Programa
- Trade permission
- Eventos do Terminal Cliente
- Recursos
- Chamadas de Funções Importadas
- Erros em Tempo de Execução
- Testando Estratégias de Negociação
Trade Permission
Trade Automation
A linguagem MQL5 fornece um grupo especial de funções de negociação projetado para o desenvolvimento de sistemas de negociação automatizados. Programas desenvolvidos para negociação automatizada sem intervenção humana são chamados Expert Advisors ou robôs de negociação. Para criar um Expert Advisor no MetaEditor, abra o MQL5 Wizard e selecione uma das duas opções:
- Expert Advisor (modelo) permite-lhe criar um modelo com uma função de manipulação de eventos que devem ser complementados com toda a funcionalidade necessária por meio de programação.
- Expert Advisor (generate) permite você desenvolver um robô de negociação completoSimplesmente selecionando os módulos necessários: módulo de negociação de sinais, módulo de gerenciamento de dinheiro e módulo de parada final.
As funções de negociação podem funcionar apenas em Expert Advisors e scripts. A negociação não é permitida para os indicadores.
Verificando a Permissão para Realizar uma Negociação Automatizada
A fim de desenvolver um Expert Advisor confiável capaz de trabalhar sem intervenção humana, é necessário organizar um conjunto de verificações importantes. Primeiro, devemos verificar programaticamente se a negociação é permitida em tudo. Esta é uma verificação básica que é indispensável ao desenvolver qualquer sistema automatizado.
Verificação da permissão para realizar a negociação automatizada no terminal
As configurações de terminal fornecem a você a capacidade de permitir ou proibir a negociação automatizada de todos os programas.
Você pode alternar a opção de negociação automatizada diretamente no painel Padrão do terminal:
negociação automatizada habilitada, funções de negociação em aplicativos lançados são permitidos para uso.
negociação automatizada desabilitada, as aplicações em execução não conseguem executar funções de negociação.
Verificar amostra:
if (!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
|
Verificando se a negociação é permitida para uma determinada execução do Expert Advisor/script
Você pode permitir ou proibir a negociação automatizada para um determinado programa ao lançá-lo. Para fazer isso, use a caixa de seleção especial nas propriedades do programa.
Verificar amostra:
if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
|
Verificando se a negociação é permitida para qualquer Expert Advisors/scripts para a conta corrente
A negociação automatizada pode ser desativada no lado do servidor de negociação. Verificar amostra:
if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
|
Se a negociação automatizada estiver desativada para uma conta de negociação, as operações de negociação de Expert Advisors/scripts não serão executadas.
Verificando se a negociação é permitida para a conta corrente
Em alguns casos, quaisquer operações de negociação são desativadas para uma determinada conta de negociação - nem manual nem automatizado de negociação pode ser realizada. Exemplo de verificação quando uma senha de investidor foi usada para conectar-se a uma conta de negociação:
if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
|
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) deve retornar falsa nos casos seguintes:
- Sem conexão com o servidor de negociação. Isso pode ser verificado usando TerminalInfoInteger(TERMINAL_CONNECTED);
- Conta de negociação comutada para modo somente leitura (enviada para o arquivo);
- A negociação na conta é desativada no lado do servidor de negociação;
- A conexão com uma conta de negociação foi realizada no modo Investidor.
Veja também
Propriedades do terminal do cliente, Propriedades da Conta, Propriedades de um programa MQL5 em execução