Já se perguntou como ocorre uma transação financeira na bolsa de valores?

Matheus Mendes | Trading Systems — OMS

Nelogica
4 min readSep 2, 2021

O mercado financeiro é um ambiente de compra e venda, sejam elas de ações, opções, fundos imobiliários, títulos, câmbio ou até mesmo mercadorias. Nessas negociações existem diversos agentes, incluindo instituições que facilitam o encontro entre as pessoas interessadas em comprar e vender, além de regular e fiscalizar essas transações. Mas você já parou para se perguntar como essas negociações funcionam por debaixo dos panos?

Neste artigo, o Nelogico Matheus Mendes explicará como ocorrem as trocas de informações quando se compra e vende um ativo. Mais especificamente, falaremos sobre um protocolo chamado FIX, explicando o que é, a sua origem, o motivo de ele ser tão importante atualmente e como ele funciona na prática.

O que é o protocolo FIX?

FIX é um protocolo que revolucionou o ambiente e negociação e se provou fundamental para facilitar diversas negociações que vêm surgindo desde as décadas passadas. O Financial Information eXchange (FIX) (do inglês, Troca de Informação Financeira) já se tornou oficialmente a forma como o mundo faz operações financeiras, após se provar eficiente e transparente. O protocolo oferece benefícios significativos para empresas interessadas em explorar novas oportunidades de investimento, além de reduzir os custos de troca e de entrada no mercado, com participantes capazes de se comunicar rapidamente, tanto nacional quanto internacionalmente.

Missão do protocolo FIX

A especificação do protocolo foi criada em 1992 por Robert Bob Lamourex e Chris Morstatt com um objetivo: conectar e padronizar a comunicação entre o ecossistema global, gestores de ativos, bancos, corretoras, fornecedores e reguladores. O objetivo era fazer isso seguindo alguns princípios:

  1. Criar e manter padrões abertos eficientes em todo o ecossistema, desde a pré-negociação até os dados de mercado e liquidação.
  2. Fornecer consultoria e aconselhamento a órgãos reguladores de forma transparente e imparcial.
  3. Buscar maneiras de melhorar o processo de negociação de ponta a ponta para o setor de serviços financeiros globais.
  4. Proporcionar aos membros um ambiente neutro e colaborativo para se reunirem por meio de conferências dirigidas aos membros e outros fóruns críticos para promover, apoiar e educar.

Especificação Técnica

O protocolo FIX é, na prática, formado por diversas tags. Abaixo, mostrarei as tags que são consideradas as mais relevantes e seus respectivos significados:

8 [BeginString]: É a tag que identifica o início de uma nova mensagem e a versão do protocolo.

Exemplo: FIX.4.4

9 [BodyLength]: É o comprimento de uma mensagem em bytes. O cálculo é feito contando o número de caracteres na mensagem (incluindo os delimitadores) após o campo BodyLength (9) até o campo CheckSum (10). O campo (10) possui o valor da soma dos bytes.

Exemplo: 8=FIX.4.49=5535=034=249=SENDER52=20210802–18:58:48.74956=TARGET10=116.

O BodyLength é 72 devido ao número de caracteres.

34 [MsgSeqNum]: Essa tag é quem garante que todas mensagens vão ser recebidas na ordem correta em que elas aconteceram. O protocolo FIX requer que cada aplicação mantenha dois números de sequência por sessão: entrada e saída. Os números são independentes uns dos outros e a aplicação incrementa o número de sequência de saída, e define a tag 34 igual a esse valor em cada mensagem de saída. Para mensagens de entrada, o aplicativo incrementa o número de sequência de entrada armazenado e verifica se ele corresponde ao valor da tag 34 da mensagem de entrada.

Exemplo: 8=FIX.4.49=5535=034=249=TARGET52=20210802–18:58:49.31656=SENDER10=107.

Esse seria o “par” do MsgSeqNum apresentado no exemplo da tag 9 (BodyLength).

35 [MsgType]: Essa tag define o tipo de mensagem com apenas algum caractere.

Exemplo:

  • D [New Order]: é o tipo de mensagem que é usado por instituições que desejam submeter eletronicamente títulos e ordens de uma corretora para execução.
  • F [Order Cancel Request]: essa mensagem solicita o cancelamento de toda ordem restante de um pedido existente.
  • 8 [Execution Report]: essa mensagem é uma das mais importantes, usada para confirmar o recebimento de uma ordem, confirmar alterações de uma ordem existente, transmissão de informações do status do pedido, rejeições de ordens e outras situações.
  • 49 [SenderCompID]: valor atribuído usado para identificar a corretora que envia a ordem.
  • 56 [TargetCompID]: valor atribuído usado para identificar a empresa receptora.
  • 52 [SendingTime]: data e horário da transmissão da mensagem da ordem.
  • 98 [EncryptodMethod]: tag que define o método de criptografia do envio da mensagem.
  • 10 [CheckSum]: essa tag é sempre a última tag da mensagem, e para realizar o cálculo dela devemos somar os valores ASCII da mensagem e dividir pelo valor da tag BodyLength.

Agora que já entendemos o que está por trás de uma transação na bolsa de valores, exemplificamos como será uma mensagem eletrônica seguindo o protocolo FIX na prática:

8=FIX.4.2|9=65|35=A|49=SERVER|56=CLIENT|34=177|52=20090107–18:15:16|98=0|108=30|10=062|

Para uma maior agilidade nos cálculos e na interpretação da mensagem, pode-se utilizar um decodificador de protocolo FIX. Ao colarmos a mensagem acima no site em questão, um código visualmente muito mais simples e de fácil entendimento é mostrado:

Mensagem eletrônica copiada para o Decodificador FIX

E aí, está entendendo melhor como funciona uma transação no mercado financeiro no ambiente de programação?

Se você curtiu esse artigo, deixe seus aplausos e nos siga aqui no Medium para receber mais conteúdos incríveis como esse!

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response