Como manter um livro de ofertas atualizado via WebSocket
Resumo
Este exemplo descreve um cliente WebSocket que se conecta a uma exchange de derivativos, autentica-se, assina fluxos públicos do livro de ofertas e solicita fluxos privados relacionados à conta após a autenticação. O loop de trabalho recebe mensagens, chama manipuladores de eventos e reconecta após falhas do socket; outra thread envia quadros de ping periódicos. O exemplo mantém níveis de compra e venda em dicionários indexados por identificadores de ordens e os atualiza em resposta a snapshots parciais, inclusões, alterações e exclusões.
Após cada mensagem do livro de ofertas, o código ordena as compras da maior para a menor e as vendas da menor para a maior, depois copia até cinco níveis de preços e quantidades para uma estrutura semelhante a um tick. Isso ilustra uma abordagem básica para manter e exibir um livro ao vivo. Não há medições de latência, sinais de trading nem resultados de execução, e o trecho não descreve salvaguardas de sequenciamento ou recuperação para lacunas nas atualizações. Os dados de autenticação fixos também tornam o exemplo inadequado para implantação direta.
Ideias principais
- O cliente autentica-se via WebSocket antes de assinar fluxos privados.
- Uma thread de trabalho recebe mensagens e reconecta após erros do socket, enquanto outra envia pings periódicos.
- Snapshots e mensagens incrementais atualizam mapas de ofertas de compra e venda indexados por identificadores de ordens.
- Os cinco melhores níveis são selecionados ordenando as compras em ordem decrescente e as vendas em ordem crescente de preço.
- O exemplo não apresenta evidências de desempenho e não aborda a recuperação de lacunas nas atualizações nem o tratamento seguro de credenciais.
Tags
De uma coleção privada de cursos; o original não foi publicado.