Discussão do artigo "Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXII): classes de negociação - classe básica de negociação, controle de restrições"

 

Novo artigo Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXII): classes de negociação - classe básica de negociação, controle de restrições foi publicado:

No artigo, começaremos a criar uma classe básica de negociação da biblioteca e dotaremos a primeira versão com uma funcionalidade de verificação de permissões inicial para realizar operações de negociação. Também expandiremos levemente os recursos e o conteúdo da classe básica de negociação.

Para testar o trabalho dos métodos de verificação de restrições de negociação, é preciso criá-las artificialmente.

Por exemplo:

  1. desativamos a Internet (imitar uma quebra na comunicação com o servidor de negociação),
  2. nas configurações do EA, o proibiremos de negociar (pressionamos F7 e, na janela de configurações do EA aberto na guia "Geral", desmarcamos a caixa "Permitir que o EA negocie"),
  3. desabilitamos no terminal a negociação automática (pressionamos o botão "Autotrading")

E tentamos clicar no botão para abrir uma posição no painel de negociação do EA. Como resultado, obtemos uma entrada no log:

2019.09.26 15:07:55.582 CTrading::OpenBuy: The request was rejected before being sent to the server due to:
2019.09.26 15:07:55.582 1. There is no permission to conduct trading operations in the terminal (the "AutoTrading" button is disabled)
2019.09.26 15:07:55.582 2. No connection to the trading server
2019.09.26 15:07:55.582 3. EA does not have permission to conduct trading operations (F7 --> Common --> "Allow Automatic Trading")

Removemos as restrições uma a uma.

Ativamos a Internet e ao tentar abrir uma posição, obtemos:

2019.09.26 15:10:36.766 CTrading::OpenBuy: The request was rejected before being sent to the server due to:
2019.09.26 15:10:36.766 1. There is no permission to conduct trading operations in the terminal (the "AutoTrading" button is disabled)
2019.09.26 15:10:36.766 2. EA does not have permission to conduct trading operations (F7 --> Common --> "Allow Automatic Trading")

Ativamos no terminal a negociação automática clicando no botão Autotrading e, ao tentar abrir uma posição, obtemos

2019.09.26 15:13:03.424 CTrading::OpenBuy: The request was rejected before being sent to the server due to:
2019.09.26 15:13:03.424 EA does not have permission to conduct trading operations (F7 --> Common --> "Allow Automatic Trading")

Pressionamos F7 e nas configurações do EA, permitiremos que ele negocie. Ao tentar abrir uma posição, obtemos uma posição aberta:

2019.09.26 15:14:32.619 - Position is open: 2019.09.26 11:14:32.711 -
2019.09.26 15:14:32.619 EURUSD Opened 0.10 Buy #455179802 [0.10 Market-order Buy #455179802] at price 1.09441, Magic number 123

As restantes restrições podem ser verificadas no testador ou numa conta demo, criando uma situação em que uma das restrições funciona, por exemplo, uma restrição no número máximo de ordens pendentes na conta.

Autor: Artyom Trishkin