PnT Fast OMS - Exemplos FIX
Este manual tem por objetivo apresentar exemplos didáticos que auxiliem na integração de sistemas automáticos de colocação de ordens ao Plug and Trade Fast OMS. Para conhecer detalhadamente os tipos de mensagens FIX recebidos e enviados, bem como cada um de seus campos aceitos, consulte o manual de Especificação FIX do Fast OMS.
O Fast OMS é um sistema de gerenciamento de ordens desenvolvido pela Plug and Trade para as Sociedades Corretoras e tem como principal característica o rápido roteamento de ordens para as diferentes plataformas de negociação da BM&FBOVESPA. O Fast OMS também permite o roteamento de ordens de algoritmo e ordens manuais para a plataforma de execução da Plug and Trade (Fast Trader). A comunicação entre sistemas automáticos de colocação de ordens e o Fast OMS é baseada no protocolo FIX.
Criado em 1992, o Protocolo FIX (Financial Information eXchange) é uma especificação técnica para a comunicação eletrônica de mensagens relacionadas a negociações. Desenvolvido através da colaboração de bancos, corretoras, bolsas, empresas de utilidade pública e associações industriais, investidores institucionais e provedores de tecnologia da informação estabelecidos em várias partes do mundo, o FIX não é um software e sim uma especificação de um protocolo global para comunicação relacionado a negociações.
Para obter mais informações sobre o protocolo FIX acesse:
BM&F e Bovespa via EntryPoint
Este capítulo lista exemplos de mensagens trocadas entre o Fast OMS e os aplicativos clientes, relativos ao envio de ordens para a BM&FBOVESPA.
Atualmente a BM&FBOVESPA possui uma única interface de colocação de ordens via mensagens FIX, o EntryPoint. Este é utilizado em ambos os segmentos Bovespa (ações) e BM&F (derivativos). Esta interface é naturalmente através do Fast OMS.
Esta seção contém exemplos de envio de nova ordem. As ordens recebidas pelo Fast OMS são validadas e encaminhadas para a BM&FBOVESPA com a menor latência possível.
Exemplo 1 – Ordem Limitada
Nova ordem simples (NewOrderSingle) de compra de tipo limitada (limit), quantidade de 100 ações de B3SA3 a R$10,05 para a conta 10.
8=FIX.4.4 9=145 35=D 34=6 49=TESTER4 52=20210318-13:12:08.472 56=PNT_OMS 1=10 11=202103181011421520 21=1 38=100 40=2 44=10.05 54=1 55=B3SA3 60=20210318-13:12:08 10=148
A ordem é recebida e aceita pela BM&FBOVESPA através de um ExecutionReport do tipo novo (new). O status da ordem é novo (new), a quantidade acumulada é 0 e a quantidade em aberto é 100.
8=FIX.4.4 9=314 35=8 34=6 49=PNT_OMS 52=20210318-13:12:08.715 56=TESTER4 128=CXPIA010 1=10 6=0 11=202103181011421520 14=0 17=921870489 37=0002761080 38=100 39=0 40=2 44=10.05 54=1 55=B3SA3 59=0 60=20210318-13:12:08.586 75=20210318 150=0 151=100 198=922236764 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 10=244
Posteriormente a ordem é executada completamente e o negócio realizado de 100 a R$10,05 é informado através de um ExecutionReport do tipo negócio (trade). O status da ordem é completa (filled), a quantidade acumulada é 100 e a quantidade em aberto é 0.
8=FIX.4.4 9=366 35=8 34=9 49=PNT_OMS 52=20210318-13:12:47.076 56=TESTER4 128=CXPIA010 1=10 6=10.05 11=202103181011421520 14=100 17=921870462 31=10.05 32=100 37=0002761080 38=100 39=2 40=2 44=10.05 54=1 55=B3SA3 59=0 60=20210318-13:12:47.036 75=20210318 150=F 151=0 198=922236764 336=1 382=1 375=3 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 625=17 1057=N 10=090
Exemplo 2 – Ordem a Mercado
Nova ordem simples (NewOrderSingle) de venda de tipo a mercado (market) de 100 ações de B3SA3 do segmento Bovespa para a conta 123.
8=FIX.4.4 9=147 35=D 34=114 49=TESTER4 52=20210318-14:05:22.710 56=PNT_OMS 1=123 11=202103181104422824 21=1 38=100 40=1 54=2 55=B3SA3 60=20210318-14:05:22 207=XBSP 10=116
A ordem é recebida e aceita pela BM&FBOVESPA através de um ExecutionReport do tipo novo (new). O status da ordem é novo (new), a quantidade acumulada é 0 e a quantidade em aberto é 100.
8=FIX.4.4 9=327 35=8 34=125 49=PNT_OMS 52=20210318-14:05:22.825 56=TESTER4 128=CXPIA010 1=123 6=0 11=202103181104422824 14=0 17=921870492 37=0002761084 38=100 39=0 40=1 54=2 55=B3SA3 59=0 60=20210318-14:05:22.700 75=20210318 150=0 151=100 198=922236767 207=BVMF 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 35001=9.45 10=206
A ordem é executada imediata (agride o book) e completamente e o negócio realizado de 100 a R$10,05 é informado através de um ExecutionReport do tipo negócio (trade). O status da ordem é completo (filled), a quantidade acumulada é 100 e a quantidade em aberto é 0.
8=FIX.4.4 9=379 35=8 34=127 49=PNT_OMS 52=20210318-14:05:22.825 56=TESTER4 128=CXPIA010 1=123 6=10.05 11=202103181104422824 14=100 17=921870471 31=10.05 32=100 37=0002761084 38=100 39=2 40=1 54=2 55=B3SA3 59=0 60=20210318-14:05:22.700 75=20210318 150=F 151=0 198=922236767 207=BVMF 336=1 382=1 375=3 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 625=17 1057=Y 35001=9.45 10=072
Exemplo 3 – Ordem Rejeitada
Nova ordem simples (NewOrderSingle) de compra de tipo limitada (limit) de 100 ações de B3SA3 a R$10,05 para a conta 10.
8=FIX.4.4 9=147 35=D 34=110 49=TESTER4 52=20210318-14:03:44.590 56=PNT_OMS 1=10 11=202103181012470482 21=1 38=100 40=2 44=10.05 54=1 55=B3SA3 60=20210318-14:03:44 10=001
A ordem é recebida, porém rejeitada pelo Fast OMS através de um ExecutionReport do tipo rejeição (reject). O texto da rejeição indica que a BM&FBOVESPA estava desconectada e por isso a ordem foi rejeitada. O status da ordem é rejeitado (rejected), a quantidade acumulada é 0 e a quantidade em aberto é 0.
8=FIX.4.4 9=255 35=8 34=112 49=PNT_OMS 52=20210318-14:03:44.595 56=TESTER4 1=10 6=0 11=202103181012470482 14=0 17=6915849 31=0 32=0 37=0002761082 38=100 39=8 40=2 44=10.05 54=1 55=B3SA3 58=Exchange is offline. Try again later. 59=0 60=20210318-14:03:44 103=0 150=8 151=0 10=185
Esta seção contém exemplos de envio de cancelamento. Os pedidos recebidos pelo Fast OMS são validados e encaminhados para a BM&FBOVESPA com a menor latência possível.
Exemplo 1 – Cancelamento de Ordem Nova
Nova ordem simples (NewOrderSingle) de compra de tipo limitada (limit), quantidade de 100 ações de VALE3 a R$10,05 para a conta 10 e validade para o dia de hoje (day).
8=FIX.4.4 9=151 35=D 34=475 49=TESTER4 52=20210318-17:04:56.200 56=PNT_OMS 1=10 11=202103181359598067 21=1 38=100 40=2 44=10.1 54=1 55=VALE3 59=0 60=20210318-17:04:56 10=235
A ordem é recebida e aceita pela BM&FBOVESPA através de um ExecutionReport do tipo novo (new). O status da ordem é novo (new), a quantidade acumulada é 0 e a quantidade em aberto é 100.
8=FIX.4.4 9=317 35=8 34=480 49=PNT_OMS 52=20210318-17:04:56.217 56=TESTER4 128=CXPIA010 1=10 6=0 11=202103181359598067 14=0 17=80187047027 37=0002761090 38=100 39=0 40=2 44=10.1 54=1 55=VALE3 59=0 60=20210318-17:04:56.194 75=20210318 150=0 151=100 198=802513937 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 10=206
Um pedido de cancelamento (OrderCancelRequest) é enviado para a ordem. Este pedido contém o antigo ID (OrigClOrdID) e um novo ID (ClOrdID) para a ordem, ambos atribuídos pelo cliente. Opcionalmente envio o ID da ordem (OrderID) atribuído pelo Fast OMS e recebido em ExecutionReport anterior (mensagem acima) para um roteamento mais rápido.
8=FIX.4.4 9=160 35=F 34=476 49=TESTER4 52=20210318-17:04:59.466 56=PNT_OMS 1=10 11=20210318140459 37=0002761090 38=100 41=202103181359598067 54=1 55=VALE3 60=20210318-17:04:59 10=038
O pedido de cancelamento é recebido e aceito pela BM&FBOVESPA através de um ExecutionReport do tipo cancelamento (cancel). O status da ordem é cancelado (canceled), a quantidade acumulada é 0 e a quantidade em aberto é 0.
8=FIX.4.4 9=333 35=8 34=481 49=PNT_OMS 52=20210318-17:04:59.478 56=TESTER4 128=CXPIA010 1=10 6=0 11=20210318140459 14=0 17=80187047028 37=0002761090 38=100 39=4 40=2 41=202103181359598067 44=10.1 54=1 55=VALE3 59=0 60=20210318-17:04:59.456 75=20210318 150=4 151=0 198=802513937 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 10=240
Exemplo 2 – Cancelamento de Ordem Parcialmente Completa
Nova ordem simples (NewOrderSingle) de compra de tipo limitada (limit), quantidade de 200 ações de USIM3 a R$9,96 para a conta 10 e validade para o dia de hoje (day).
8=FIX.4.4 9=152 35=D 34=592 49=TESTER4 52=20210318-18:01:00.364 56=PNT_OMS 1=10 11=2021031815004320712 21=1 38=200 40=2 44=9.96 54=1 55=USIM3 59=0 60=20210318-18:01:00 10=030
A ordem é recebida e aceita pela BM&FBOVESPA através de um ExecutionReport do tipo novo (new). O status da ordem é novo (new), a quantidade acumulada é 0 e a quantidade em aberto é 200.
8=FIX.4.4 9=317 35=8 34=599 49=PNT_OMS 52=20210318-18:01:00.392 56=TESTER4 128=CXPIA010 1=10 6=0 11=2021031815004320712 14=0 17=9218704111 37=0002761095 38=200 39=0 40=2 44=9.96 54=1 55=USIM3 59=0 60=20210318-18:01:00.355 75=20210318 150=0 151=200 198=922236786 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 10=214
A ordem é executada imediata (agride o book) e parcialmente e o negócio realizado de 100 a R$9,95 é informado através de um ExecutionReport do tipo negócio (trade). O status da ordem é parcialmente completo (partially filled), a quantidade acumulada é 100 e a quantidade em aberto é 100.
8=FIX.4.4 9=368 35=8 34=600 49=PNT_OMS 52=20210318-18:01:00.393 56=TESTER4 128=CXPIA010 1=10 6=9.95 11=2021031815004320712 14=100 17=921870482 31=9.95 32=100 37=0002761095 38=200 39=1 40=2 44=9.96 54=1 55=USIM3 59=0 60=20210318-18:01:00.355 75=20210318 150=F 151=100 198=922236786 336=1 382=1 375=3 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 625=17 1057=Y 10=056
Um pedido de cancelamento (OrderCancelRequest) é enviado para a ordem. Este pedido contém o antigo ID (OrigClOrdID) e um novo ID (ClOrdID) para a ordem, ambos atribuídos pelo cliente. Opcionalmente envio o ID da ordem (OrderID) atribuído pelo Fast OMS e recebido em ExecutionReport anterior (mensagem acima) para um roteamento mais rápido.
8=FIX.4.4 9=161 35=F 34=593 49=TESTER4 52=20210318-18:01:03.225 56=PNT_OMS 1=10 11=20210318150103 37=0002761095 38=200 41=2021031815004320712 54=1 55=USIM3 60=20210318-18:01:03 10=041
O pedido de cancelamento é recebido e aceito pela BM&FBOVESPA através de um ExecutionReport do tipo cancelamento (cancel). O status da ordem é cancelado (canceled), a quantidade acumulada é 100 e a quantidade em aberto é 0. O ID da ordem (OrderID) atribuído pelo Fast OMS continua o mesmo após o cancelamento.
8=FIX.4.4 9=338 35=8 34=602 49=PNT_OMS 52=20210318-18:01:03.241 56=TESTER4 128=CXPIA010 1=10 6=9.95 11=20210318150103 14=100 17=9218704112 37=0002761095 38=200 39=4 40=2 41=2021031815004320712 44=9.96 54=1 55=USIM3 59=0 60=20210318-18:01:03.213 75=20210318 150=4 151=0 198=922236786 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 10=205
Exemplo 3 – Cancelamento de Ordem Completa Rejeitado
Nova ordem simples (NewOrderSingle) de venda de tipo limitada (limit), quantidade de 300 ações de USIM3 a R$9,96 para a conta 10 e validade para o dia de hoje (day).
8=FIX.4.4 9=152 35=D 34=596 49=TESTER4 52=20210318-18:02:04.315 56=PNT_OMS 1=10 11=2021031815020004614 21=1 38=300 40=2 44=9.96 54=2 55=USIM3 59=0 60=20210318-18:02:04 10=040
A ordem é recebida e aceita pela BM&FBOVESPA através de um ExecutionReport do tipo novo (new). O status da ordem é novo (new), a quantidade acumulada é 0 e a quantidade em aberto é 300.
8=FIX.4.4 9=317 35=8 34=605 49=PNT_OMS 52=20210318-18:02:04.336 56=TESTER4 128=CXPIA010 1=10 6=0 11=2021031815020004614 14=0 17=9218704114 37=0002761097 38=300 39=0 40=2 44=9.96 54=2 55=USIM3 59=0 60=20210318-18:02:04.303 75=20210318 150=0 151=300 198=922236788 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 10=211
A ordem é executada imediata (agride o book) e completamente e o negócio realizado de 300 a R$9,95 é informado através de um ExecutionReport do tipo negócio (trade). O status da ordem é completo (filled), a quantidade acumulada é 300 e a quantidade em aberto é 0.
8=FIX.4.4 9=366 35=8 34=607 49=PNT_OMS 52=20210318-18:02:04.338 56=TESTER4 128=CXPIA010 1=10 6=9.96 11=2021031815020004614 14=300 17=921870491 31=9.96 32=300 37=0002761097 38=300 39=2 40=2 44=9.96 54=2 55=USIM3 59=0 60=20210318-18:02:04.303 75=20210318 150=F 151=0 198=922236788 336=1 382=1 375=3 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 625=17 1057=Y 10=233
Um pedido de cancelamento (OrderCancelRequest) é enviado para a ordem. Este pedido contém o antigo ID (OrigClOrdID) e um novo ID (ClOrdID) para a ordem, ambos atribuídos pelo cliente. Opcionalmente envio o ID da ordem (OrderID) atribuído pelo Fast OMS e recebido em ExecutionReport anterior (mensagem acima) para um roteamento mais rápido.
8=FIX.4.4 9=161 35=F 34=597 49=TESTER4 52=20210318-18:02:09.350 56=PNT_OMS 1=10 11=20210318150209 37=0002761097 38=300 41=2021031815020004614 54=2 55=USIM3 60=20210318-18:02:09 10=067
O pedido de cancelamento é recebido e recusado pela BM&FBOVESPA através de um OrderCancelReject. O texto da rejeição indica que a ordem não foi achada no book, o que era esperado já que foi executada completamente. O código de erro, que pode ser consultado no documento de códigos de erros do EntryPoint, indica que a ordem não está no book.
8=FIX.4.4 9=365 35=9 34=608 49=PNT_OMS 52=20210318-18:02:09.376 56=TESTER4 128=CXPIA010 1=10 11=20210318150209 37=0002761097 39=8 41=2021031815020004614 54=2 55=USIM3 58=Order modify no such order on book 'ClientOrderId: 2021031815020004614_2761097 SenderCompID: CXPIA010' 75=20210318 102=2045 198=NONE 434=1 453=3 448=3 447=D 452=7 448=TESTER4 447=D 452=36 448=DMA1 447=D 452=54 10=031
Sumário
Revisões
Data | Autor | Alterações |
18/03/2021 | Gabriel Malizia | Exemplos de mensagens FIX para EntryPoint. |
Related content
Plug and Trade Sistemas