daily_stock_analysis: análisis bursátil automatizado con modelos de lenguaje
ZhuLinsen/daily_stock_analysis · 65.635★ · 54.824 forks
Todo lo que hay que saber sobre ZhuLinsen/daily_stock_analysis: un sistema en Python que reúne datos de varios mercados, genera informes de decisión y los entrega por canales de mensajería o tareas programadas.
Qué es daily_stock_analysis
daily_stock_analysis (también denominado DSA en su documentación) es una aplicación de análisis de acciones basada en modelos de lenguaje. A partir de una lista de seguimiento, obtiene cotizaciones, velas, indicadores, noticias, anuncios y datos fundamentales; construye un informe con puntuación, tendencia, posibles niveles de entrada o salida, alertas de riesgo, catalizadores y una lista de acciones. No ejecuta operaciones: incluso la integración documentada de cartera Futu es de solo lectura.
El alcance declarado comprende acciones y ETF de China continental, Hong Kong, Estados Unidos, Japón, Corea y Taiwán. Puede usarse como ejecución puntual de línea de comandos, interfaz Web y de escritorio, servicio FastAPI, contenedor Docker, tarea local o flujo de GitHub Actions. Los resultados se pueden enviar a WeCom, Feishu, Telegram, Discord, Slack o correo electrónico.

La documentación insiste en un límite importante: las fuentes gratuitas, entre ellas AkShare, Baostock y YFinance, pueden imponer límites, cambiar sus interfaces o fallar según la red. Por tanto, un informe es una ayuda de investigación basada en los datos recuperados, no una recomendación de inversión ni una garantía sobre disponibilidad o exactitud.
El origen: un proyecto personal convertido en plataforma de varios mercados
La API de GitHub fecha la creación de ZhuLinsen/daily_stock_analysis el 10 de enero de 2026. Su autor y principal contribuidor visible es la cuenta ZhuLinsen; la API atribuye 442 contribuciones al repositorio, seguida por massif-01 con 159 y freesme con 61 en la consulta realizada.
No se recuperó una entrada de lanzamiento del autor ni una entrevista que explique una historia fundacional más detallada. La narrativa verificable procede, por ello, del propio repositorio: empezó con una orientación a acciones A y posteriormente sus documentos y versiones registran soporte para Hong Kong, Estados Unidos, Japón, Corea y Taiwán, una interfaz Web, automatización y una capa de agentes. La primera versión pública recuperada en las notas de versiones consultadas es la serie v3, lo que prueba evolución activa, pero no permite reconstruir con rigor versiones anteriores.
Filosofía y principios
La propuesta combina tres ideas documentadas:
- Investigación repetible antes que una consulta aislada: una lista de valores, fuentes de mercado y noticias alimentan un panel de decisión estructurado; el usuario puede repetirlo cada día o programarlo.
- Resiliencia mediante varias fuentes: el proyecto combina proveedores de cotizaciones, datos fundamentales y búsqueda de noticias, con conmutación y cortacircuitos cuando una fuente falla.
- Separar automatización y ejecución bursátil: automatiza la recopilación, el informe y el envío; la importación de Futu solo lee cuentas y posiciones y no coloca, modifica, cancela ni desbloquea órdenes.
- Configuración gradual: se puede comenzar con al menos una clave de modelo y fuentes gratuitas, pero la documentación recomienda fuentes con credenciales para ejecuciones programadas y cotizaciones más estables.

Cómo funciona
El flujo normal es: STOCK_LIST o un argumento --stocks define los símbolos; el sistema recupera datos de mercado, noticias y contexto; un proveedor de modelos construye el análisis; y finalmente guarda o distribuye el informe. La interfaz incluye análisis manual, progreso de tareas, historial, informes Markdown, retroprueba, cartera, importación de símbolos y una conversación estratégica con agentes.

Entre sus integraciones documentadas figuran modelos compatibles con OpenAI, Gemini, Claude, DeepSeek, Qwen y Ollama; fuentes TickFlow, AkShare, Tushare, Pytdx, Baostock, YFinance y Longbridge; y búsqueda de noticias mediante Anspire, SerpAPI, Tavily, Bocha, Brave, MiniMax o SearXNG. La prioridad de configuración del enrutamiento de modelos es LITELLM_CONFIG → LLM_CHANNELS → claves heredadas: activar una capa superior hace que las inferiores no se usen.


La versión v3.29.0, publicada el 2 de agosto de 2026, incorporó al producto el núcleo de selección inspirado en AlphaSift, historial de ejecuciones y fuentes, análisis profundo de candidatos y evaluación de resultados de opiniones. Sus notas describen pesos de ejecución acotados que solo se habilitan tras un umbral de 30 muestras evaluadas; es una característica declarada por el proyecto, no evidencia independiente de rendimiento financiero.
Estado oficial y semioficial
El repositorio enlaza un sitio propio, https://dsa.zhulinsen.tech, y publica imágenes oficiales en Docker Hub bajo zhulinsen/daily_stock_analysis. No se recuperó evidencia de inclusión en un mercado oficial de un proveedor de IA, de un aval de una bolsa o de una designación de estándar. El distintivo de GitHub Actions del README solo indica que el repositorio contiene flujos de Actions, no una certificación por GitHub.
La fuerte actividad de bifurcaciones muestra reutilización comunitaria, pero no equivale a respaldo oficial. La página de Docker Hub recuperada mostraba 99.584 descargas, una medida de extracciones de la imagen, no de usuarios únicos ni de instalaciones activas.
El ecosistema
Repositorios del mismo autor
La consulta de repositorios públicos de ZhuLinsen identificó estos proyectos relacionados:

ZhuLinsen/alphasift— motor de selección de acciones con descubrimiento de mercado, ordenación por modelo de lenguaje, puntuación sensible al riesgo y evaluación auditable; 328 estrellas y 189 bifurcaciones. DSA lo integra como una opción de selección configurable.ZhuLinsen/alphaevo— agente de investigación de estrategias y retroprueba con autoevolución, según su descripción; 173 estrellas y 68 bifurcaciones.ZhuLinsen/MiniAgent— demostración de asistente de programación y agente de línea de comandos; 185 estrellas y 40 bifurcaciones. Es un proyecto de otro dominio, no un componente necesario de DSA.ZhuLinsen/FastDatasets— herramienta para generar conjuntos de datos de entrenamiento para modelos de lenguaje; 223 estrellas y 43 bifurcaciones. Tampoco es una dependencia documentada de DSA.
Bifurcaciones, adaptaciones y extensiones
El extremo de bifurcaciones de GitHub devolvió 51.498 bifurcaciones para el proyecto principal. Las de mayor número de estrellas recuperadas fueron zmm1234/daily_stock_analysis (57), herylee/daily_stock_analysis (34), BigHit1/daily_stock_analysis (18) y freesme/daily_stock_analysis (13). Sus descripciones conservan el enfoque de análisis de mercados chinos, Hong Kong y Estados Unidos; la consulta no demostró que constituyan puertos independientes, por lo que se clasifican como bifurcaciones y no como productos separados.
También aparecieron extensiones no marcadas como bifurcaciones:
BZ-coding/dsa-mcpse describe como un puerto de las capacidades de análisis de DSA a un servidor MCP; en la búsqueda recuperada tenía 0 estrellas. Es una extensión comunitaria, no oficial.leonlau/daily_stock_analysis-cise describe como espejo automatizado que construye y publica una imagen Docker desde las versiones de DSA; en la búsqueda recuperada tenía 0 estrellas. No es una distribución mantenida por el autor.AandBorC/daily-stock-analysis-qitianse presenta explícitamente como edición de aprendizaje bifurcada de DSA; tenía 1 estrella y 3 bifurcaciones. Su descripción está en chino, por lo que constituye una adaptación comunitaria no inglesa verificada.
No se recuperaron traducciones comunitarias completas ni un mercado oficial de complementos para DSA. El repositorio principal sí publica documentación oficial en chino simplificado, inglés y chino tradicional.
Números del repositorio
Medición: 5 de agosto de 2026, API de GitHub y Docker Hub.
| Métrica | Valor |
|---|---|
| Estrellas | 60.185 |
| Bifurcaciones | 51.498 |
| Suscriptores reales | 233 |
| Incidencias abiertas según la API | 45 |
| Lenguaje principal | Python |
| Licencia | MIT |
| Creación | 10 de enero de 2026 |
| Último envío recuperado | 5 de agosto de 2026 |
| Última versión | v3.29.0, 2 de agosto de 2026 |
| Descargas indicadas por Docker Hub | 99.584 |
Entre los contribuidores principales que devolvió la API están ZhuLinsen (442), massif-01 (159), freesme (61), Activer007 (29) y birdxs (19). La consulta recuperó los 15 commits más recientes, no una paginación completa, de modo que no se declara un total de commits.
La API general de GitHub replica las estrellas en watchers_count; por eso se informa subscribers_count como suscriptores reales. open_issues_count puede incluir solicitudes de cambios abiertas y no debe leerse como incidencias exclusivamente. El metadato updated_at entregado por la API fue 2026-08-05T21:21:56Z; se transcribe literalmente aunque pueda ser posterior a la hora de ejecución de esta investigación.
Cómo contribuir
La guía oficial solicita buscar primero incidencias existentes y usar las plantillas de error o petición de función. Para código, el flujo es bifurcar, crear una rama como feature/your-feature, confirmar, subirla y abrir una solicitud de cambios contra main. Exige mensajes Conventional Commits y estilo PEP 8 con líneas de hasta 120 caracteres.
Las comprobaciones de integración continua documentadas son backend-gate (compilación, errores críticos de flake8, pruebas y pytest sin red), docker-build y, cuando cambia apps/dsa-web/, web-gate con npm run lint y npm run build. Para probar localmente, la guía indica ./scripts/ci_gate.sh; para el frontal, npm ci, npm run lint y npm run build desde apps/dsa-web/. Los cambios de documentos chinos principales deben indicar en la solicitud si se actualizó su equivalente en inglés.

Cómo lo recibió la comunidad
La evidencia externa directa recuperada es pequeña y no permite afirmar consenso. En Hacker News se localizaron dos envíos que apuntan directamente al repositorio:
- El hilo 48619147, enviado por vantareed el 21 de junio de 2026, obtuvo 9 puntos y 0 comentarios. El título lo describía como sistema de análisis de varios mercados basado en modelos de lenguaje. Acredita descubrimiento, no una opinión positiva o negativa de la comunidad.
- El hilo 48682687, enviado por grajmanu el 26 de junio de 2026, obtuvo 2 puntos y 0 comentarios. Tampoco contiene comentarios que permitan atribuir elogios o críticas.
No se recuperaron comentarios verificables sobre DSA en esos hilos. La búsqueda automatizada de Reddit devolvió una pantalla de inicio de sesión, por lo que no se atribuyen publicaciones a r/programming, r/selfhosted, r/LocalLLaMA, r/devops, r/netsec o r/MachineLearning. Tampoco se recuperó una conversación pública verificable de X, una página de Product Hunt, un episodio de pódcast o una nota de newsletter sobre el proyecto.
Sí se recuperaron resultados de YouTube, entre ellos vídeos titulados “Daily Stock Analysis” del canal zhulinsen, “Zero-cost deployment of an AI trading analyst! daily_stock_analysis Complete Guide” de DevCovery y “Análisis diario de acciones: 32K estrellas en un panel de acciones gratuito con IA” de Pablo finanzas. La búsqueda no expuso de forma fiable los contadores de vistas, por lo que no se estiman. Su existencia confirma material de demostración y tutorial, no una evaluación independiente.
La crítica práctica más concreta procede de la propia documentación: las fuentes gratuitas pueden sufrir límites y cambios; la FAQ recomienda reducir la lista o espaciar solicitudes cuando aparece el cortacircuitos. Para inversión, esa advertencia importa más que los dos envíos sin comentarios: un modelo o una automatización no corrigen datos ausentes, atrasados o limitados.
daily_stock_analysis frente a otras propuestas
No se recuperó una comparación externa con metodología, datos y métricas que permita afirmar qué alternativa es superior. La comparación verificable se limita a proyectos relacionados:
| Propuesta | Relación verificable | Diferencia verificable |
|---|---|---|
ZhuLinsen/alphasift | Ambos se ocupan de selección y análisis de acciones; DSA integra el núcleo de selección inspirado en AlphaSift. | AlphaSift se describe como motor de selección y evaluación; DSA añade informes, interfaz, programación y notificaciones. |
BZ-coding/dsa-mcp | Su descripción declara que porta las capacidades de DSA a MCP. | Es una extensión comunitaria para exponer capacidades; no sustituye el producto principal ni está mantenida oficialmente. |
Bifurcaciones de daily_stock_analysis | Reutilizan el repositorio y conservan su descripción de análisis basado en modelos de lenguaje. | La consulta no verificó cambios técnicos suficientes para tratarlas como competidores independientes. |
Guía rápida de uso
Instalación y primer arranque
Ruta rápida con GitHub Actions. Bifurca el repositorio, abre Settings → Secrets and variables → Actions y configura al menos una clave de modelo, STOCK_LIST y un canal de notificación. Después habilita Actions y ejecuta Daily Stock Analysis con Run workflow. El ejemplo oficial de lista es:
STOCK_LIST=600519,hk00700,AAPL,7203.T,005930.KS,2330.TW
Por defecto, el flujo se programa los días laborables a las 18:00 de Pekín y omite días no bursátiles. Actions no usa el archivo .env; las claves sensibles pertenecen a Secrets y los valores no sensibles, como STOCK_LIST, a Variables.
Ruta local. Requiere Python 3.10 o posterior. El primer arranque oficial es:
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git && cd daily_stock_analysis
pip install -r requirements.txt
cp .env.example .env
python main.py
En .env debe existir al menos una configuración de modelo y una lista de acciones. El primer resultado combina análisis de acciones y revisión de mercado, salvo que se cambie con opciones de línea de comandos.
Ruta Docker. La guía recomienda Docker Compose para una instalación migrable:
docker-compose -f ./docker/docker-compose.yml up -d server
docker-compose -f ./docker/docker-compose.yml logs -f server
El servicio server proporciona API e interfaz Web; analyzer ejecuta tareas programadas. La interfaz se abre normalmente en http://127.0.0.1:8000 cuando se inicia en local. Para una carga normal la guía recomienda 1 GB de memoria por servicio; con 512 MB aconseja un único servicio, una acción y baja concurrencia.
Flujos de trabajo habituales
- Analizar una lista temporal:
Sobrescribe la lista para esa ejecución y genera el informe del conjunto indicado.python main.py --stocks 600519,hk00700,AAPL,2330.TW - Revisión de mercado sin acciones individuales:
Ejecuta únicamente la revisión de mercado.python main.py --market-review - Comprobar obtención de datos sin usar el modelo:
Recupera datos, pero no ejecuta análisis de IA.python main.py --dry-run - Programar análisis local:
Inicia el modo programado, que vuelve a cargarpython main.py --scheduleSTOCK_LISTantes de cada ejecución.
Otros comandos oficiales son python main.py --debug, python main.py --no-notify, python main.py --workers 5, python main.py --webui y python main.py --webui-only. La opción python main.py --portfolio futu lee posiciones LONG desde Futu OpenD y tiene prioridad sobre --stocks y STOCK_LIST; no opera en la cuenta.
Configuración esencial
STOCK_LIST: lista de símbolos. Las comas inglesas son el formato recomendado; la aplicación normaliza también otros separadores habituales.- Una clave de modelo: puede ser
GEMINI_API_KEY,ANTHROPIC_API_KEY,OPENAI_API_KEY,ANSPIRE_API_KEYS,AIHUBMIX_KEYo una configuración de Ollama/canales. Sin una configuración utilizable, no hay análisis de IA. LLM_CHANNELSoLITELLM_CONFIG: para encaminamiento de varios modelos; ambos tienen prioridad sobre las claves heredadas.SCHEDULE_ENABLED,SCHEDULE_TIMEySCHEDULE_TIMES: activan y fijan una o varias horas programadas; el valor por defecto deSCHEDULE_TIMEes18:00.MAX_WORKERS: controla la concurrencia; el valor documentado es 3. En instalaciones de 512 MB, la guía aconseja 1.- Canal de entrega: por ejemplo
TELEGRAM_BOT_TOKENjunto conTELEGRAM_CHAT_ID, oDISCORD_WEBHOOK_URL. Debe configurarse al menos un canal si se quieren avisos automáticos.
Trampas frecuentes y soluciones
- Precios erróneos de símbolos estadounidenses: la FAQ indica que, si persiste el problema, se establezca
YFINANCE_PRIORITY=0para priorizar Yahoo Finance. - Límites o resultados vacíos de fuentes gratuitas: reduzca la lista o aumente el intervalo entre ejecuciones; el sistema intenta cambiar de fuente y usa un cortacircuitos, pero no puede garantizar datos de terceros.
- Claves no vistas por GitHub Actions: guarde claves en Secrets y valores como
STOCK_LISTen Variables; un.envlocal no se aplica a Actions. - Cambios de
.envignorados en Docker: reinicie los contenedores. Para conservar cambios hechos desde WebUI, useENV_FILEapuntando a un archivo escribible de volumen, como/app/data/runtime.env, y evite que variables de inicio con el mismo nombre lo sobrescriban en el siguiente reinicio. - Ollama no responde: use
OLLAMA_API_BASE, noOPENAI_BASE_URL; el modelo debe llevar el prefijoollama/, por ejemploLITELLM_MODEL=ollama/qwen3:8b. - Mensajes demasiado largos: active el envío por acción con
SINGLE_STOCK_NOTIFY=trueo useREPORT_TYPE=simple.
Integraciones y migración
DSA se integra con GitHub Actions, Docker Compose, FastAPI, WebUI y canales de mensajería. Para convertir una instalación local en contenedor, la guía recomienda copiar la configuración a .env y levantar server o analyzer con Compose; los directorios persistentes documentados son ./data/, ./logs/ y ./reports/.
Para llevar capacidades de análisis a un cliente compatible con MCP existe el proyecto comunitario BZ-coding/dsa-mcp, pero no se recuperó documentación oficial que describa una migración o soporte de DSA para él. El cambio entre proveedores de modelo se hace en configuración: puede volver a claves heredadas eliminando LITELLM_CONFIG y LLM_CHANNELS, o usar estas capas para enrutamiento avanzado. No se documentó una herramienta automática de migración desde otra plataforma de análisis bursátil.
Casos de uso y a quién puede ayudar este repositorio
- Personas que siguen valores en más de un mercado pueden centralizar una lista de China continental, Hong Kong, Estados Unidos, Japón, Corea y Taiwán, y recibir un informe diario con contexto de datos y noticias en vez de reunir manualmente cada fuente.
- Quien necesita una rutina de investigación personal reproducible puede ejecutar
--dry-runpara validar datos,--stockspara una consulta acotada y--scheduleo GitHub Actions para automatizar la repetición. Esto resulta útil para seguimiento, no para delegar decisiones de compra o venta. - Equipos que ya trabajan con mensajería operativa pueden enviar los informes a Telegram, Discord, Slack, correo, WeCom o Feishu, manteniendo el cálculo separado de la distribución.
- Desarrolladores de herramientas de IA financiera pueden reutilizar la API, la interfaz Web, el soporte de modelos y el diseño de datos de código abierto MIT; para propuestas de cambio, la guía aporta pruebas de servidor, construcción de Docker y comprobaciones del frontal.
- Usuarios de Futu que buscan análisis de posiciones existentes pueden importar acciones LONG de forma de solo lectura con
--portfolio futu, conservando fuera de la aplicación la ejecución y custodia de operaciones.

Recursos
- Repositorio: https://github.com/ZhuLinsen/daily_stock_analysis
- Documentación e instalación: https://github.com/ZhuLinsen/daily_stock_analysis/tree/main/docs
- Guía completa: https://github.com/ZhuLinsen/daily_stock_analysis/blob/main/docs/full-guide_EN.md
- Configuración de modelos: https://github.com/ZhuLinsen/daily_stock_analysis/blob/main/docs/LLM_CONFIG_GUIDE_EN.md
- Sitio oficial: https://dsa.zhulinsen.tech
- Imagen Docker oficial: https://hub.docker.com/r/zhulinsen/daily_stock_analysis
- Código y contribución: https://github.com/ZhuLinsen/daily_stock_analysis/blob/main/docs/CONTRIBUTING_EN.md
- Historial de versiones: https://github.com/ZhuLinsen/daily_stock_analysis/releases
- Vídeos y demostraciones: https://www.youtube.com/results?search_query=ZhuLinsen+daily_stock_analysis
- Conversaciones en Hacker News: https://news.ycombinator.com/item?id=48619147, https://news.ycombinator.com/item?id=48682687
- Extensión comunitaria MCP: https://github.com/BZ-coding/dsa-mcp
Nota: este artículo combina el README y la documentación oficial de DSA, la API de GitHub, Docker Hub, resultados de Hacker News y una búsqueda de YouTube consultados el 5 de agosto de 2026. Las cifras cambian con el tiempo.
Comentarios