"Jane Street no gana prediciendo el futuro. Gana optimizando fricción, liquidez y ejecución a escala masiva con una cultura técnica obsesiva."
OpenJane pasó de idea a producción en una sola sesión de trabajo con Claude Code.
No es un proyecto de meses ni de un equipo. Es la demostración práctica de lo que un desarrollador con Claude puede construir en horas — con calidad de producción, seguro, desplegado y documentado.
| Página | URL GitHub Pages | URL Render | Descripción |
|---|---|---|---|
| Landing trilingüe | / | / | ES/EN/PT con auto-detect, globo animado, CTAs |
| Analizar en vivo | /analyze | /analyze | Análisis de régimen, microestructura y stat-arb |
| 📊 Backtester histórico | /backtester | /backtester | P&L histórico con fechas, ventana rodante, CSV export |
| 🎯 Teatro de Operaciones | /portfolio | /portfolio | Paper trading con $100 virtuales, P&L real EOD |
| Educación | /paper-trading-edu | /paper-trading-edu | Cómo gana Jane Street: spread, escala, estrategias |
| Claude Setup | /claude-setup | /claude-setup | Guía para usar Jane en Claude.ai Projects gratis |
| Glosario | /glossary | /glossary | 35+ términos de quant finance explicados |
| API Keys | /api-keys | /api-keys | Guía paso a paso para obtener keys gratuitas |
| Método | Endpoint | Keys necesarias | Descripción |
|---|---|---|---|
GET |
/api/health |
— | Healthcheck del servidor |
POST |
/api/regime |
Massive + EODHD | Régimen de mercado global (score 0-4) |
POST |
/api/microstructure |
Massive + EODHD | Microestructura de un ticker |
POST |
/api/statarb |
EODHD | Stat-arb entre dos tickers (Z-score, half-life) |
POST |
/api/portfolio-snapshot |
EODHD | Precio EOD actual de N tickers (Teatro) |
POST |
/api/backtest |
EODHD | P&L histórico completo con serie diaria (Backtester) |
Ruta 1 — Cero fricción (Claude.ai) → openjane.onrender.com/claude-setup
Sin API keys. Sin instalar. Sin formularios. El usuario crea un Project en claude.ai, pega el system prompt con un clic, y habla con Jane en lenguaje natural. Jane responde con el formato quant completo y aclara siempre cuándo no tiene datos en vivo.
Ruta 2 — Datos reales (Render) → openjane.onrender.com/analyze
El usuario ingresa sus propias API keys gratuitas de Massive.com y EODHD. La plataforma corre análisis en tiempo real (EOD): régimen de mercado, microestructura, stat-arb. Las keys nunca se almacenan.
Ruta 3 — Deploy propio (Docker)
git clone https://github.com/ussleo/openjane
docker build -t openjane .
docker run -p 8000:8000 openjaneInput: EODHD key · tickers · $$ virtuales · fecha inicio · fecha fin
Output: P&L por ticker · valor final · drawdown máximo · serie diaria · CSV descargable
Ejemplo:
ICE $30 + CBOE $25 + VIRT $20 + SPY $25 · 2025-01-02 → 2025-04-30
Jane responde en segundos con el resultado real de esos 87 días hábiles.
Botones de ventana rápida: 30 días · 3 meses · 6 meses · 1 año · 2 años. Distribución igual automática ($100 o $1000 en partes iguales entre tickers). Gráfico de evolución día a día con Chart.js. CSV exportable con serie completa.
Input: EODHD key · tickers · $$ virtuales por ticker
Output: Snapshot de entrada (precio EOD actual) → P&L al evaluar días después
Flujo:
1. Hoy: "Abrir posición" → Jane obtiene precios actuales → guarda en localStorage
2. Mañana: "Evaluar P&L" → Jane compara con nuevos precios → resultado real
3. Historial de evaluaciones con timestamps
4. "Copiar resultado" para compartir
Sin servidor involucrado — todo el estado vive en localStorage del browser. Los precios EOD se actualizan una vez al día después del cierre de mercado.
7 secciones con SVGs explicativos:
- El secreto del centavo: $0.02 × 50M transacciones = $1M/día
- La magia de la escala
- Paper trading vs trading real
- Backtesting con ventana rodante
- Teatro de operaciones con ejemplo ($100 en ICE/CBOE/VIRT/SPY)
- Estrategias de Jane Street: ETF Arbitrage, Index Rebalancing, Stat-Arb, Cross-venue, Options MM, Regime-Based
- Glosario visceral de 12 términos
GitHub (source of truth)
├── docs/ → GitHub Pages (frontend estático)
│ ├── index.html ← Landing trilingüe ES/EN/PT
│ ├── analyze.html ← Análisis en vivo
│ ├── backtester.html ← Backtester histórico
│ ├── portfolio.html ← Teatro de Operaciones
│ ├── paper-trading-edu.html ← Educación
│ ├── claude-setup.html ← Setup en Claude.ai
│ ├── glossary.html ← Glosario 35+ términos
│ └── api-keys.html ← Guía de API keys
│
└── app/
└── main.py → Render.com (FastAPI + uvicorn + Docker)
├── GET /api/health
├── POST /api/regime
├── POST /api/microstructure
├── POST /api/statarb
├── POST /api/portfolio-snapshot
└── POST /api/backtest
OpenJane nació de una investigación profunda sobre Jane Street Capital.
Jane Street generó aproximadamente $39 mil millones en 2024 — más que Goldman Sachs en ese mismo concepto. No cotiza en bolsa. No hace publicidad. Y sin embargo es posiblemente la firma más influyente en la microestructura de los mercados financieros modernos.
La conclusión fue clara: la lógica detrás de esos $39 mil millones no es magia. Es matemática, datos y cultura técnica obsesiva. Y puede documentarse y ponerse al alcance de cualquier persona.
| Ticker | Empresa | Por qué es un ghost ticker |
|---|---|---|
| CBOE | Cboe Global Markets | Proxy más cercano: opciones, vol, microestructura |
| ICE | Intercontinental Exchange | Proxy sistémico e infraestructural |
| VIRT | Virtu Financial | Market making público, comparable directo |
| NDAQ | Nasdaq | Market structure e infraestructura |
| MKTX | MarketAxess | Liquidez electrónica en renta fija institucional |
| Modelo | Aplicación |
|---|---|
| OLS regression + Z-score | Stat-arb: calibración de spread y señal de entrada |
| Ornstein-Uhlenbeck | Half-life de reversión a la media |
| Volatilidad histórica (log-returns) | HV 20d anualizada |
| Drawdown máximo | Backtester: riesgo histórico por ticker |
| Amenaza | Mitigación implementada |
|---|---|
| Prompt injection vía ticker | Regex ^[A-Z0-9.\-]{1,12}$ — 422 en cualquier otro formato |
| Crossover de keys entre requests concurrentes | Clientes HTTP instanciados por request, sin os.environ global |
| API flooding | Rate limiting 10 req/60s por IP real (X-Forwarded-For) |
| Keys expuestas en logs | Error messages truncados a 200 chars, keys nunca se loguean |
| Inyección de paths en URLs externas | Tickers validados antes de construir cualquier URL |
| CORS abierto | Orígenes permitidos explícitos (GitHub Pages + Render) |
| Payloads masivos | Validación de longitud en API keys (8-200 chars) |
El servidor no almacena nada. Sin base de datos. Sin sesiones. Sin cookies. Sin persistencia.
Ver SECURITY.md para el modelo completo.
| Proveedor | Qué aporta | Usado en |
|---|---|---|
| Massive.com | Precios EOD, volumen OHLCV, VWAP | /api/regime, /api/microstructure |
| EODHD | MA50/MA200, HV, yield curve, histórico completo | Todos los endpoints, Backtester, Teatro |
Ambos gratuitos. Sin tarjeta de crédito. → Guía paso a paso para obtener ambas keys
openjane/
├── app/
│ ├── main.py ← FastAPI server (thread-safe, validado, seguro)
│ └── requirements.txt ← fastapi, uvicorn, python-dotenv
│
├── docs/ ← GitHub Pages (frontend completo)
│ ├── index.html
│ ├── analyze.html
│ ├── backtester.html ← NUEVO v1
│ ├── portfolio.html ← NUEVO v1
│ ├── paper-trading-edu.html ← NUEVO v1
│ ├── claude-setup.html
│ ├── glossary.html
│ ├── api-keys.html
│ └── screenshots/
│
├── plugins/
│ └── vertical-plugins/ ← Skills de análisis cuantitativo
│
├── Dockerfile ← Python 3.12-slim
├── render.yaml ← Configuración Render.com free tier
├── SECURITY.md ← Modelo de seguridad completo
└── README.md
Base URL: https://openjane.onrender.com
Rate limit: 10 requests / 60 segundos por IP
Validación de tickers: ^[A-Z0-9.\-]{1,12}$
{ "massive_key": "...", "eodhd_key": "..." }Respuesta: score 0-4, clasificación ALCISTA/BAJISTA/TRANSICIÓN, SPY MA50/MA200, HV 20d, yield curve.
{ "massive_key": "...", "eodhd_key": "...", "ticker": "ICE" }Respuesta: precio EOD, VWAP, ADV, rango intraday, liquidez, tendencia, HV 20d.
{ "massive_key": "...", "eodhd_key": "...", "ticker_a": "ICE", "ticker_b": "CBOE" }Respuesta: correlación, beta, Z-score, half-life, entrada/stop/salida, señal LONG/SHORT/NEUTRAL.
{ "eodhd_key": "...", "tickers": ["ICE", "CBOE", "VIRT", "SPY"] }Respuesta: precio EOD más reciente por ticker con fecha. Usado por el Teatro de Operaciones.
{
"eodhd_key": "...",
"positions": [
{ "ticker": "ICE", "invested": 30 },
{ "ticker": "CBOE", "invested": 25 }
],
"date_from": "2025-01-02",
"date_to": "2025-04-30"
}Respuesta: P&L por ticker, valor final, drawdown máximo, serie diaria completa para gráfico.
{ "status": "ok", "service": "OpenJane" }| Comando | Acción |
|---|---|
/regime |
Régimen actual del mercado (score 0-4 + clasificación) |
/spread-analysis [TICKER] |
Microestructura completa: spread, liquidez, ADV, flujo |
/stat-arb [A] [B] |
Par estadístico: correlación, Z-score, half-life, señal |
/vol-surface [TICKER] |
IV vs HV, skew, estructura temporal, prima de vol |
/help |
Menú de comandos |
Todo es código abierto bajo Apache 2.0.
- Nueva skill:
plugins/vertical-plugins/<vertical>/skills/ - Corrección o mejora: abre un issue o PR en GitHub
- Traducción: el glosario y las páginas te esperan
- Reporte de seguridad: ver
SECURITY.md
OpenJane went from idea to production in a single working session with Claude Code.
| Page | URL | Description |
|---|---|---|
| Trilingual landing | / | ES/EN/PT auto-detect, globe switcher |
| Live analysis | /analyze | Regime, microstructure, stat-arb |
| 📊 Historical Backtester | /backtester | P&L with date range, CSV export |
| 🎯 Operations Theater | /portfolio | Paper trading, real EOD P&L |
| Education | /paper-trading-edu | How Jane Street makes money |
| Claude Setup | /claude-setup | Use Jane in Claude.ai for free |
| Glossary | /glossary | 35+ quant finance terms |
Path 1 — Zero friction (Claude.ai)
No API keys. No install. Create a Project on claude.ai, paste the system prompt, talk to Jane.
Path 2 — Real data (Render)
Enter free API keys from Massive.com and EODHD. Live EOD analysis. Keys never stored.
Path 3 — Self-host (Docker)
git clone https://github.com/ussleo/openjane
docker build -t openjane . && docker run -p 8000:8000 openjane| Threat | Mitigation |
|---|---|
| Prompt injection via ticker | Strict regex ^[A-Z0-9.\-]{1,12}$ — 422 on mismatch |
| Key crossover between concurrent requests | HTTP clients instantiated per-request, no global state |
| API flooding | Rate limit: 10 req/60s per real IP (X-Forwarded-For) |
| Keys in logs | Error messages capped at 200 chars, keys never logged |
| Open CORS | Explicit allowed origins (GitHub Pages + Render) |
The server stores nothing. No database. No sessions. No cookies.
See SECURITY.md for the full model.
| Ticker | Company | Why it's a ghost ticker |
|---|---|---|
| CBOE | Cboe Global Markets | Closest proxy: options, vol, microstructure |
| ICE | Intercontinental Exchange | Systemic infrastructure proxy |
| VIRT | Virtu Financial | Public market maker, direct comparable |
| Provider | What it contributes | Credit card |
|---|---|---|
| Massive.com | EOD prices, volume, OHLCV | ❌ None |
| EODHD | MA50/200, HV, yield curve, 150k+ tickers | ❌ None |
O OpenJane foi de ideia à produção em uma única sessão de trabalho com o Claude Code.
| Página | URL | Descrição |
|---|---|---|
| Landing trilíngue | / | ES/EN/PT com detecção automática |
| Análise ao vivo | /analyze | Regime, microestrutura, stat-arb |
| 📊 Backtester Histórico | /backtester | P&L com intervalo de datas, export CSV |
| 🎯 Teatro de Operações | /portfolio | Paper trading, P&L real EOD |
| Educação | /paper-trading-edu | Como a Jane Street ganha dinheiro |
| Claude Setup | /claude-setup | Use a Jane no Claude.ai de graça |
| Glossário | /glossary | 35+ termos de finanças quant |
Caminho 1 — Zero fricção (Claude.ai)
Sem API keys. Sem instalar. Crie um Project no claude.ai, cole o system prompt, converse com a Jane.
Caminho 2 — Dados reais (Render)
Insira suas próprias API keys gratuitas. Análise EOD em tempo real. Keys nunca armazenadas.
Caminho 3 — Deploy próprio (Docker)
git clone https://github.com/ussleo/openjane
docker build -t openjane . && docker run -p 8000:8000 openjane| Provedor | O que oferece | Cartão de crédito |
|---|---|---|
| Massive.com | Preços EOD, volume, histórico OHLCV | ❌ Não |
| EODHD | MA50/200, HV, curva de juros, 150k+ tickers | ❌ Não |
| Ticker | Empresa | Por que é um ghost ticker |
|---|---|---|
| CBOE | Cboe Global Markets | Proxy mais próximo: opções, vol, microestrutura |
| ICE | Intercontinental Exchange | Proxy sistêmico e infraestrutural |
| VIRT | Virtu Financial | Market maker público, comparável direto |
| Investigación, diseño y desarrollo | ussleo + Claude Code (Anthropic) |
| Motor de análisis | Claude Sonnet (Anthropic) |
| Servidor | FastAPI + uvicorn · Render.com (free tier) |
| Frontend | GitHub Pages |
| Datos de mercado | Massive.com · EODHD |
| Licencia | Apache 2.0 |
OpenJane · Apache 2.0 · github.com/ussleo/openjane