Tipos de Transação de Negociação

Ao realizar algumas ações específicas em uma conta de negociação, seu estado muda. Tais ações includem:

  • Envio de uma solicitação de negociação a partir de algum aplicativo MQL5 no terminal usando as funções OrderSend e OrderSendAsync e sua posterior execução.
  • Envio de uma solicitação de negociação por meio da interface gráfica do terminal e sua posterior execução.
  • Ativação de ordens pendentes e ordens de stop no servidor.
  • Realização de operações no lado de um servidor de negociação.

As seguintes transações de negociação são realizadas como resultado destas ações:

  • tratamento de uma solicitação de negociação
  • mudança de ordens de abertura
  • mudança de histórico de ordens
  • mudança de histórico de operações (deals)
  • mudança de posições

Por exemplo, ao enviar uma ordem de compra de mercado, ela é tratada, uma ordem de compra apropriada é criada para a conta, a ordem é então executada e removida da lista de ordens em aberto, e então ela é adicionada ao histórico de ordens, uma apropriada operação (deal) é adicionada ao histórico e uma nova posição é criada. Todas estas ações são transações de negociação.

Para deixar um programador rastrear as ações realizadas em relação a uma conta de negociação, a função OnTradeTransaction foi fornecida. Este handler permite obter transações de negociação aplicadas a uma conta em aplicações MQL5 A descrição de uma transação de negociação é submetida no primeiro parâmetro de OnTradeTransation usando a estrutura MqlTradeTransaction.

O tipo de transação de negociação é submetida no parâmetro de tipo de estrutura MqlTradeTransaction. Os possíveis tipos de transações de negociação são descritos através da seguinte enumeração:

ENUM_TRADE_TRANSACTION_TYPE

Identificador

Descrição

TRADE_TRANSACTION_ORDER_ADD

Adição de uma nova ordem de abertura.

TRADE_TRANSACTION_ORDER_UPDATE

Atualização de uma ordem de aberturar. As atualizações incluem não somente mudanças evidentes provenientes do terminal cliente ou do lado de um servidor de negociação, mas também alterações de estado de uma ordem ao configurá-lo (por exemplo, transição de ORDER_STATE_STARTED para ORDER_STATE_PLACED ou de ORDER_STATE_PLACED para ORDER_STATE_PARTIAL, etc.).

TRADE_TRANSACTION_ORDER_DELETE

Remoção de uma ordem da lista de ordens em aberto. Uma ordem pode ser excluída da lista de ordens em aberto como resultado da configuração de um solicitação apropriada ou execução (preenchimento) ou movimentação para o histórico.

TRADE_TRANSACTION_DEAL_ADD

Adição de uma operação (deal) para o histórico. A ação é realizada como resultado de uma execução de uma ordem ou realização de operações com o saldo da conta.

TRADE_TRANSACTION_DEAL_UPDATE

Atualização de uma operação (deal) no histórico. Pode haver caso quando uma operação (deal) executada previamente é alterada em um servidor. Por exemplo, uma operação (deal) foi alterada em um sistema de negociação externo (exchange) onde ela foi transferida anteriormente por uma corretora (broker).

TRADE_TRANSACTION_DEAL_DELETE

Exclusão de uma operação (deal) do histórico. Pode haver casos quando uma operação (deal) executada anteriormente é excluída de um servidor. Por exemplo, uma operação (deal) foi excluída de um sistema de negociação externo (exchange) onde ela foi transferida anteriormente por uma corretora (broker).

TRADE_TRANSACTION_HISTORY_ADD

Adição de uma ordem no histórico como resultado de uma execução ou cancelamento.

TRADE_TRANSACTION_HISTORY_UPDATE

Alteração de uma ordem localizada no histórico de ordens. Este tipo é fornecido para aumentar a funcionalidade no lado de um servidor de negociação.

TRADE_TRANSACTION_HISTORY_DELETE

Exclusão de uma ordem do histórico de ordens. Este tipo é fornecido para aumentar a funcionalidade no lado de um servidor de negociação.

TRADE_TRANSACTION_POSITION

Alteração de uma posição não relacionada com a execução de uma operação (deal). Este tipo de transação mostra que uma posição foi alterada pelo lado de um servidor de negociação. O volume de uma posição, o preço de abertura, os níveis de Stop Loss e Take Profit podem ter sido alterados. Dados sobre alteração são submetidos na estrutura MqlTradeTransaction via o handler OnTradeTransaction. Alterações de posição (adição, alteração ou encerramento), como resultado de uma execução de operação (deal), não levam a ocorrência de uma transação TRADE_TRANSACTION_POSITION.

TRADE_TRANSACTION_REQUEST

Notificação do fato de que uma solicitação de negociação foi processada por um servidor e o resultado processado foi recebido. Apenas o campo type (tipo de transação de negociação) deve ser analisado em tais transações na estrutura MqlTradeTransaction. O segundo e terceiro parâmetros de OnTradeTransaction (request e result) devem ser analisados para dados adicionais.

Dependendo do tipo da transação de negociação, vários parâmetros são preenchidos na estrutura MqlTradeTransaction, descrevendo-a. Uma descrição detalhada dos dados submetidos é mostrada em Estrutura de uma Transação de Negociação.

Também Veja

Estrutura de uma Transação de Negociação, OnTradeTransaction