MANUAL DO USUÁRIO                                      Utilização     Página/Folha

                                      ...
MANUAL DO USUÁRIO                                       Utilização     Página/Folha

                                     ...
MANUAL DO USUÁRIO                           Utilização     Página/Folha

                                    MULTIGATEWAY ...
MANUAL DO USUÁRIO                             Utilização     Página/Folha

                                        MULTIGA...
MANUAL DO USUÁRIO                                    Utilização     Página/Folha

                                       M...
MANUAL DO USUÁRIO   Utilização     Página/Folha

                                           MULTIGATEWAY          Externa ...
MANUAL DO USUÁRIO                                               Utilização     Página/Folha

                             ...
MANUAL DO USUÁRIO                                         Utilização     Página/Folha

                                   ...
MANUAL DO USUÁRIO                                       Utilização     Página/Folha

                                  MUL...
MANUAL DO USUÁRIO                                        Utilização     Página/Folha

                                    ...
MANUAL DO USUÁRIO                                        Utilização     Página/Folha

                                  MU...
MANUAL DO USUÁRIO                                 Utilização     Página/Folha

                                      MULTI...
MANUAL DO USUÁRIO                                   Utilização     Página/Folha

                                         ...
MANUAL DO USUÁRIO                                    Utilização     Página/Folha

                                     MUL...
MANUAL DO USUÁRIO                                      Utilização     Página/Folha

                                     M...
MANUAL DO USUÁRIO                                    Utilização     Página/Folha

                                 MULTIGA...
MANUAL DO USUÁRIO                                      Utilização     Página/Folha

                                  MULT...
MANUAL DO USUÁRIO                                         Utilização     Página/Folha

                                   ...
MANUAL DO USUÁRIO                                         Utilização     Página/Folha

                                   ...
MANUAL DO USUÁRIO                                      Utilização     Página/Folha

                                 MULTI...
MANUAL DO USUÁRIO                                          Utilização     Página/Folha

                                  ...
MANUAL DO USUÁRIO                                         Utilização     Página/Folha

                                   ...
MANUAL DO USUÁRIO                                         Utilização     Página/Folha

                                   ...
MANUAL DO USUÁRIO                                         Utilização     Página/Folha

                                   ...
MANUAL DO USUÁRIO                                         Utilização        Página/Folha

                                ...
MANUAL DO USUÁRIO                             Utilização     Página/Folha

                                      MULTIGATE...
MANUAL DO USUÁRIO                                 Utilização     Página/Folha

                                 MULTIGATEW...
MANUAL DO USUÁRIO                                      Utilização     Página/Folha

                                      ...
MANUAL DO USUÁRIO                                           Utilização     Página/Folha

                                 ...
MANUAL DO USUÁRIO                                   Utilização     Página/Folha

                                     MULT...
MANUAL DO USUÁRIO                                      Utilização     Página/Folha

                                   MUL...
MANUAL DO USUÁRIO                                     Utilização     Página/Folha

                                       ...
MANUAL DO USUÁRIO                                  Utilização     Página/Folha

                                         M...
MANUAL DO USUÁRIO                                   Utilização     Página/Folha

                                         ...
MANUAL DO USUÁRIO                                     Utilização     Página/Folha

                                     MU...
MANUAL DO USUÁRIO                                    Utilização     Página/Folha

                                       M...
MANUAL DO USUÁRIO                                     Utilização     Página/Folha

                                       ...
MANUAL DO USUÁRIO                                  Utilização     Página/Folha

                                        MU...
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Bovespa
Upcoming SlideShare
Loading in...5
×

Bovespa

1,276

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,276
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
46
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Bovespa"

  1. 1. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 1/1 Capítulo Revisão Data Apresentação 02 30/05/08 Este manual é dirigido às Sociedades Corretoras que se utilizam de ferramentas on line (como Home Brokers) para se conectarem e realizarem negociações on line. Seu conteúdo apresenta instruções sobre o funcionamento e as estruturas que compõem o Multigateway, detalhando suas funcionalidades, estrutura de dados, características de conexões com os clientes e com o Sistema de Negociação MEGA BOLSA. Este manual deve ser estudado pelos gestores e funcionários das instituições que estejam envolvidos com o assunto e obtiveram o serviço. O conteúdo do documento é dividido da seguinte forma: Objetivos: orientar os usuários no desenvolvimento de soluções para o tratamento das informações disponibilizadas pelo Multigateway. Capítulos subseqüentes..Protocolo API, Protocolo FIX,.Mensagens FIX A BOVESPA divulgará aos usuários que receberam este manual as atualizações com eventuais revisões nos capítulos, sempre que necessário. Para qualquer solicitação de acesso ao Multigateway, deverão ser consultadas as orientações contidas no site www.bovespanet.com.br Normas / Roteamento de Ordens / Conexões Automatizadas O suporte técnico às instituições envolvidas nesse processo será dado pela Central de Atendimento pelo telefone: (11) 3233-2333 ou e-mail: cab@bovespa.com.br. GTW 00 Apresentação_ext.doc
  2. 2. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 1/1 Capítulo Revisão Data 03 01/10/08 Alterações Com a finalidade de facilitar a identificação das alterações ocorridas no sistema, apresentamos o histórico das modificações ocorridas: Multigateway: 01/10/2008 Regras do Sistema (Cap. I – Objetivo, Aplicação e Definições, item 3.3) Inclusão de regras do sistema Inclusão API (Cap. I I – Procedimentos, item 1) strUserID As String (nota referente a restrição de tamanho de campo. Inclusão FIX (Cap. I I – Procedimentos, item 2.2.4.1 - NewOrderSingle Inclusão Inclusão de nota referente a restrição de tamanho de campo. Inclusão Multigateway: 30/05/2008 Regras do Sistema (Cap. I – Objetivo, Aplicação e Definições, item 3.2) Inclusão de regras do sistema Inclusão Restrições (Cap. I – Objetivo, Aplicação e Definições, item 3.3) Inclusão de restrições do sistema Inclusão Utilização Básica (Cap. II Procedimentos item 1.4.2) Inclusão de novas instruções de utilização básica Inclusão HBConnection (Cap. II Procedimentos item 1.4.3.1) Alteração de método Alteração HBConnection2 (Cap. II Procedimentos item 1.4.3.2) Inclusão de interface Inclusão HBOrderBookResponse (Cap. II Procedimentos item 1.4.3.16) Inclusão de informações de retorno Inclusão HBOrderBookResponse2 (Cap. II Procedimentos item 1.4.3.17) Inclusão de informações de retorno Inclusão NewOrderSingle (Cap. II Procedimentos item 2.2.4.1) Inclusão do campo 38 (OrderQty) Inclusão ExecutionReport (Cap. II Procedimentos item 2.2.4.4) Inclusão do campo 38 (OrderQty) Inclusão OrderCancelReplace (Cap. II Procedimentos item 2.2.4.5) Inclusão do campo 38 (OrderQty) Inclusão Cap II – Item 3 – Mensagens Inclusão do item Inclusão GTW 00 Alterações_ext.doc
  3. 3. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 2/2 Capítulo Revisão Data 03 01/10/08 Alterações Multigateway: 12/05/2008 Mensagem de Solicitação de Registro de Nova Oferta (Cap. II Procedimentos, item 1.3.4.1) Inclusão do campo m_strDisplayQuantity Inclusão Mensagem de Solicitação de Alteração de Oferta (Cap. II Procedimentos item 1.3.4.15) Inclusão de mensagem Inclusão Mensagem de Resposta de Confirmação de Alteração de Oferta (Cap. II Procedimentos item 1.3.4.16) Inclusão de mensagem Inclusão DLL (Cap. II Procedimentos item 1.4) Inclusão de item Inclusão LIB (Cap. II Procedimentos item 1.5) Inclusão de item Inclusão FIX (Cap. II Procedimentos item 2.1) Alteração do suporte de versão FIX apenas para 4.2 a 4.4 Alteração NewOrderSingle (Cap. II Procedimentos item 2.2.4.1) Inclusão do campo 111 (MaxFloor) Inclusão Inclusão de valores possíveis no campo 40 (OrdType) Inclusão ExecutionReport (Cap. II Procedimentos item 2.2.4.4) Inclusão do campo 210 (MaxShow) Inclusão OrderCancelReplace (Cap. II Procedimentos item 2.2.4.5) Inclusão da mensagem de aplicação OrderCancelReplace Inclusão GTW 00 Alterações_ext.doc
  4. 4. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 1/4 Capítulo Revisão Data Índice 02 30/05/08 Capítulos Página 1/1 Apresentação Alterações 1/1 Índice 1/4 I – OBJETIVO, APLICAÇÃO E DEFINIÇÕES 1 – OBJETIVO 1/3 2 – APLICAÇÃO 1/3 3 – DEFINIÇÕES 1/3 3.1 Termos e Nomenclaturas 1/3 3.2 Regras do Sistema 1/3 3.2.1 Modificação de Oferta 1/3 3.2.1.1 API 1/3 3.2.1.2 FIX 2/3 3.2.2 Cancelamento ou Modificação de Ordem já Modificada – API e FIX 2/3 3.3 Restrições 3/3 3.4 Referências 3/3 II – PROCEDIMENTOS 1 – PROTOCOLO API 1/45 1.1 Conexão 1/45 1.2 Camada de Sessão 1/45 1.2.1 Seqüenciamento de Mensagens 2/45 1.2.2 Buffer de Mensagens Para Retransmissão 2/45 1.2.3 Mecanismo de Retransmissão 2/45 1.2.4 Verificação de Conexão Ativa 2/45 1.2.5 Mensagens da Camada de Sessão 3/45 1.2.5.1 Mensagem de Solicitação de Autenticação 3/45 1.2.5.2 Mensagem de Sucesso na Autenticação 4/45 1.2.5.3 Mensagem de Erro na Autenticação 4/45 1.2.5.4 Mensagem de Solicitação de Reenvio de Mensagens 5/45 1.2.5.5 Mensagem de Notificação de Nova Seqüência de Mensagens 5/45 GTW 00 Índice_ext.doc
  5. 5. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 2/4 Capítulo Revisão Data Índice 02 30/05/08 1.2.5.6 Mensagem de Heartbeat 6/45 1.2.5.7 Mensagem de Resposta a Heartbeat 6/45 1.3 Camada de Aplicação 7/45 1.3.1 Index 7/45 1.3.2 Control Number 7/45 1.3.3 Controle de Seqüência de Retransmissão 7/45 1.3.4 Mensagens da Camada de Aplicação 8/45 1.3.4.1 Mensagem de Solicitação de Registro de Nova Oferta 8/45 1.3.4.2 Mensagem de Solicitação de Cancelamento de Oferta 8/45 1.3.4.3 Mensagem de Re-solicitação de Ordens 9/45 1.3.4.4 Mensagem de Consulta de Limites 9/45 1.3.4.5 Mensagem de Consulta ao Último Índice 9/45 1.3.4.6 Mensagem de Consulta ao Order Book 10/45 1.3.4.7 Mensagem de Ack 10/45 1.3.4.8 Mensagem de Resposta de Confirmação do Registro de Ordem 11/45 1.3.4.9 Mensagem de Resposta de Confirmação do Cancelamento da Ordem 11/45 1.3.4.10 Mensagem de Resposta de Ocorrência de Erro 12/45 1.3.4.11 Mensagem de Resposta de Execução de Ordem 13/45 1.3.4.12 Mensagem de Resposta à Consulta de Índice 13/45 1.3.4.13 Mensagem de Resposta à Consulta de Limites 14/45 1.3.4.14 Mensagem de Resposta à Consulta de Order Book 14/45 1.3.4.15 Mensagem de Solicitação de Alteração de Oferta 15/45 1.3.4.16 Mensagem de Resposta de Confirmação de Alteração de Oferta 15/45 1.4 DLL 16/45 1.4.1 Instalação do Componente GWHBClientCOM.dll 16/45 1.4.2 Utilização Básica 18/45 1.4.3 Classes do Componente 18/45 1.4.3.1 HBConnection 18/45 1.4.3.2 HBConnection2 22/45 1.4.3.3 HBOrderInfo 22/45 1.4.3.4 HBCancelOrder 24/45 1.4.3.5 HBQueryLimits 24/45 1.4.3.6 HBRecalMsgs 25/45 1.4.3.7 HBOrderResponse 25/45 1.4.3.8 HBCancelResponse 25/45 1.4.3.9 HBErrorResponse 26/45 1.4.3.10 HBIndexResponse 27/45 1.4.3.11 HBLimitResponse 27/45 1.4.3.12 HBTradeResponse 28/45 1.4.3.13 HBModifyResponse 29/45 1.4.3.14 HBNewOrder 30/45 1.4.3.15 HBModifyOrder 30/45 1.4.3.16 HBOrderBookResponse 30/45 GTW 00 Índice_ext.doc
  6. 6. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 3/4 Capítulo Revisão Data Índice 02 30/05/08 1.4.3.17 HBOrderBookResponse2 31/45 1.5 LIB 31/45 1.5.1 Instalação do Componente LibGnr.a 31/45 1.5.2 Utilização Básica 32/45 1.5.3 Funções 33/45 1.5.3.1 GetStatus 33/45 1.5.3.2 GetLastCtrlNumber 33/45 1.5.3.3 Start 33/45 1.5.3.4 Stop 34/45 1.5.3.5 SendOrder 34/45 1.5.3.6 CancelOrder 36/45 1.5.3.7 QueryLimits 36/45 1.5.3.8 QueryIndex 37/45 1.5.3.9 RecallMessages 37/45 1.5.3.10 QueryOrderBook 37/45 1.5.3.11 ModifyOrder 37/45 1.5.4 Eventos 38/45 1.5.4.1 OrderResponse 38/45 1.5.4.2 TradeResponse 39/45 1.5.4.3 CalcelResponse 40/45 1.5.4.4 LimitResponse 40/45 1.5.4.5 ErrorResponse 41/45 1.5.4.6 TradeCancelResponse 41/45 1.5.4.7 IndexResponse 42/45 1.5.4.8 OrderBookResponse 42/45 1.5.4.9 AuthenticationOk 43/45 1.5.4.10 AuthenticationError 44/45 1.5.4.11 ConnectionAccepted 44/45 1.5.4.12 ConnectionError 44/45 1.5.4.13 ModifyResponse 44/45 1/11 2 – PROTOCOLO FIX 1/11 2.1 FIX 2/11 2.2 Mensagens FIX 2.2.1 Header 2/11 2.2.2 Trailer 3/11 2.2.3 Mensagens Administrativas 3/11 2.2.3.1 Logon 4/11 2.2.3.2 Logout 4/11 2.2.3.3 HeartBeat 4/11 2.2.3.4 TestRequest 5/11 2.2.3.5 ResendRequest 5/11 GTW 00 Índice_ext.doc
  7. 7. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 4/4 Capítulo Revisão Data Índice 02 30/05/08 2.2.3.6 Reject 6/11 2.2.3.7 SequenceReset 6/11 2.2.4 Mensagens de Aplicação 7/11 2.2.4.1 NewOrderSingle 7/11 2.2.4.2 OrderCancelRequest 8/11 2.2.4.3 OrderCancelReject 8/11 2.2.4.4 ExecutionReport 9/11 2.2.4.5 OrderCancelReplace 10/11 3 – MENSAGENS FIX 1/14 3.1 NewOrderSingle 1/14 3.1.1 Registrando uma Oferta 1/14 3.1.2 Solicitação de Registro de Oferta, Seguido de Rejeição 1/14 3.1.3 Congelamento de Oferta 2/14 3.1.4 Congelamento de Oferta, Seguido de Aceite no Descongelamento 2/14 3.1.5 Congelamento de Oferta, Seguido de Recusa no Descongelamento 3/14 3.1.6 Envio de Oferta, Seguido de Negócio Parcial, Congelamento e Posterior Descongelamento com Aceite 4/14 3.1.7 Congelamento de Oferta, Seguido de Leilão 5/14 3.1.8 Envio de Nova Oferta, durante um Leilão 5/14 3.2 OrderCancelRequest 6/14 3.2.1 Cancelando uma Oferta Registrada 6/14 3.2.2 Cancelando uma Oferta Inexistente 7/14 3.2.3 Cancelando uma Oferta já Cancelada Anteriormente 8/14 3.2.4 Cancelando uma Oferta em Leilão 9/14 3.3 OrderCancelReplace 10/14 3.3.1 Modificando uma Oferta Registrada 10/14 3.3.2 Modificando uma Oferta Inexistente 11/14 3.4 Trade 12/14 3.4.1 Trade - Filled 12/14 3.4.2 Trade – Partially Filled 13/14 3.4.3 Cancel Trade 14/14 GTW 00 Índice_ext.doc
  8. 8. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 1/3 Capítulo Revisão Data I – Objetivo, Aplicação e Definições 03 01/10/08 1 – OBJETIVO Este documento tem como objetivo detalhar o funcionamento e as estruturas que compõem o MultiGateway. A intenção é permitir um maior conhecimento do sistema como um todo, bem como obter entendimento das particularidades de cada módulo que o compõe. Serão detalhadas as funcionalidades, características de conexões com os clientes e com o sistema de negociação, estruturas de dados e demais particularidades. 2 – APLICAÇÃO Sociedades Corretoras que se utilizam de ferramentas on line (como Home Brokers) para se conectarem e realizarem negociações on line. 3 – DEFINIÇÕES 3.1 Termos e Nomenclaturas DLL: Dynamic Link Library MEGA BOLSA: é o sistema de negociação da Bolsa de Valores de São Paulo que gerencia, controla as informações e é responsável pelo registro de todas as operações de mercado fechadas na BOVESPA. MULTIGATEWAY: é o servidor de Home Broker e conexões automatizadas. Pipe: mecanismo que permite que um processo transfira informação para outro. Linkedição: método de unir uma biblioteca à aplicação. Callback: ponteiro para uma função. LIB: biblioteca Unix que se adiciona à aplicação client para se ter acesso às funções. 3.2 Regras do Sistema 3.2.1 Modificação de Oferta 3.2.1.1 API Para se fazer uma modificação de oferta, é necessário informar todos os campos da oferta original, mesmo que a alteração seja realizada em somente um deles. No campo “Quantidade da Oferta”, é necessário observar o seguinte detalhe: a quantidade que se altera é a quantidade remanescente. Sendo assim, se houver execuções parciais, a quantidade informada na modificação será somada à quantidade executada. Portanto, sempre que o usuário enviar uma modificação será necessário calcular a quantidade, querendo-se modificá-la ou não. Exemplo : Qtd original: 500 Qtd executada: 100 (qtd remanescente 400) GTW 00 Objetivo_ext.doc
  9. 9. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 2/3 Capítulo Revisão Data I – Objetivo, Aplicação e Definições 03 01/10/08 No exemplo acima, caso se envie um ModifyOrder com Qtd 500, está sendo indicado que se deseja que a quantidade remanescente (ou seja, 400) passe a ser 500. Conseqüentemente, a quantidade total será 600 (600 – 100 executada = 500) Para se evitar, neste caso, que a quantidade remanescente seja alterada, deve-se passar a Qtd 400, de maneira que o retorno da quantidade total seja 500 (500 -100 = 400). Para os demais campos, podem ser mantidos os valores originais, a não ser que se queira modificá-los. 3.2.1.2 FIX Para se fazer uma modificação de oferta, é necessário informar todos os campos da oferta original, mesmo que a alteração seja realizada em somente um deles. Para modificar a quantidade de uma oferta, o valor enviado no campo quantidade deverá ser sempre a quantidade total da oferta e não a remanescente, como no caso do API. Ex.:Oferta original : Quantidade = 500 executada = 300 remanescente = 200 Modificação 1 Quantidade = 400 Na modificação acima, a quantidade remanescente passaria a 100, pois 400 - 300 (que é a quantidade executada) = 100 Modificação 2 Quantidade = 600 Na modificação acima, a quantidade remanescente passaria a 300, pois 600 - 300 (que é a quantidade executada) = 300 Modificação 3 Quantidade = 200 Neste caso, ocorreria um erro, pois a quantidade total não pode ser menor ou igual que a quantidade executada. Dessa forma, no caso do FIX, é necessário que o usuário informe sempre a quantidade total que deseja para a oferta. 3.2.2 Cancelamento ou Modificação de Ordem já Modificada – API e FIX No caso de API e FIX, para cancelar ou modificar uma ordem já modificada, é necessário informar sempre o último número de controle da ordem. GTW 00 Objetivo_ext.doc
  10. 10. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 3/3 Capítulo Revisão Data I – Objetivo, Aplicação e Definições 03 01/10/08 3.3 Restrições A modificação do cliente da ordem, inclusive durante leilões, não será permitida para as famílias de portas de 300 a 309 e de 500 a 509. A colocação de ordem com preço de abertura durante os leilões e calls somente poderá ser efetuada pelas famílias de portas 400, 500 e 510. O campo código de cliente deve ter, no máximo, 8 dígitos, já incluído o dígito verificador, sem hífen. Isso deve ser observado tanto para envio, quanto para cancelamento ou modificação de ofertas. 3.4 Referências FIX Protocol http://www.fixprotocol.org QuickFIX - Engine FIX Open-Source http://www.quickfixengine.org GTW 00 Objetivo_ext.doc
  11. 11. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 1/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1 – PROTOCOLO API 1.1 Conexão A conexão entre o cliente e o servidor MultiGateway via API HomeBroker ocorre da seguinte forma. A aplicação cliente, utilizando o componente GWHBClientCOM.dll, abre a conexão com o servidor (coloca o socket TCP/IP em listen) e aguarda que esse se conecte. O servidor do MultiGateway, por sua vez, faz sucessivas tentativas de conexão com o cliente, em intervalos de tempo definidos pelo administrador do sistema, nas telas de configuração dos recursos de cluster. Lá é definido o número de tentativas de conexões e o intervalo entre novas tentativas. Uma vez em funcionamento, o servidor do MultiGateway sempre tenta se conectar com seu respectivo cliente, previamente configurado na tela de administração, de forma a tentar manter sempre ativa essa conexão. Ocorrida a conexão do servidor com o cliente, dá-se início à troca de mensagens. O cliente envia uma mensagem de solicitação de autenticação e o servidor responde, permitindo ou não a transmissão de novas mensagens. Esse mecanismo será mais bem detalhado nos itens abaixo. Visando melhor distribuição de dados, dividimos o sistema em duas camadas: camada de sessão e camada de aplicação. Trata-se, na verdade, de duas camadas conceituais, sendo que cada uma é responsável por determinada atividade. 1.2 Camada de Sessão A camada de sessão é responsável pela comunicação física entre cliente e servidor. Ela é responsável desde a abertura e conexão entre os sockets até o seqüenciamento e retransmissão de mensagens. Possui mensagens específicas para esses fins, que são tratadas apenas nesta camada, não sendo enviadas à camada de aplicação. As mensagens trocadas entre servidor e cliente são compostas de um cabeçalho e de um corpo. O cabeçalho é composto de campos fixos, iguais para todas as mensagens. Os campos que compõem o corpo são específicos para cada mensagem. A seguir temos a estrutura do cabeçalho: GTW 01 API_ext rev03.doc
  12. 12. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 2/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 Nome do campo Formato Descrição Wsize Numérico Armazena o tamanho em Bytes da mensagem a ser enviada. bytLayer Byte Informa a qual camada a mensagem é destinada: 1 – camada de sessão, 2 – camada de aplicação. bytType Byte Informa o tipo de mensagem. Ex: 1 – mensagem de autenticação, 2 – mensagem de autenticação OK. dwSeq Numérico Seqüencial da mensagem. Será detalhado no item Seqüenciamento de Mensagens. dwAck Numérico Seqüencial de recebimento de mensagem. Será detalhado no item Buffer de Mensagens para Retransmissão. 1.2.1 Seqüenciamento de Mensagens O seqüenciamento de mensagens é feito utilizando-se os campos dwSeq e dwAck do cabeçalho das mensagens. O campo dwSeq informa seqüencialmente o número da mensagem enviada, começando de zero. O campo dwAck informa o número da última mensagem recebida e processada, enviada pela outra ponta. Cada vez que uma conexão entre o servidor e o cliente é estabelecida, o cliente e o servidor zeram seus valores de seqüenciamento. A cada nova mensagem a ser enviada, o valor de dwSeq é incrementado de 1. Quando uma das pontas recebe uma mensagem, imediatamente atualiza seu valor de dwAck para o valor recebido no campo dwSeq. Dessa forma o seqüenciamento das mensagens é realizado, garantindo que as mensagens sejam processadas na ordem em que foram enviadas. 1.2.2 Buffer de Mensagens para Retransmissão Visando garantir o envio de suas mensagens, tanto o servidor quanto o cliente armazenam em um buffer todas as mensagens enviadas para a outra ponta. Isso é feito para atender casos em que é necessário retransmitir mensagens já enviadas, devido a problemas de rede, por exemplo. A cada nova mensagem recebida, analisando o campo dwAck, podemos saber qual a última mensagem que a outra ponta processou. Então, com base nesse campo, podemos remover todas as mensagens já enviadas do Buffer, cujo seqüencial seja menor ou igual ao valor de dwAck. 1.2.3 Mecanismo de Retransmissão Toda vez que uma mensagem é recebida, o campo dwSeq é comparado com um valor esperado (dwSeq da mensagem anterior somado de 1). Caso esse valor seja superior ao esperado, significa que mensagens não foram recebidas. Dessa forma é preciso solicitar à outra ponta que retransmita as mensagens não recebidas, de forma a restabelecer a seqüência correta. 1.2.4 Verificação de Conexão Ativa O mecanismo de HeartBeat – ImAlive é utilizado para verificar se a conexão entre cliente e servidor permanece ativa, mesmo após um intervalo de tempo sem recebimento de mensagens. Após um período de inatividade, período esse configurado pelo administrador do sistema, o servidor envia uma mensagem de HeartBeat para o cliente. O cliente, quando recebe esse tipo de mensagem, envia para o servidor uma outra mensagem do tipo ImAlive. Caso o servidor não receba uma mensagem do tipo ImAlive após um determinado período de tempo, a conexão com o cliente é cortada. Da mesma forma, se o cliente não recebe uma mensagem do tipo HeartBeat após um intervalo de tempo, ele corta a conexão com o servidor. Após o corte de conexão, o servidor do Gateway tenta novamente estabelecer uma nova conexão com o cliente. GTW 01 API_ext rev03.doc
  13. 13. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 3/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.2.5 Mensagens da Camada de Sessão 1.2.5.1 Mensagem de Solicitação de Autenticação Tipo: Solicitação de Autenticação. Objetivo: Enviar os dados de autenticação ao servidor do MultiGateway. É a primeira mensagem trafegada após a conexão física do cliente com o servidor. Estrutura: sMsgAuth Origem: Cliente Destino: Servidor struct sMsgAuth { sClientMsgHeader sHeader; union { struct { char cIdCorretora[5]; char cIdVersao [5]; char cOSPlatformId [6]; char cOSMajorVersion [6]; char cOSMinorVersion [6]; char cOSBuildNumber [6]; char cOSCSDVersion [15]; char cOSServicePackMajor[6]; char cOSServicePackMinor[6]; char cProcessorArchitecture[6]; char cProcessorType [6]; char cProcessorLevel [6]; char cProcessorRevision [6]; char cProcessorSpeed [6]; char cMemory [6]; char cIP [15]; char cPort [5]; char cSource; }; // 120 Bytes -> 8 (oito) Blocos são necessários char cFiller [8 * BLOCO_CRIPTO]; } sBody; }; GTW 01 API_ext rev03.doc
  14. 14. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 4/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.2.5.2 Mensagem de Sucesso na Autenticação Tipo: Sucesso na autenticação Objetivo: Autenticar o cliente para iniciar as atividades no sistema. Informa o número do último índice de mensagem tratado, o último control number recebido e também o tempo de inatividade que deverá ser utilizado pelo cliente para o envio de mensagens do tipo ImAlive. Estrutura: sMsgAuthOK Origem: Servidor Destino: Cliente struct sMsgAuthOK { sClientMsgHeader sHeader; union { struct { DWORD dwLastIndex; // 4 Bytes char cLastCtrlNum[20]; // 20 Bytes DWORD dwInactivityTimeout; // 4 Bytes }; // 28 Bytes -> 2 (dois) Blocos são necessários char cFiller [2*BLOCO_CRIPTO]; } sBody; }; 1.2.5.3 Mensagem de Erro na Autenticação Mensagem: Erro de Autenticação Objetivo: Avisar o cliente sobre um erro de autenticação. Estrutura: sMsgAuthErr Origem: Servidor Destino: Cliente struct sMsgAuthErr { sClientMsgHeader sHeader; union { struct { BYTE bytReason; }; // 1 Byte -> apenas 1 (um) Bloco é necessário char cFiller [BLOCO_CRIPTO]; } sBody; }; GTW 01 API_ext rev03.doc
  15. 15. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 5/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.2.5.4 Mensagem de Solicitação de Reenvio de Mensagens Tipo: Reenvio de mensagens Objetivo: Solicitar à ponta oposta a retransmissão de um intervalo de mensagens. Estrutura: sMsgResync Origem: Servidor / Cliente Destino: Cliente / Servidor struct sMsgResync { sClientMsgHeader sHeader; union { struct { DWORD dwBegin; DWORD dwEnd; }; // 8 Bytes -> apenas 1 (um) Bloco é necessário char cFiller [BLOCO_CRIPTO]; } sBody; }; 1.2.5.5 Mensagem de Notificação de Nova Seqüência de Mensagens Tipo: Notificação de nova seqüência de mensagens Objetivo: Informar à ponta oposta uma nova seqüência de mensagens. Estrutura: sMsgGapFill Origem: Servidor / Cliente Destino: Cliente / Servidor struct sMsgGapFill { sClientMsgHeader sHeader; union { struct { DWORD dwNewSeq; }; // 4 Bytes -> apenas 1 (um) Bloco é necessário char cFiller [BLOCO_CRIPTO]; } sBody; }; GTW 01 API_ext rev03.doc
  16. 16. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 6/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.2.5.6 Mensagem de Heartbeat Tipo: HeartBeat Objetivo: Enviar ao cliente uma mensagem informando que ainda está ativo e aguarda uma mensagem do tipo ImAlive do cliente. Estrutura: sMsgHeartBeat Origem: Servidor Destino: Cliente struct sMsgHeartBeat { sClientMsgHeader sHeader; }; 1.2.5.7 Mensagem de Resposta a Heartbeat Tipo: Resposta a heartbeat Objetivo: Enviar ao servidor uma mensagem informando que ainda está ativo, para não ser desconectado por timeout. Estrutura: sMsgImAlive Origem: Cliente Destino: Servidor struct sMsgImAlive { sClientMsgHeader sHeader; }; GTW 01 API_ext rev03.doc
  17. 17. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 7/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3 Camada de Aplicação A camada de aplicação é responsável por tudo que diz respeito à negociação, funcionando de forma isolada da camada de sessão. É responsável pelo tratamento das mensagens de aplicação e da interação direta com a aplicação cliente. Possui um conjunto de mensagens específicas para a camada e utiliza a camada de sessão para o envio e recebimento das mensagens. As mensagens não possuem tamanhos fixos e são codificadas segundo padrão definido pela BOVESPA. Cada uma possui campos específicos para as finalidades a que se predispõem, porém podemos enumerar alguns campos que estão presentes em todas elas: Nome do Campo Formato Descrição M_strIndex String Índice das mensagens de aplicação. M_strMsgTransmissionTime String Data/Hora em que a mensagem foi enviada. 1.3.1 Index O campo index (m_strIndex) é responsável pelo seqüenciamento das mensagens de aplicação. Ao contrário da camada de sessão na qual o seqüenciamento é feito por conexão, a seqüência de mensagens de aplicação é diária. Esse seqüenciamento permite que todas as mensagens de aplicação sejam indexadas e armazenadas, ficando disponíveis para o cliente durante todo o dia. 1.3.2 Control Number O campo Control Number, presente em grande parte das mensagens, é uma informação não relevante ao Gateway, mas que serve como identificador de ordens para as aplicações clientes. O servidor do Gateway sempre armazena o último Control Number utilizado o qual corresponde ao mesmo transmitido na mensagem de confirmação de autenticação do cliente. 1.3.3 Controle de Seqüência de Retransmissão A cada mensagem enviada ao cliente, o servidor espera uma mensagem do tipo Ack, informando-o que a mensagem foi processada corretamente pelo cliente. Essa mensagem contém informações que auxiliam o servidor no controle de envio e retransmissão das mensagens de aplicação. A cada autenticação efetuada, o servidor do Gateway envia ao seu cliente o último índice e o último Control Number processado. Nesse momento, o servidor, baseado nas mensagens de Ack recebidas nas últimas conexões, sabe quais mensagens efetivamente chegaram a ser processadas pelo cliente, retransmitindo, caso seja necessário, as mensagens perdidas. A aplicação cliente pode ainda solicitar arbitrariamente mensagens antigas já processadas, utilizando-se da mensagem Recall Messages, na qual é definido o índice da primeira e da última mensagem a serem retransmitidas. GTW 01 API_ext rev03.doc
  18. 18. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 8/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4 Mensagens da Camada de Aplicação 1.3.4.1 Mensagem de Solicitação de Registro de Nova Oferta Tipo: Nova ordem Objetivo: Enviar uma nova ordem para o sistema de negociação Classe: CAppMsgNewOrder Origem: Cliente Destino: Servidor Campo Descrição strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura. Vide cap. I, item 3.3 eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade. m_strDisplayQuantity Quantidade a ser exibida – Oferta com quantidade aparente. 1.3.4.2 Mensagem de Solicitação de Cancelamento de Oferta Tipo: Cancelamento de ordem Objetivo: Enviar uma solicitação de cancelamento de uma ordem para o sistema de negociação Classe: CAppMsgCancel Origem: Cliente Destino: Servidor Campo Descrição strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura Vide cap I, item 3.3 eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade. strExchangeNumber Número que identifica a ordem no Gateway. Vide cap I, item 3.2.2 GTW 01 API_ext rev03.doc
  19. 19. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 9/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4.3 Mensagem de Re-solicitação de Ordens Tipo: Re-solicitação de ordens anteriores Objetivo: Solicitar o envio de ordens previamente envidadas pelo servidor Classe: CAppMsgRecallMsgs Origem: Cliente Destino: Servidor Campo Descrição strBegin Índice da primeira mensagem a ser retransmitida. strEnd Índice da última mensagem a ser retransmitida. 1.3.4.4 Mensagem de Consulta de Limites Tipo: Consulta de limites Objetivo: Consultar os limites de um determinado cliente Classe: CAppMsgQueryLimits Origem: Cliente Destino: Servidor Campo Descrição strCtrlNumber Número de controle para identificar a solicitação. strUserID Código do usuário. 1.3.4.5 Mensagem de Consulta ao Último Índice Tipo: Consulta ao último índice Objetivo: Solicitar ao servidor do Gateway o último índice utilizado Classe: CAppMsgQueryIndex Origem: Cliente Destino: Servidor Campo Descrição strCtrlNumber Número de controle para identificar a solicitação. StrUserID Código do usuário. GTW 01 API_ext rev03.doc
  20. 20. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 10/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4.6 Mensagem de Consulta ao Order Book Tipo: Consulta ao Order Book Objetivo: Solicitar ao servidor do Gateway uma informação diferenciada sobre um determinado intervalo de mensagens Classe: CAppMsgQueryOrderBook Origem: Cliente Destino: Servidor Campo Descrição eobType Tipo da consulta: 0 – Por índice, 1 - últimos. strBegin Índice da primeira mensagem. strEnd Índice da última mensagem. 1.3.4.7 Mensagem de Ack Tipo: Ack Objetivo: Informar ao servidor que a mensagem recebida foi processada corretamente. É enviada sempre após o tratamento de uma mensagem de aplicação recebida pelo cliente Classe: CAppMsgAck Origem: Cliente Destino: Servidor Campo Descrição strIndex Índice da mensagem. strMsgTransmissionTime Horário em que a mensagem foi tratada. strIndexAck Índice da mensagem recebida pelo cliente. bytOriginalMsgType Tipo da mensagem recebida pelo cliente. strOriginalMsgReceptionTime Horário em que a mensagem foi recebida. strCtrlNumber Número de controle para identificar a solicitação. strExchangeNumber Número de identificação da transação no servidor do Gateway. strStock Código do papel utilizado na transação. GTW 01 API_ext rev03.doc
  21. 21. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 11/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4.8 Mensagem de Resposta de Confirmação do Registro de Ordem Tipo: Resposta de inclusão de ordem Objetivo: Mensagem enviada após a confirmação de uma inclusão de ordem no sistema de negociação. Classe: CAppMsgOrderResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura. eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade. strOrderTime Data em que a ordem foi registrada no sistema de negociação. strExchangeNumber Código de identificação da ordem no sistema de negociação. m_strOrderTime Data em que a ordem foi registrada no sistema de negociação. m_strTotalExecutedQuantity Quantidade total executada da ordem original. 1.3.4.9 Mensagem de Resposta de Confirmação do Cancelamento da Ordem Tipo: Resposta de cancelamento de ordem Objetivo: Mensagem enviada após a confirmação de cancelamento de ordem no sistema de negociação. Classe: CAppMsgCancelResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura. eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade. strCancelTime Data em que a ordem foi cancelada no sistema de negociação. strExchangeNumber Código de identificação da ordem no sistema de negociação. eccCondition Condição do cancelamento: 0 – Parcial, 1 – Total. strCancelledQuantity Quantidade cancelada. GTW 01 API_ext rev03.doc
  22. 22. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 12/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4.10 Mensagem de Resposta de Ocorrência de Erro Tipo: Resposta de ocorrência de erro Objetivo: Mensagem enviada após a ocorrência de um erro no tratamento de uma solicitação. Classe: CAppMsgErrorResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura. eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade. strErrorTime Data em que o erro foi originado. strOrderStatus Status da ordem. strErrorSeverity Severidade do erro. strErrorNumber Código do erro. strErrorMsg Mensagem de erro. GTW 01 API_ext rev03.doc
  23. 23. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 13/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4.11 Mensagem de Resposta de Execução de Ordem Tipo: Resposta de execução de ordem Objetivo: Mensagem enviada após a execução de uma ordem no sistema de negociação. Classe: CAppMsgTradeResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3– preço abertura. eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade. strExecutionTime Data e hora da execução da ordem. strExchangeNumber Código que identifica a transação no sistema de negociação. etcCondition Condição da execução: 0 – Parcial, 1 – Total. strTradeQuantity Quantidade executada. strTotalExecutedQuantity Quantidade total executada da ordem original. strRemainingQuantity Quantidade remanescente. strExecutedPrice Preço de execução. strCounterpartBroker Identificação da outra parte da negociação. strTradeId Identificação da transação. 1.3.4.12 Mensagem de Resposta à Consulta de Índice Tipo: Resposta à consulta de índice. Objetivo: Mensagem enviada após a solicitação de consulta de índice. Classe: CAppMsgIndexResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strLastIndex Último índice de mensagem utilizado. strLastCtrlNumber Último Control Number utilizado pelo cliente. GTW 01 API_ext rev03.doc
  24. 24. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 14/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4.13 Mensagem de Resposta à Consulta de Limites Tipo: Resposta à consulta de limites. Objetivo: Mensagem enviada após a solicitação de consulta de limites. Classe: CAppMsgLimitResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strUserID Código do usuário. strTotalLimit Total de limite do cliente. strConsumedLimit Limite consumido. strPeriod Período. 1.3.4.14 Mensagem de Resposta à Consulta de Order Book Tipo: Resposta à consulta de Order Book. Objetivo: Mensagem enviada após a solicitação de consulta de Order Book. Classe: CAppMsgOrderBookResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura. eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade da ordem. strOrderTime Data Hora do processamento da mensagem. strExchangeNumber Número de identificação da ordem no sistema de negociação. strCumulativeQuantity Quantidade da ordem que já foi executada. strRemainingQuantity Quantidade da ordem que ainda não foi executada. strAveragePrice Preço médio de execução. strOrderBookIndex Índice do Order Book. strNumberOfTrades Número de execuções da ordem. strStatusOfOrder Status da ordem. strNoMsgsAvailable Indica se é a última mensagem de Order Book a ser enviada. m_strDisplayQuantity Quantidade a ser exibida – Oferta com quantidade aparente. GTW 01 API_ext rev03.doc
  25. 25. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 15/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.3.4.15 Mensagem de Solicitação de Alteração de Oferta Tipo: Alteração de ordem Objetivo: Enviar uma solicitação de alteração de uma ordem para o sistema de negociação. Classe: CAppMsgModify Origem: Cliente Destino: Servidor Campo Descrição strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. Vide cap I, item 3.3 eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura. Vide cap I, item 3.3 eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. Vide cap I, item 3.2.1 strPrice Preço por ação. strValidityDate Data de validade. strExchangeNumber Número que identifica a ordem no Gateway. Vide cap I, item 3.2.2 m_strDisplayQuantity Quantidade a ser exibida – Oferta com quantidade aparente. 1.3.4.16 Mensagem de Resposta de Confirmação de Alteração de Oferta Tipo: Resposta de modificação de ordem Objetivo: Mensagem enviada após a confirmação de uma modificação de ordem no sistema de negociação. Classe: CAppMsgModifyResponse Origem: Servidor Destino: Cliente Campo Descrição strIndex Índice da mensagem. strCtrlNumber ControlNumber, número que identifica a ordem para a aplicação cliente. strStock Código do papel a ser negociado. strUserID Código do usuário no sistema de negociação. eotType Tipo da ordem: 0 – compra, 1 – venda. eocCondition Condição para execução da ordem: 0 – preço limite, 3 – preço abertura. eovValidity Tipo de validade: 0 - hoje, 1 – até cancelamento, 2 – data específica, 3 – tudo ou nada, 4 – execução ou cancelamento. strQuantity Quantidade de ações a serem negociadas. strPrice Preço por ação. strValidityDate Data de validade. m_strExchangeNumber Código de identificação da ordem no sistema de negociação. m_strOrderTime Data em que a ordem foi registrada no sistema de negociação. m_strTotalExecutedQuantity Quantidade total executada da ordem original. m_strQtdDispl Quantidade a ser exibida – Oferta com quantidade aparente. GTW 01 API_ext rev03.doc
  26. 26. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 16/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.4 DLL 1.4.1 Instalação do Componente GWHBClientCOM.dll Se você já possui este componente em seu computador, siga a seqüência de passos abaixo para remover o registro do seu componente atual. - Clique em Iniciar Executar - Digite a seguinte linha de comando: regsvr32 /u <caminho para seu arquivo atual >GWHBClientCOM.dll - Pressione o botão “OK” e a mensagem seguinte irá aparecer: Para registrar o componente, siga os passos abaixo: - Copie o novo arquivo GWHBClientCOM.dll para o seu computador; - Clique em Iniciar Executar GTW 01 API_ext rev03.doc
  27. 27. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 17/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 - Digite a seguinte linha de comando: regsvr32 <caminho para o novo arquivo >GWHBClientCOM.dll - Pressione o botão “OK” e a mensagem seguinte irá aparecer: GTW 01 API_ext rev03.doc
  28. 28. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 18/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.4.2 Utilização Básica Instanciar um objeto da classe HBConnection. - Utilizar o método Start para iniciar o processo de conexão e autenticação com o Gateway Server. - Aguardar a chegada do evento AuthenticationOK para iniciar o processo de envio e cancelamento. - Utilizar o objeto para transmissão de solicitações e recepção de eventos. - Em caso de erro de autenticação e/ou de conexão, utilizar o método Stop para liberação de recursos, - seguido do método Start para reiniciar o processo de conexão. - Ao terminar a execução, chamar o método Stop e liberar os recursos do objeto HBConnection. - Para utilização das novas funcionalidades, será necessário utilizar a interface HBConnection2, que herda os métodos e propriedades de HBConnection, e implementa SendOrder2 (que possibilita o envio da quantidade aparente) e o ModifyOrder; - Quando utilizado o evento OrderBookResponse, o evento gerado terá a interface OrderBookResponse. Para acessar a propriedade quot;strDisplayQuantityquot;, é necessário acessar a interface OrderBookResponse2. Visual Basic -> a conversão é simples e pode ser realizada criando um novo objeto do tipoHBOrderBookResponse2, como por exemplo: Dim objOrderBookResponse2 As HBOrderBookResponse2 Set objOrderBookResponse = objOrderBookResponse1 Visual C++ -> a interface HBOrderBookResponse2 pode ser acessada utilizando QueryInterface. 1.4.3 Classes do Componente 1.4.3.1 HBConnection Objetivo: Responsável pela manutenção da conexão com o Gateway, permitindo o envio de solicitações e o recebimento de respostas na forma de eventos. Deve ser instanciado no início da aplicação, e permanecer instanciado durante a execução da aplicação de forma a permitir a ocorrência de eventos e sua utilização para solicitações ao Gateway. Propriedades: LngStatus As Long Objetivo: Situação da conexão com o Gateway. Possíveis Valores: 0 - Sem conexão com o servidor. 1 - Aguardando conexão com o servidor do Gateway. 2 - Conectado com o servidor. -1 - Erro de conexão. Métodos: SendOrder (hbOrderInfo As HBOrderInfo) GTW 01 API_ext rev03.doc
  29. 29. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 19/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 Objetivo: Envio de ordens para o sistema de negociação. Parâmetros: hbOrderInfo – objeto com detalhes da ordem. Objetivo: Inicia o processo de conexão com a corretora. Parâmetros: LngPort - porta de conexão com o Gateway. IntCorretora - identificação da corretora. LngVersao -número da versão do protocolo Cliente x Gateway. Atualmente deverá ser fixa igual a 4. Stop ( ) Objetivo: Termina a conexão com o Gateway. CancelOrder ( hbCancelOrder As HBCancelOrder ) Objetivo: Cancela uma ordem enviada previamente para o sistema de negociação. Parâmetros: HbCancelOrder – objeto com detalhes da ordem a ser cancelada. QueryIndex ( ) Objetivo: Solicita que o Gateway informe o último índice transmitido e o último control number recebido. QueryLimits( hbQueryLimits As HBQueryLimits ) Objetivo: Solicita informações sobre o saldo disponível para utilização no sistema. Parâmetros: HbQueryLimits – objeto com detalhes da solicitação de consulta de limites. RecallMsgs(hbRecallMsgs As HBRecallMsgs ) Objetivo: Solicita a retransmissão de mensagens. Parâmetros: HbRecallMsgs – objeto com detalhes sobre as mensagens que devem ser retransmitidas. Eventos: AuthenticationError( lngError As Long ) GTW 01 API_ext rev03.doc
  30. 30. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 20/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 Objetivo: Disparado quando ocorre um erro de autenticação. Parâmetros: LngError - código do erro. ConnectionError( lngError As Long ) Objetivo: Disparado quando ocorre um erro na conexão com o Gateway Server. Parâmetros: LngError - código do erro. ConnectionOK() Objetivo: Disparado quando a conexão com o Gateway ocorre com sucesso. AuthenticationOK( strLastIndex As String, strLastCtrlNum As String ) Objetivo: Disparado quando a autenticação com o Gateway é realizada com sucesso. Parâmetros: StrLastIndex - índice da última mensagem enviada. StrLastCtrlNum - último Control Number enviado. ConnectionClosed() Objetivo: Disparado quando a conexão com o Gateway Server é encerrada. OrderResponse( hbOrderResponse As IHBOrderResponse ) Objetivo: Disparado quando o Gateway Server envia uma resposta sobre uma ordem previamente enviada através do método SendOrder(). Parâmetros: HbOrderResponse - objeto contendo os detalhes do envio da ordem. CancelResponse( hbCancelResponse As IHBCancelResponse ) Objetivo: Disparado para informar o cancelamento de uma ordem, que pode ter sido solicitado através do método CancelOrder ou via outras ferramentas do sistema de negociação (Supervisor e/ou Controle do Mega). Parâmetros: HbCancelResponse - objeto contendo os detalhes do cancelamento da ordem. ErrorResponse( hbErrorResponse As IHBErrorResponse ) GTW 01 API_ext rev03.doc
  31. 31. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 21/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 Objetivo: Disparado em resposta a um erro ocorrido no tratamento de uma solicitação (Ordem, Cancelamento ou Consulta a Limite). Parâmetros: HbErrorResponse - objeto contendo os detalhes do erro. IndexResponse( hbIndexResponse As IHBIndexResponse ) Objetivo: Resposta a uma consulta de informações sobre os últimos índices enviados e control number processado pelo Gateway. Parâmetros: HbIndexResponse - objeto contendo o último índice transmitido e também o último control number processado pelo Gateway. LimitResponse( hbLimitResponse As IHBLimitResponse ) Objetivo: Resposta a uma consulta de limites. Parâmetros: HbLimitResponse - objeto contendo informações sobre o saldo disponível do usuário. TradeResponse( hbTradeResponse As IHBTradeResponse ) Objetivo: Evento disparado para informar a execução de um negócio. Parâmetros: HbTradeResponse - objeto contendo os detalhes sobre a execução do negócio. TradeCancelResponse( hbTradeCancelResponse As IHBTradeResponse ) Objetivo: Evento disparado para informar o cancelamento de um negócio. Parâmetros: HbTradeCancelResponse - objeto contendo os detalhes sobre o cancelamento do negócio. GTW 01 API_ext rev03.doc
  32. 32. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 22/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.4.3.2 HBConnection2 Objetivo: Interface baseada na interface HBConnection, com o objetivo de criar novos métodos e manter a compatibilidade. Métodos: SendOrder2 (hbNewOrder As HBNewOrder) Objetivo: Envio de ordens para o sistema de negociação. Parâmetros: hbNewOrder – objeto com detalhes da ordem. ModifyOrder (hbModifyOrder As HBModifyOrder) Objetivo: Envio de modificação de ordens para o sistema de negociação. Parâmetros: hbModifyOrder – objeto com detalhes da ordem. 1.4.3.3 HBOrderInfo Objetivo: Representa as características de uma ordem. É utilizado nas solicitações e eventos para definir/informar as características de uma ordem. Propriedades: strStock As String Objetivo: Código do papel / ativo. strCtrlNumber As String Objetivo: Identificação da ordem ou cancelamento (criado pela aplicação cliente) deve identificar unicamente uma solicitação. strUserID As String Objetivo: Código do cliente associado à ordem (com dígito verificador). Nota: o campo código de cliente deve ter, no máximo, 8 dígitos, já incluído o dígito verificador, sem hífen. GTW 01 API_ext rev03.doc
  33. 33. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 23/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 eotType As HBOrderType (enum) Objetivo: Tipo da ordem. Possíveis Valores: 0 – Compra 1 – Venda strQuantity As String Objetivo: Quantidade de ações. eocCondition As HBOrderCondition Objetivo: Condição (tipo de preço) da ordem. Possíveis Valores: 0 – Preço limite 1 – Preço de mercado 2 – Melhor preço 3 – Preço abertura 4 – Qualquer preço 5 – Melhor venda 6 – Melhor compra 7 – Último preço 8 – Preço de venda 9 – Preço de compra strPrice As String Objetivo: Preço do papel. Deve ser preenchido sempre que a condição (tipo de preço) for igual a “0 – Preço Limite”. Utiliza ponto (‘.’) como separador de decimais, suportando até 6 casas decimais. Não utiliza separador de milhares. Pode conter no máximo 9 dígitos significativos. eovValidity As HBOrderValidity Objetivo: Tipo de validade da ordem. Possíveis Valores: 0 – Hoje 1 – Até que seja cancelada 2 – Data específica 3 –Tudo ou nada 4 – Executa ou cancela strValidityDate as String Objetivo: GTW 01 API_ext rev03.doc
  34. 34. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 24/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 Data de validade da ordem no formado AAAAMMDD. Deve ser preenchida sempre que o tipo de validade for igual a “2 – Data Específica”. 1.4.3.4 HBCancelOrder Objetivo: Informações relevantes ao cancelamento de uma ordem. É utilizado nas solicitações de cancelamento. Propriedades: hbOrderInfo As HBOrderInfo Objetivo: Detalhes da ordem a ser cancelada. StrExchangeNumber As String Objetivo: Exchange Number da ordem a ser cancelada. 1.4.3.5 HBQueryLimits Objetivo: Informações relevantes às consultas de limites. Propriedades: strCtrlNumber As String Objetivo: Identificador da solicitação. StrUserID As String Objetivo: Usuário ao qual a consulta se refere. Nota: o campo código de cliente deve ter, no máximo, 8 dígitos, já incluído o dígito verificador, sem hífen. 1.4.3.6 HBRecallMsgs Objetivo: Informações relevantes às recuperações de mensagens. Propriedades: strBegin As String Índice da mensagem inicial cuja retransmissão está sendo solicitada. strEnd As String Índice da mensagem final cuja retransmissão está sendo solicitada. GTW 01 API_ext rev03.doc
  35. 35. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 25/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 1.4.3.7 HBOrderResponse Objetivo: Informações sobre a aceitação de uma ordem pelo sistema de negociação. Propriedades: strExchangeNumber As String Objetivo: Número atribuído pelo sistema de negociação à ordem. strOrderTime As String Objetivo: Hora em que a ordem foi registrada no sistema no formato AAAAMMDDHHMMSS. strIndex As String Objetivo: Índice seqüencial diário da mensagem transmitida. Em caso de quebra de seqüência, a aplicação deverá solicitar retransmissão de mensagens. hbOrderInfo As HBOrderInfo Objetivo: Objeto contendo detalhe da ordem aceita. 1.4.3.8 HBCancelResponse Objetivo: Informações sobre o cancelamento de uma ordem pelo sistema de negociação. Propriedades: strExchangeNumber As String Objetivo: Número atribuído pelo sistema de negociação à ordem cancelada. strIndex As String Objetivo: Índice seqüencial diário da mensagem transmitida. Em caso de quebra de seqüência, a aplicação deverá solicitar retransmissão de mensagens. hbOrderInfo As HBOrderInfo Objetivo: Detalhes da ordem cancelada. strCancelledQuantity As String Objetivo: Quantidade cancelada. hbCancelCondition As HBCancelCondition Objetivo: Condição de cancelamento GTW 01 API_ext rev03.doc
  36. 36. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 26/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 Possíveis Valores: 0 – Parcial 1 – Total strCancelTime As String Objetivo: Hora em que o cancelamento da ordem foi efetuado no formato AAAAMMDDHHMMSS. 1.4.3.9 HBErrorResponse Objetivo: Informações sobre o erro ocorrido. Propriedades: hbOrderInfo As HBOrderInfo Objetivo: Detalhes da ordem que gerou o erro ou da ordem associada ao cancelamento que gerou o erro. strErrorMsg As String Objetivo: Mensagem de erro textual. Obedece a uma tabela consultada pelo Gateway. Se o usuário desejar exibir mensagens em diferentes línguas, deve utilizar a propriedade ErrorNumber para traduzir para a linguagem desejada. strErrorNumber As String Objetivo: Código numérico do erro. strErrorSeverity As String Objetivo: Severidade do erro. Possíveis Valores: 0 – Gateway 1 – SLE 2 – MEGA BOLSA strErrorTime As String Objetivo: Hora da ocorrência do erro. strIndex As String Objetivo: Índice seqüencial diário da mensagem transmitida. Em caso de quebra de seqüência, a aplicação deverá solicitar retransmissão de mensagens. strOrderStatus As String Objetivo: Status da ordem no sistema de negociação. Possíveis Valores: GTW 01 API_ext rev03.doc
  37. 37. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 27/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 5 – Ordem Congelada. Quando ocorre esta situação, a ordem fica no sistema aguardando o aceite ou a recusa; isto faz com que a ordem não seja desconsiderada. Em caso de aceite ocorrerá um evento OrderResponse confirmando a ordem, caso contrário, será emitido um novo erro ou cancelamento, invalidando a ordem. Outros Valores – Ordem Rejeitada (não registrada). 1.4.3.10 HBIndexResponse Objetivo: Informações relativas à resposta de uma consulta de índices. Propriedades: strLastCtrlNumber As String Objetivo: Último Control Number processado pelo Gateway. strLastIndex As String Objetivo: Índice da última mensagem enviada pelo Gateway. 1.4.3.11 HBLimitResponse Objetivo: Informações sobre o limite de operação de um usuário. Propriedades: strConsumedLimit As String Objetivo: Valor utilizado do Limite. strCtrlNumber As String Objetivo: Identificador da solicitação (consulta). strIndex As String Objetivo: Índice seqüencial diário da mensagem transmitida. Em caso de quebra de seqüência, a aplicação deverá solicitar retransmissão de mensagens. strPeriod As String Objetivo: Número de dias até a reinicialização de limite. strTotalLimit As String Objetivo: Limite total do usuário. GTW 01 API_ext rev03.doc
  38. 38. MANUAL DO USUÁRIO Utilização Página/Folha MULTIGATEWAY Externa 28/45 Capítulo Revisão Data II - Procedimentos 03 01/10/08 strUserID As String Objetivo: Código do usuário cujo limite foi consultado. Nota: o campo código de cliente deve ter, no máximo, 8 dígitos, já incluído o dígito verificador, sem hífen. 1.4.3.12 HBTradeResponse Objetivo: Informações sobre a execução ou o cancelamento de um negócio. Propriedades: hbTradeCondition As HBTradeCondition Objetivo: Condição do negócio. Possíveis Valores: 0 - Execução parcial. 1 - Execução total. hbOrderInfo As HBOrderInfo Objetivo: Detalhes da ordem. strAveragePrice As String Objetivo: Preço médio entre todas as execuções associadas à ordem. strCounterpartBroker As String Objetivo: Contraparte do negócio. strExchangeNumber As String Objetivo: Exchange Number da ordem. strExecutedPrice As String Objetivo: Preço de execução do negócio. strExecutionTime As String Objetivo: Hora do fechamento do negócio. strIndex As String Objetivo: Índice seqüencial diário da mensagem transmitida. Em caso de quebra de seqüência, a aplicação deverá solicitar retransmissão de mensagens. strRemainingQuantity As String Objetivo: Quantidade remanescente em aberto. GTW 01 API_ext rev03.doc

×