Discussão do artigo "Processamento de eventos trade no Expert Advisor usando a função OnTrade()"

 

Novo artigo Processamento de eventos trade no Expert Advisor usando a função OnTrade() foi publicado:

O MQL5 apresentou uma variedade de inovações, incluindo trabalho com eventos de vários tipos (eventos de tempo, eventos de negócio, eventos de personalização, etc.). A habilidade de manipular eventos permite que você crie tipos completamente novos de programas para negociação automática e semi-automática. Neste artigo, consideraremos os eventos de negócio e escreveremos alguns códigos para a função OnTrade(), que irá processar o evento Trade.

Processamento de eventos trade no Expert Advisor usando a função OnTrade()

Autor: KlimMalgin

 

Ao compilar, ocorre um erro na conversão implícita de 'number' para 'string' TradeControl.mq5 349 99
nesta linha

_alerts += "No par "+PositionList[i].symbol+" o stoploss foi alterado de "+ PrevPositionList[i].sl +" para "+ PositionList[i].sl +"\n";

 
sergey1294:

Ao compilar, ocorre um erro na conversão implícita de 'number' para 'string' TradeControl.mq5 349 99
nesta linha

_alerts += "No par "+PositionList[i].symbol+" o stoploss foi alterado de "+ PrevPositionList[i].sl +" para "+ PositionList[i].sl +"\n";

Isso não é um erro, mas um aviso de que essa linha contém uma conversão implícita de um número em uma cadeia de caracteres. Nesses casos, o compilador avisa sobre a conversão, e o programador deve decidir se essa conversão é um erro ou não.

Para remover esse aviso, você deve fazer uma conversão explícita:

_alerts += "No Steam".+PositionList[i].symbol+" mudou o stoploss de "+ (string)PrevPositionList[i].sl +" em "+ (string)PositionList[i].sl +"\n";
 
KlimMalgin:

Isso não é um erro, mas um aviso de que essa linha contém uma conversão implícita de um número em uma cadeia de caracteres. Nesses casos, o compilador avisa sobre a conversão, e o programador deve decidir se essa conversão é um erro ou não.

Para remover esse aviso, você deve fazer uma conversão explícita:

Obrigado, vamos tentar.
 

De alguma forma, ele não funciona corretamente, a posição é fechada no take profit, mas não há informações sobre isso.

DS 0 TradeControl (EURUSD,M5) 22:36:06 Evento de negociação recebido
EJ 0 TradeControl (EURUSD,M5) 22:36:06 Erro # 4751
PN 0 TradeControl (EURUSD,M5) 22:36:06 876874 Ordem recebida para processamento
DH 0 TradeControl (EURUSD,M5) 22:36:08 Evento de negociação recebido
IS 0 TradeControl (EURUSD,M5) 22:36:08 Erro #4751 Ordem 876874 não encontrada!
HK 0 TradeControl (EURUSD,M5) 22:36:08 Erro # 4751 state:4
RQ 0 TradeControl (EURUSD,M5) 22:36:08 0 Ordem executada, prossiga para a negociação
OD 0 TradeControl (EURUSD,M5) 22:36:08 876874 ordem gerada negociação #947094
RS 0 TradeControl (EURUSD,M5) 22:36:08 Abriu uma posição de compra no EURUSD
DQ 0 TradeControl (EURUSD,M5) 22:36:08 Evento de negociação recebido
DI 0 TradeControl (EURUSD,M5) 22:36:08 Evento de negociação recebido
KQ 0 TradeControl (EURUSD,M5) 22: 41:45 Recebido evento de negociação
KI 0 TradeControl (EURUSD,M5) 22:41:45 Evento de negociação recebido
KQ 0 TradeControl (EURUSD,M5) 22:41:45 Evento de negociação recebido

 
O artigo não abrange o fechamento de posições com take-profit e stop-loss. Somente os eventos indicados no início do artigo são considerados.
 
KlimMalgin:
O artigo não abrange o fechamento de posições com take-profit e stop-loss. Somente os eventos indicados no início do artigo são considerados.

Estou vendo, é uma pena que eles não sejam considerados. Vou esperar que apareça um artigo semelhante ou que você adicione o seu próprio artigo de acordo com ele. O análogo do artigo para MT4 pode ser encontrado aqui https://www.mql5.com/ru/articles/1399.

  1. Abertura de uma posição
    • "Posição de mercado
      • Comprar
      • Vender
    • Ordem pendente
      • Limite de compra
      • Limite de venda
      • Limite de compra
      • Limite de venda
  2. Acionamento da ordem
    • Limite de compra
    • Limite de venda
    • Buy-stop
    • Limite de venda
  3. Fechamento de posição
    • "Posição de mercado
      • Compra
        • Stop Loss
        • Obter lucro
        • Manual (não Stop Loss ou Take Profit)
      • Venda
        • Stop Loss
        • Obter lucro
        • Manualmente
    • Ordem pendente (excluir)
      • Limite de compra
        • Tempo de expiração
        • Manualmente
      • Limite de venda
        • Tempo de expiração
        • Manualmente
      • Parada de compra
        • Tempo de expiração
        • Manual
      • Parada de venda
        • Tempo de expiração
        • Manual
  4. Modificação da posição
    • "Posição de mercado
      • Comprar
        • Stop Loss
        • Take Profit
      • Venda
        • Stop Loss
        • Take Profit
    • Ordem pendente
      • Limite de compra
        • Preço de abertura
        • Stop Loss
        • Obter lucro
        • Tempo de expiração
      • Limite de venda
        • Preço de abertura
        • Stop Loss
        • Take Profit
        • Tempo de expiração
      • Parada de compra
        • Preço de abertura
        • Stop Loss
        • Take Profit
        • Tempo de expiração
      • Parada de venda
        • Preço de abertura
        • Stop Loss
        • Take Profit
        • Tempo de expiração
События в МetaТrader 4
События в МetaТrader 4
  • 2006.05.29
  • Andrey Khatimlianskii
  • www.mql5.com
Статья посвящена программному отслеживанию событий в терминале МetaТrader 4, таких как открытие, закрытие и модификация ордеров, и рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL 4.
 

Nenhum processamento de HistorySelect()==false! Um caso bastante frequente...

 
KlimMalgin:
O artigo não abrange o fechamento de posições com take-profit e stop-loss. Somente os eventos indicados no início do artigo são considerados.
Você deve ter sido em vão... Eu estava esperando por este artigo apenas por um exemplo de manipulação de stop...
 

A MQL5 fornece o modo de processamento de eventos,

Por que não fornecer os praramers do evento?

Desejo que, como emOnChartEvent(....), você forneça o ID do evento e os parâmetros!!!!!!!!!!!!!

 
DxdCn:
Deseje comoOnChartEvent(....), forneça o ID do evento e os parâmetros!!!!!!!!!!!!!

O OnChartEvent é usado no artigo Creating Active Control Panels in MQL5 for Trading.