Arquitetura do Bot

Visão Geral do Sistema
A plataforma de trading ByNinja é construída como um sistema multiprocesso distribuído que separa a execução de trading da interação com o utilizador.
A arquitetura consiste em duas aplicações independentes:
- •Bot de Trading — responsável pela análise de mercado, execução de estratégias, gestão de risco e processamento de ordens.
- •Servidor de Controlo Telegram — responsável por notificações, controlo remoto e tratamento de comandos através do Telegram.
Ambos os serviços comunicam através de uma camada TCP personalizada e leve, permitindo que funcionem independentemente, mantendo-se sincronizados em tempo real.
Esta separação melhora a estabilidade, escalabilidade e isolamento de falhas. Mesmo que o serviço do Telegram fique indisponível, o motor de trading pode continuar a operar sem interrupção.
Arquitetura de Processos
O sistema usa um design orientado a processos onde cada componente tem uma responsabilidade dedicada.
Processo de Trading
O processo de trading gere:
- •Integração com a API da exchange
- •Monitorização de mercado
- •Execução de estratégias
- •Gestão de risco
- •Manuseamento de posições
- •Registo interno (logging)
O motor de trading funciona continuamente e expõe comandos de controlo remoto através da conexão do cliente TCP.
Processo Telegram
O processo Telegram trata de:
- •Comunicação com a API do Bot Telegram
- •Processamento de comandos do utilizador
- •Notificações e alertas
- •Gestão do servidor TCP
Este processo atua como uma ponte entre o utilizador e o motor de trading.
Execução Independente
Ambas as aplicações são lançadas separadamente e operam como processos independentes:
python3 -c "from trading.main import main; main()"python3 -c "from telegram.main import main; main()"Como ambos os serviços são isolados, cada processo pode ser reiniciado, atualizado ou depurado independentemente, sem afetar o outro subsistema.
Comunicação TCP
A camada de comunicação é baseada num protocolo TCP personalizado projetado para baixa sobrecarga e interação em tempo real.
Fluxo de Comunicação
Telegram User
↓
Telegram Bot
↓
TCP Server
↓
Trading Bot TCP Client
↓
Trading EngineO fluxo inverso é usado para logs, alertas e atualizações de estado.
Estrutura da Mensagem
Todas as mensagens são transferidas no formato JSON com um cabeçalho de comprimento fixo:
{
"tag": "command",
"message": "starttrading",
"timestamp": 1750000000
}Funcionalidades Suportadas
A camada TCP inclui:
- •Lógica de reconexão automática
- •Workers de envio/receção em segundo plano
- •Filas de mensagens thread-safe
- •Tratamento de encerramento gracioso (graceful shutdown)
- •Roteamento de mensagens por tipo
- •Monitorização de conexão persistente
Sistema de Comandos
A arquitetura suporta comandos remotos como:
- •Iniciar / parar trading
- •Ativar ou desativar compras
- •Ativar ou desativar vendas
- •Forçar ações de compra / venda
- •Recuperação de estatísticas
- •Monitorização do estado do sistema
Os comandos podem ser globais ou específicos por símbolo.
Design Multiprocesso
A plataforma segue uma arquitetura multiprocesso em vez de um design monolítico.
Vantagens
Isolamento
Uma falha no subsistema do Telegram não interrompe as operações de trading.
Escalabilidade
Cada serviço pode ser implantado em diferentes máquinas ou contentores no futuro.
Manutenibilidade
A base de código é separada em componentes lógicos com responsabilidades claras.
Confiabilidade
A reconexão TCP e os workers em segundo plano ajudam a manter uma comunicação estável mesmo durante falhas de rede temporárias.
Execução Concorrente
As operações de trading, a consulta (polling) do Telegram, a comunicação TCP e o registo (logging) são executados concorrentemente usando threads dedicadas.
Modelo de Concorrência Interna
Dentro de cada processo, o sistema usa multithreading para operações assíncronas.
Threads da Aplicação de Trading
- •Thread de execução de trading
- •Thread de comunicação TCP
- •Thread de encaminhamento de logs
- •Workers de monitorização em segundo plano
Threads da Aplicação Telegram
- •Thread de consulta (polling) do Telegram
- •Thread do servidor TCP
- •Workers de encaminhamento de mensagens
Este design garante que as operações de rede nunca bloqueiam o próprio motor de trading.