monteirotf.com
TessTrade-Corp · No ar

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.

Workspace de backtest da TessTrade: lista de estratégias, curva de patrimônio e histórico de trades
Workspace de backtest da TessTrade: lista de estratégias, curva de patrimônio e histórico de trades
Rust multithread
Engine de simulação
Monaco + sandbox Python
Estratégias no navegador
TimescaleDB
Séries temporais

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.

01

Arquitetura

Workspace do trader → IDE e gráficosWorkspace do trader → API Gateway: HTTPS / WSSWorkspace do trader → Clerk: autenticaçãoAPI Gateway → Core APICore API → Sandbox Python: RPCCore API → TimescaleDB: leitura e escritaCore API → Redis: computaçãoWorkspace do trader · React, Vite, ZustandWorkspace do traderReact, Vite, ZustandIDE e gráficos · Monaco, Three.js, D3IDE e gráficosMonaco, Three.js, D3API Gateway · TraefikAPI GatewayTraefikClerk · autenticação e sessãoClerkautenticação e sessãoCore API · Rust, AxumCore APIRust, AxumSandbox Python · indicadores escritos pelo usuárioSandbox Pythonindicadores escritos pelo…TimescaleDB · séries temporais em PostgreSQLTimescaleDBséries temporais em Postg…Redis · PubSubRedisPubSub
  1. 01Workspace do trader → IDE e gráficos
  2. 02Workspace do trader → API Gateway: HTTPS / WSS
  3. 03Workspace do trader → Clerk: autenticação
  4. 04API Gateway → Core API
  5. 05Core API → Sandbox Python: RPC
  6. 06Core API → TimescaleDB: leitura e escrita
  7. 07Core API → Redis: computação
02

Decisões

  1. 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.

  2. 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.

  3. 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.

03

Ao vivo

Monte Carlo · estratégia400 cenários × 250 trades, no seu navegador
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.

04

Números com fonte

Cada número aponta para o arquivo do repositório de onde saiu.

Versão do React
18
fonte: README.md
05

Stack

  • Rust · Axum
  • React
  • TypeScript
  • Python
  • TimescaleDB
  • Three.js
  • Docker