Discussão do artigo "Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIII): classe básica de negociação, controle de parâmetros válidos"

 

Novo artigo Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIII): classe básica de negociação, controle de parâmetros válidos foi publicado:

Neste artigo, continuaremos a acompanhar o desenvolvimento da classe de negociação, criaremos um controle que encontre valores incorretos nos parâmetros da ordem de negociação e sonorizaremos eventos de negociação.

Compilamos e executamos o EA no testador, tendo previamente definido nos parâmetros o valor Lots como 10,
enquanto os valores StopLoss in points e TakeProfit in points, como 1 ponto:


Assim, tentaremos abrir uma posição com um tamanho de lote inválido (parecendo que não há dinheiro suficiente) e violar os requisitos de distância mínima para definir stops, distância essa regulada pelo parâmetro StopLevel do símbolo:


Nosso EA exibiu no log dois erros: "não há fundos suficientes para concluir a operação de negociação" e "o valor StopLoss não cumpre os requisitos segundo o parâmetro StopLevel do símbolo". Mas também definimos o TakeProfit como um ponto. Por que ele não imprimiu uma mensagem sobre esse erro? Porque não há erro, pois os níveis de TakeProfit e StopLoss dentro do nível mínimo SYMBOL_TRADE_STOPS_LEVEL estão definidos segundo a regra.

Os níveis TakeProfit e StopLoss devem ser comparados com o preço atual com base no qual pode ser executada uma operação de direção oposta.

  • A compra é realizada segundo o preço Ask, aqui é preciso comparar os níveis TakeProfit e StopLoss com o atual preço de venda Bid.
  • A venda realiza-se segundo o preço Bid, aqui é preciso comparar os níveis TakeProfit e StopLoss com o atual preço de compra Ask.

Autor: Artyom Trishkin