Quando o livro de ofertas nas telas de trading trava ou dá saltos com o mercado movimentado, o culpado costuma ser o feed de dados de mercado. Ele perde atualizações na entrada, monta o livro errado ou o envia devagar demais a centenas de telas. Meça primeiro o seu horário de pico e depois teste cada empresa com uma gravação desse dia.
Se o livro de ofertas nas suas telas de trading trava, dá saltos ou mostra preços impossíveis quando o mercado está movimentado, a falha costuma estar em um de três lugares. As atualizações se perdem onde o feed da bolsa entra, o livro é montado errado ou chega devagar demais a centenas de telas. Meça o seu horário de pico antes de contratar alguém e depois teste cada empresa que você considerar com uma gravação desse dia.
A resposta curta: uma bolsa numera cada atualização que envia. Um sistema bem construído percebe na hora que falta um número, marca o livro como desatualizado e o reconstrói. O problema começa quando a lacuna passa despercebida ou a reconstrução leva segundos, ou quando uma única conexão lenta segura todos os traders. Grave o feed do seu dia de maior movimento e faça da reprodução dele o teste em que toda empresa precisa passar: antes de você comprar um produto, e como critério de aprovação da primeira fase quando um time construir para você.
Leia também
Isso aparece nos momentos de maior movimento, como um anúncio de banco central ou a abertura do mercado. O livro na tela para por um ou dois segundos e depois dá um salto. Ordens canceladas continuam visíveis. Às vezes, o preço mais alto que um comprador oferece fica acima do preço mais baixo que um vendedor pede, o que se chama de livro cruzado. Em uma única bolsa, fora dos leilões de abertura e de fechamento, essas ordens seriam casadas na hora. Por isso, um livro cruzado de uma única bolsa na sua tela significa que a sua cópia desse livro está errada.
Aí o suporte recebe capturas de tela de dois traders que veem livros diferentes para o mesmo instrumento. Ou um trader contesta o preço pelo qual uma ordem foi executada, porque a tela mostrava outro.
O feed do livro de ofertas de uma bolsa é um fluxo de pequenas mudanças: uma ordem incluída, uma ordem cancelada, um negócio. O seu sistema parte de uma cópia completa do livro, chamada snapshot, e aplica as mudanças em ordem. Cada mudança é numerada, então dá para perceber quando falta uma. A especificação da Nasdaq para o feed TotalView-ITCH 5.0 diz que o feed “é composto por uma série de mensagens sequenciadas”, ou seja, numeradas em ordem.
Em um mercado movimentado, o fluxo de mudanças sobe bruscamente. Algumas se perdem no caminho ou dentro dos seus próprios servidores, e algumas chegam fora de ordem. Se o sistema não percebe a lacuna, aplica o que chegar e mostra um livro que já não corresponde ao da bolsa. Se percebe a lacuna, mas leva segundos para se recuperar, a tela fica parada.
As bolsas partem do princípio de que os clientes vão perder atualizações. A documentação do CME Group para o feed MDP 3.0 diz que, depois de uma lacuna, “deve-se presumir que todos os livros mantidos no sistema do cliente podem não ter mais o estado correto e mais recente”.
São três lugares, e cada um precisa da sua própria correção. Os engenheiros chamam o terceiro de fan-out, porque um único fluxo de atualizações se abre em leque para muitas telas. O artigo técnico com link acima trata dos três em detalhes.
O primeiro lugar é a entrada, onde chega o feed da bolsa. Algumas bolsas oferecem formas de recuperar dados perdidos. Um dos protocolos de entrega da Nasdaq, o MoldUDP64, permite que os receptores “detectem e solicitem novamente os pacotes perdidos”. A CME envia o seu fluxo duas vezes, em linhas chamadas A e B, e mantém um feed separado de snapshots para atualizar os livros. Nada disso ajuda se o seu sistema não percebe a lacuna.
Depois o livro é montado, e aqui o perigo é uma mudança aplicada duas vezes, fora de ordem ou em cima do snapshot errado. A Binance, uma exchange de cripto, descreve no seu guia os passos exatos para unir um snapshot ao fluxo ao vivo. Um livro montado sem eles continua mostrando preços e parece normal, mas os preços estão errados.
Por último vem o fan-out, em que o livro sai para centenas de sessões de traders, uma para cada tela conectada. Um trader com uma conexão móvel fraca, ou um terminal que travou, lê as atualizações devagar. Se o servidor espera por essa sessão, todas as outras sessões esperam também. Deixar a fila de atualizações pendentes dessa sessão crescer sem limite não é melhor, porque o servidor fica sem memória e cai para todo mundo.
Em um sistema bem construído, o servidor coloca as atualizações em ordem uma única vez e envia o mesmo resultado a todas as sessões. Uma sessão que fica para trás ou recebe o retrato mais recente do livro e pula os passos intermediários, ou é desconectada pelo servidor com o motivo informado, e a tela se reconecta com uma cópia nova. Um feed pode quebrar em mais de um lugar ao mesmo tempo.
Pegue o horário de pico do último mês e levante estes números para ele:
Depois grave o feed bruto de um dia movimentado exatamente como ele chegou, com o horário de chegada de cada pacote. Reproduzir essa gravação em velocidade real e mais rápido é o teste que você aplica a cada empresa da sua lista e repete depois de cada correção.
O software que recebe o feed de uma bolsa e mantém o livro se chama feed handler. Você tem três caminhos, e as suas medições devem apontar para um deles. Os dois últimos podem ser combinados.
Corrija o feed handler que você já tem quando as medições apontam para uma falha clara, como lacunas que passam despercebidas ou uma reconstrução lenta, e as pessoas que conhecem o código ainda estão por perto.
Um feed handler pronto é um software licenciado que se conecta a uma bolsa, detecta as lacunas e entrega ao seu sistema um livro de ofertas correto e atualizado. Um feed gerenciado vai além: um fornecedor de dados de mercado se conecta às bolsas, e você recebe dele um único fluxo em um único formato.
Reconstrua a camada que envia os dados aos traders quando a entrada funciona, mas o problema continua. Os traders ainda veem livros diferentes, uma sessão lenta atrasa as demais, ou você planeja atender muito mais sessões do que hoje.
Submeta todas as empresas da sua lista aos mesmos cinco testes:
A amBrain constrói infraestrutura de trading algorítmico: execução de ordens, dados de mercado e controles de risco pré-negociação.
Uma linha do site da amBrain diz: “Desenvolvimento de terminais de trading, sistemas de gestão de ordens e integração com bolsas via protocolo FIX.”
A amBrain diagnostica sistemas lentos em trading e ad tech: a plataforma em funcionamento é medida de ponta a ponta, e o relatório aponta para onde vai o tempo.
A amBrain constrói software desde 2019. Ela descreve o seu time em uma linha: “Um time de até 40 pessoas, cerca de 75% delas sêniores.” Ela trabalha em três formatos: entrega completa, time dedicado ou engenheiros embarcados no seu time. O cliente mantém a propriedade integral do produto e do código, exceto dos componentes reutilizáveis da amBrain.
Este artigo não é um estudo de caso e não descreve nenhum trabalho para clientes. Ele não cita nenhum número de latência de qualquer sistema que a amBrain tenha construído, nem preços ou prazos.
Se a amBrain estiver na sua lista curta, faça a ela as mesmas cinco perguntas que a todas as outras empresas, e faça da sua gravação o critério de aprovação de qualquer trabalho que vocês combinarem.
Traga sua arquitetura atual e o modo de falha que preocupa você, e vamos analisá-lo juntos em meia hora.