- Estrutura do Tipo Data
- Estrutura de Parâmetros de Entrada
- Estrutura de Dados Históricos
- Estrutura DOM
- Estrutura de Solicitação de Negociação (Trade)
- Estrutura de Resultados de Verificação de Solicitação
- Estrutura de Resultado de Solicitação de uma Negociação (Trade)
- Estrutura de uma Transação de Negociação
- Estrutura para Preços Correntes
- Estruturas do calendário econômico
A Estrutura de um Resultado de Solicitação de Negociação (MqlTradeResult)
Como resultado de uma solicitação de negociação, um servidor de negociação retorna dados sobre o resultado do processamento da solicitação de negociação na forma de uma estrutura predefinida especial de tipo MqlTradeResult.
struct MqlTradeResult
|
Descrição dos Campos
Campo |
Descrição |
---|---|
retcode |
Código de retorno de um servidor de negociação |
deal |
Bilhetagem (ticket) da operação (deal), caso uma operação tenha sido realizada. É disponível para uma operação de negociação de tipo TRADE_ACTION_DEAL |
order |
Bilhetagem (ticket) da ordem, caso uma ordem tenha sido colocada. É disponível para uma operação de negociação de tipo TRADE_ACTION_PENDING |
volume |
Volume de operação (deal), confirmado pela corretora. Depende do tipo de preenchimento da ordem |
price |
Preço da operação (deal), confirmado pela corretora. Depende da área de desvio da requisição de negócio e/ou sobre operação de negócios |
bid |
O preço corrente de venda de mercado (preço re-cotado) |
ask |
O preço corrente de compra de mercado (preço re-cotado) |
comment |
O comentário da corretora para a operação (por default, ele é preenchido com a descrição código de retorno de um servidor de negociação) |
request_id |
Identificador da solicitação definida pelo terminal ao enviar para o servidor de negociação |
retcode_external |
Código de erro retornado pelo sistema de negociação exterior. O uso e tipos destes erros dependerão da corretora e do sistema de negociação exterior a partir do qual são enviadas as operações de negociação |
O resultado da operação de negociação é retornado para variável do tipo MqlTradeResult, que é passado como o segundo parâmetro da função OrderSend() para realizar operações de negociação.
O terminal fixa um identificador (ID) de solicitação no campo request_id ao enviar-la para o servidor de negociação usando as funções OrdersSend() e OrderSendAsync(). O terminal recebe mensagens sobre transações realizadas provenientes do servidor de negociação e as submete para processamento através da função OnTradeTransaction() contendo os seguintes componentes como parâmetros:
- Descrição da transação de negociação na estrutura MqlTradeTransaction;
- Descrição da solicitação de negociação enviado a partir da função OrderSend() ou OrdersSendAsync(). O ID da solicitação é enviado pelo terminal para o servidor de negociação, enquanto a solicitação em si e seu request_id são armazenados na memória do terminal;
- O resultado de execução da solicitação de negociação como estrutura MqlTradeResult com o campo request_id contendo o ID desta solicitação.
A função OnTradeTransaction() recebe três parâmetros de entrada mas os últimos dois devem ser analisados somente para transações do tipo TRADE_TRANSACTION_REQUEST. Em todos os outros casos, dados sobre a solicitação de negociação e seu resultado de execução não são preenchidos. Exemplo de análise de parâmetros pode ser encontrado em Estrutura de uma Solicitação de Negociação.
A definição do request_id pelo terminal na solicitação de negociação quando enviá-la para o servidor é introduzido principalmente para trabalhar com a função assíncrona OrderSendAsync(). Este identificador permite associar a ação realizada (chamada a funções OrderSend ou OrderSendAsync) com o resultado desta ação enviada para OnTradeTransaction().
Exemplo:
//+------------------------------------------------------------------+
|