Skip to content

Latest commit

 

History

History
210 lines (152 loc) · 7.65 KB

File metadata and controls

210 lines (152 loc) · 7.65 KB

Rambit

Sistema web para análise, simulação e aprendizado de estratégias de opções financeiras.

Sobre | Funcionalidades | Screenshots | Tecnologias | Como executar | Qualidade

Node.js NestJS React TypeScript Vite PostgreSQL Drizzle Docker

Sobre o projeto

O Rambit combina um catálogo educacional de estratégias de opções com simulações históricas e acompanhamento de desempenho. A proposta é transformar conceitos técnicos do mercado de opções em uma experiência visual, prática e acessível para quem quer estudar cenários, comparar riscos e entender melhor o comportamento de diferentes estruturas.

O sistema integra frontend, backend, banco de dados relacional, autenticação e consumo de dados de mercado para apoiar o estudo de estratégias com diferentes perfis de risco, recompensa, direção de mercado e volatilidade.

Funcionalidades

  • Catálogo de estratégias com busca e filtros por experiência, direção de mercado, volatilidade, risco, recompensa e tipo de estratégia.
  • Detalhamento técnico de estratégias com suas pernas operacionais e perfis de risco.
  • Simulador histórico para aplicar estratégias sobre ativos reais e períodos passados.
  • Histórico de simulações com resultados detalhados, retorno percentual e drawdown máximo.
  • Dashboard pessoal com métricas agregadas de desempenho e sugestões personalizadas.
  • Integração com dados reais de mercado por meio de providers externos, com brapi para ativos/histórico e adapter opcional MarketData.app para cadeias de opções.
  • Motor multi-leg de payoff para simular estruturas compostas por ações, calls e puts.
  • Gestão de perfil com autenticação JWT, alteração de senha e níveis de experiência do usuário.

Screenshots da aplicação

Prints reais da interface atual do Rambit.

Acesso

Tela de login do Rambit

Operação e análise

Dashboard Catálogo de Estratégias
Dashboard de desempenho Catálogo de estratégias
Simulações Perfil do Usuário
Histórico de simulações Perfil do usuário

Tecnologias

Camada Tecnologias
Backend Node.js 20, NestJS 11, TypeScript, JWT, class-validator
Banco de dados PostgreSQL 16 via Docker, Drizzle ORM
Frontend React 19, TypeScript, Vite 7, Tailwind CSS, Radix UI
Estado e rotas TanStack Query, React Router
Visualização Recharts, Lucide React
Dados de Mercado Provider registry, brapi, MarketData.app opcional
Testes Jest (Backend), Vitest e Testing Library (Frontend)
Qualidade ESLint, SonarCloud

Arquitetura em alto nível

apps/
  client/        Aplicação React + Vite (Frontend)
  server/        API NestJS (Backend)
drizzle/         Schema e migrations do banco de dados
packages/        Configurações compartilhadas e Drizzle config
docs/            Documentação, mockups e ativos de marca

Como executar

Pré-requisitos

  • Node.js 20+
  • pnpm 9+
  • Docker e Docker Compose
  • Token da brapi para executar simulações com dados reais
  • Token gratuito da MarketData.app para consultar cadeias de opções dos EUA

1. Clone o repositório

git clone https://github.com/LucasMGcode/Rambit.git
cd Rambit

2. Configuração de ambiente

Copie o arquivo de exemplo e ajuste as variáveis se necessário:

cp .env.example .env

Para simulações históricas, configure o provider de mercado e o token da brapi:

MARKET_DATA_PROVIDER=brapi
MARKET_DATA_PROVIDER_ORDER=brapi,marketdataapp
BRAPI_BASE_URL=https://brapi.dev/api
BRAPI_API_KEY=seu_token
VITE_API_BASE_URL=http://localhost:3001/api

A lista básica de ativos possui fallback local para desenvolvimento, mas simulações não usam dados fictícios: se o provider não retornar histórico suficiente, a simulação será marcada como falha.

Para experimentar cadeia de opções via free tier da MarketData.app, configure também:

MARKETDATAAPP_BASE_URL=https://api.marketdata.app/v1
MARKETDATAAPP_API_TOKEN=seu_token_gratuito

Endpoints úteis de mercado:

  • GET /api/market/providers lista providers e capabilities disponíveis.
  • GET /api/market/options/chain?underlying=AAPL&expiration=2026-01-16&side=call consulta uma cadeia de opções quando o provider opcional está configurado.

3. Suba a infraestrutura

docker compose up -d

4. Instalação e Migrations

pnpm install
pnpm run db:migrate

5. Seed opcional

Para testar a aplicação com dados iniciais de estratégias, execute o seed após as migrations em um banco local vazio:

node seed-db.mjs

O script usa a DATABASE_URL configurada no .env e popula o catálogo com estratégias inspiradas no livro The Bible of Options Strategies.

6. Execute a aplicação

pnpm run dev

Serviços locais:

  • Frontend: http://localhost:5173
  • API: http://localhost:3001/api

Qualidade e validação

Comandos recomendados antes de publicar alterações:

pnpm run lint             # Análise estática
pnpm run test:all         # Executa todos os testes (Client + Server)
pnpm run build            # Verifica integridade do build

Fluxo mais próximo do CI:

pnpm install --frozen-lockfile
docker compose up -d
pnpm run db:migrate
pnpm run test:coverage:sonar
pnpm audit --audit-level=high
pnpm run build

Documentação complementar

Contexto acadêmico

Este projeto nasceu como trabalho prático da disciplina INF 321, inspirado no livro The Bible of Options Strategies, de Guy Cohen.

Licença

Distribuído sob a licença MIT. Veja LICENSE para mais detalhes.