Trading System - Parte III
Protótipo
Esse artigo descreve a prova de conceito de um trading system, um sistema que captura os negócios em execução na BM&FBOVESPA, analisa e gera alertas de oportunidades de compra e venda de ações.O objetivo desse protótipo foi gerar uma prova de conceito de um sistema escalável que possa ser utilizado por investidores autônomos, investidores institucionais, formadores de mercado, entre outros.
Segue abaixo a descrição da prova de conceito com base na sua infraestrutura, na sua camada lógica e nos serviços de TI.
Infraestrutura física
Um trading system utiliza uma infraestrutura tecnológica abrangente. O desenvolvimento desse protótipo utilizou tecnologias padrões de mercado e padrões abertos, que beneficiam custo, escalabilidade e disponibilidade.Os equipamentos utilizados nesse trabalho podem ser substituídos por equipamentos “high-end” como storages para armazenamento e backup, servidores multiprocessados, redes de baixa latência etc, uma vez que o objetivo desse protótipo foi apenas demonstrar a viabilidade de projeto técnica e comercial do projeto.
Rede
Conexão de Internet
Conexão à cabo da Ajato de 2Mb, fornecida pela empresa TVA.Redundância de Internet
A redundância de Internet é alimentada com sinal 3g de 1Mb da operadora VIVO, via “tether” por um sistema Android.Roteador Wi-Fi TPLink
Esse roteador é conectado à WAN via modem, e distribui sinal wi-fi 802.11g/802.11n.O sinal distribuído alimenta um roteador dedicado ao trading system, descrito abaixo, além de alimentar todo ambiente com sinal wireless para ser utilizado por notebooks, tablets, smarphones, e-reader etc.
Roteador Wi-Fi Linksys
Esse roteador wireless trabalha em modo cliente, dessa maneira ele recebe o sinal wifi transmitido pelo roteador TPLink e distribui o sinal cabeado para a infraestrutura do trading system.No Break
No break Eaton de dupla conversão, que garante alimentação contínua de energia.Servidor
Processador Intel Core 2 Duo.4G RAM
Estação de trabalho
Processador Intel Core i36 monitores de 21 polegadas
Camada Lógica
Sistema Operacional
ServidorLinux - Distribuição Fedora Core 12 e Ubuntu 10.04
Estação de Trabalho
Windows 7 Ultimate
Banco de Dados
PostgreSQL 9.1Aplicações
PERLServiços de TI
Conexão Internet
O roteador que alimenta o trading system é um Linksys, que utiliza um firmware DD-WRT. Esse firmware permite que se utilize o mesmo com muita flexibilidade. As antenas podem receber e/ou transmitir sinal wifi, as duas antenas podem receber, transmitir ou uma pode receber e a outra transmitir.Da maneira como o mesmo está configurado, ele recebe sinal wifi pelas duas antenas, através
do access point TPLink que distribui o sinal.Em caso de queda do sinal Ajato da TVA, o tether do sistema Android é ativado, e o roteador Linksys passa a ser alimentado com esse sinal, evitando longas interrupções.
Da maneira que o sistema está configurado, existe uma interrupção de poucos minutos.
Os dois access point possuem nomes diferentes porém utilizam o mesmo endereço de rede, a mesma senha de acesso e o mesmo algoritmo criptográfico. Dessa maneira, durante uma interrupção, basta alterar o nome do access point e reiniciar o roteador para reestabelecer a conexão.
É possível instalar um script que gerencia automaticamente a troca dos access point em caso de interrupção do sinal de Internet em um deles.
Energia
Assim como a conexão à Internet, a energia deve ser constante para evitar qualquer interrupção durante o horário de negociação.Está sendo utilizado um nobreak de dupla conversão, que evita interrupção no fornecimento de energia seja qual for a falha no sistema de eletricidade.
Um nobreak de dupla conversão converte a energia de corrente alternada para corrente contínua na entrada e de corrente contínua para corrente alternada na saída. Dessa maneira, a corrente alternada da saída é sempre alimentada pelas baterias do nobreak e nenhuma interrupção no fornecimento de energia impacta na saída de eletricidade para o sistema.
A limitação de tempo de uso é dada pela quantidade de baterias, que pode também ser estendida com a utilização de geradores de energia a diesel.
Backup
O serviço de backup de dados é efetuado na camada do sistema operacional.Toda a camada transacional do sistema é executada nos servidores dos provedores das corretoras e da bolsa. No servidor local, existe processamento de dados e armazenamento de informações para transacionamento em tempo real. Caso aconteça algum problema durante o período de negociação, é necessário entrar diretamente nos sistemas das corretores e fechar eventuais ordens abertas. Um sistema de backup na camada de file system não é necessário.
O que é importante manter backup é o código fonte do sistema. Como o mesmo é alterado devido a correções ou entrada de novas funcionalidades, o backup é efetuado uma vez por dia. Poderiam ser várias vezes ao dias, mas não é necessário.
O mecanismo funciona através de scripts disparados pelo crontab.
Processamento de Dados
Atualmente o sistema processa os dados em tempo real consolidados em intervalos de 15 minutos, um dos intervalos mais utilizados para se realizar operações intraday na bolsa.O universo dos papéis negociados é composto por empresas que fazem parte do índice IBOVESPA, deixando de fora os papéis menos líquidos, opções, ETF, commodities, moeda etc.
A máquina utilizada para essa tarefa possui um processador de dois núcleos físicos e processa os dados muito rapidamente.
Para sistemas “algo trading”, mais importante que a velocidade de processamento é o algoritmo utilizado para se detectar boas oportunidades de negócios.
Para sistemas de negociação de alta frequência, além de bons algoritmos é necessário velocidade no processamento dos dados. Uma máquina com processadores de oito núcleos pode dar conta de processar em tempo real todos os negócios e gerar os alertas adequados para as negociações.