TessTrade (Trading Algorítmico)
Plataforma de trading algorítmico que junta rede social, ambiente de desenvolvimento quantitativo no navegador e engine de backtesting em Rust.

O problema
Traders quantitativos não tinham um único lugar para escrever, testar e compartilhar estratégias: backtesting exige processar séries históricas pesadas em paralelo, e a interface precisa continuar fluida recebendo ticks em alta frequência.
A abordagem
Arquitetei a plataforma completa: engine de simulação multithread em Rust para Monte Carlo e processamento de ticks, indicadores em Python executados em sandbox e ligados à engine via FFI/RPC, e um workspace modular em React com Monaco Editor para desenvolver estratégias no próprio navegador. Séries temporais em TimescaleDB, identidade com Clerk, estado com Zustand e TanStack Query. Código fechado por política corporativa.
Arquitetura
- 01Workspace do trader → IDE e gráficos
- 02Workspace do trader → API Gateway: HTTPS / WSS
- 03Workspace do trader → Clerk: autenticação
- 04API Gateway → Core API
- 05Core API → Sandbox Python: RPC
- 06Core API → TimescaleDB: leitura e escrita
- 07Core API → Redis: computação
Decisões
- 01
Camada de execução migrada para Rust
Por quê Simulações paralelas exigiam processar séries históricas em vários núcleos. Migrei para uma arquitetura multithread em Rust para evitar a limitação de thread única do Node.js e o GIL do Python.
- 02
Indicadores em Python num sandbox, ligados à engine
Por quê O usuário escreve o indicador no Monaco. O código vai para um worker Python isolado que valida a lógica e envia a saída para a engine Rust simular, via FFI/RPC.
- 03
Zustand com componentes atômicos no workspace
Por quê Usei Zustand com componentes atômicos para evitar re-renderizações em cascata do React enquanto chegam ticks em alta frequência, num layout em grade redimensionável com gráficos, editores e livro de ofertas.
Ao vivo
- expectativa por trade
- +0.18R
- capital final (mediana)
- +52%
- cenários no lucro
- 98%
- chance de drawdown ≥ 30%
- 1%
Na TessTrade, isso roda na engine em Rust, multithread, sobre séries históricas reais.
Números com fonte
Cada número aponta para o arquivo do repositório de onde saiu.
Stack
- Rust · Axum
- React
- TypeScript
- Python
- TimescaleDB
- Three.js
- Docker