Terminal local para gestionar candidatas según el método CANSLIM de William O'Neil. El screening cuantitativo se hace en TradingView; esta aplicación cubre lo que TradingView no puede verificar y sirve de centro de mando del pipeline:
- A — crecimiento anual del BPA a 5 años (CAGR calculado sobre el histórico).
- N — producto, servicio o directiva nueva (noticias + juicio anotado).
- I — respaldo institucional (número de instituciones y su evolución).
Además guarda el portfolio, la lista de espera, las noticias por empresa y un diario de decisiones donde queda escrito el porqué de cada compra, venta o descarte.
Cada ficha de empresa incluye también un panel de datos financieros al
estilo Yahoo Finance: valoración, márgenes, balance, cash flow y los
estados financieros de los últimos ejercicios. Se descarga de Yahoo Finance
(vía la librería no oficial yahoo-finance2) y no necesita API key.
npm install
cp .env.example .env # define DATABASE_URL; añade tu FMP_API_KEY si quieres
npx prisma migrate dev # crea prisma/dev.db
npm run db:seed # opcional: dos empresas de ejemplo
npm run dev # http://localhost:3000Importante: el archivo se llama .env (no .env.local) porque es el que lee
automáticamente tanto Next.js como el CLI de Prisma (npx prisma migrate ...).
Como está en .gitignore, no viene creado al clonar el repo — hay que copiarlo
desde .env.example la primera vez.
La base de datos es un único archivo SQLite en prisma/dev.db: para hacer copia
de seguridad basta con copiarlo.
Un servidor local necesita un proceso corriendo mientras lo usas — eso no cambia — pero no hace falta que sea una ventana de terminal que te estorbe. El repo incluye dos lanzadores de doble clic:
iniciar.bat— prepara la base de datos si hace falta, construye la aplicación la primera vez, arranca el servidor minimizado en la barra de tareas y espera a que responda de verdad antes de abrirhttp://localhost:3000en el navegador. Las siguientes veces es casi instantáneo.detener.bat— apaga el servidor cuando termines.
Uso normal: doble clic en iniciar.bat para abrir la terminal, trabaja
desde el navegador, y doble clic en detener.bat cuando acabes (o
simplemente deja la ventana minimizada corriendo si vas a volver pronto).
Para tenerlo como un icono en el escritorio, ejecuta una sola vez (doble clic):
crear-acceso-directo.bat
Esto crea un acceso directo "CANSLIM Terminal" en tu escritorio que apunta a
iniciar.bat y arranca minimizado. A partir de ahí, doble clic en ese icono
= abrir la app, exactamente igual que cualquier otro programa instalado. El
icono que trae por defecto es genérico; si no te convence, clic derecho →
Propiedades → Cambiar icono, y eliges el que quieras.
El panel "Datos financieros" de cada ficha funciona nada más arrancar, sin
ninguna key: usa yahoo-finance2, una librería que lee los mismos endpoints
que la web de Yahoo Finance. Al no ser una API oficial, dos cosas a tener en
cuenta:
- Si Yahoo cambia algo en su API interna, esa librería puede empezar a fallar hasta que se publique una actualización; la ficha de empresa lo indica con un mensaje en vez de romperse.
- Necesita salida a internet normal (sin restricciones de red raras); si ejecutas la terminal detrás de un proxy corporativo puede que haga falta configurarlo a nivel de sistema.
Sin FMP_API_KEY la terminal funciona en modo manual: das de alta los
tickers y marcas los criterios a mano. Con una key de
Financial Modeling Prep
en .env, al añadir una empresa (o al pulsar Actualizar en su ficha) se
descargan perfil, cotización, BPA anual, accionariado institucional y noticias, y
los criterios A e I se calculan solos.
Las respuestas se cachean en la propia base de datos para no agotar el límite de peticiones del plan gratuito; Actualizar fuerza un refresco.
- Radar — das de alta los tickers que pasaron tu screener de TradingView.
- Ficha de empresa — verificas A (tabla y gráfico de BPA con su CAGR), I
(evolución de instituciones y mayores tenedores) y N (marcas con
Nlas noticias que sirvan de evidencia). Marcas a mano C, S, L y M, que ya comprobaste en TradingView. Cualquier criterio que toques pasa a manual y la sincronización deja de sobrescribirlo. - En espera — las que pasan el checklist, con su precio de entrada (pivot) y la distancia a la que cotizan.
- Portfolio — posiciones abiertas con coste, P&L, stop y objetivo.
- Diario — cada decisión con sus razones, filtrable por empresa y por tipo.
⌘K / Ctrl+K enfoca el buscador de tickers desde cualquier pantalla.
Next.js (App Router) · TypeScript · Tailwind CSS 4 · Prisma + SQLite.
Todo corre en local y sin autenticación: está pensado para un único usuario en su propia máquina.
| Comando | Qué hace |
|---|---|
npm run dev |
Servidor de desarrollo |
npm run build |
Compilación de producción |
npm run lint |
ESLint |
npm run db:migrate |
Aplica migraciones de Prisma |
npm run db:seed |
Carga datos de demostración |
npm run db:studio |
Explorador visual de la base de datos |
Los cálculos son una ayuda para la revisión manual, no una recomendación de inversión. Los datos de demostración del seed son inventados.