# Daily Stock Analysis

> LLM-driven multi-market stock analysis on a schedule

- Category: Agents & Automation / Finance & Market Agents
- Language: Python
- Licence: MIT
- Repository: https://github.com/ZhuLinsen/daily_stock_analysis
- Website: https://dsa.zhulinsen.tech
- Canonical page: https://ai-tldr.dev/tools/daily-stock-analysis/

## In short

Daily Stock Analysis is a self-hosted research pipeline that puts an LLM between raw market data and the summary you actually read. It sits in the Finance & Market Agents category of the Agents & Automation tools and is open-source, written in Python and licensed MIT. To get started: clone and install.

## Overview

Daily Stock Analysis is a self-hosted research pipeline that puts an LLM between raw market data and the summary you actually read. For each ticker in your watchlist it gathers quotes, K-line history and technical indicators from several data sources, pulls recent news through a search API, and then asks a model to turn all of it into a decision dashboard: a directional read, the technical picture, risk warnings and the catalysts that could move the name. The project is explicit that this is research output, not investment advice.

It covers more than one market. Tickers can be A-shares, Hong Kong, US, Japanese, Korean or Taiwanese listings in the same run — `--stocks 600519,hk00700,AAPL,2330.TW` is a single command in the README — which is unusual for open-source tooling in this space, where most projects stop at one exchange. Beyond the one-shot CLI there is a web workbench for manual analysis, backtests and portfolio tracking, plus an agent mode that answers strategy questions against a library of built-in strategies.

The delivery half matters as much as the analysis half. Rather than leaving reports in a folder, the system pushes finished dashboards to Enterprise WeChat, Feishu, Telegram, Discord, Slack or email, and it is designed to run unattended — either with `--schedule` on a machine you own, or entirely on GitHub Actions, which is how the README frames its zero-cost deployment. It is Python 3.10+, MIT licensed, and speaks to Anspire, AIHubMix, Gemini, OpenAI, DeepSeek, Claude or a local Ollama endpoint for the model half.

## What it does

- Multi-market coverage in one watchlist — A-share, Hong Kong, US, Japan, Korea and Taiwan tickers
- Aggregates quotes, K-lines and technical indicators from several data sources, plus news via a search API
- LLM-written decision dashboard: directional read, technical picture, risk warnings and catalysts
- Web workbench for ad-hoc analysis, backtesting and portfolio tracking alongside the CLI
- Agent mode that answers strategy questions against 15+ built-in strategies
- Pushes finished reports to Enterprise WeChat, Feishu, Telegram, Discord, Slack or email
- Runs unattended via `--schedule` or on GitHub Actions, with no server of your own

## Getting started

Python 3.10 or newer. You need at least one model provider key and at least one notification channel; a news search key (Anspire, SerpAPI, Tavily or similar) is recommended but optional.

1. Clone and install

```bash
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git && cd daily_stock_analysis
pip install -r requirements.txt
```

2. Configure providers and your watchlist

   Copy the example env file and fill in a model provider, a notification channel, and `STOCK_LIST` — the tickers you want analysed.

```bash
cp .env.example .env && vim .env
```

3. Run one analysis pass

   With no flags it works through `STOCK_LIST`; `--debug` prints the full pipeline as it goes.

```bash
python main.py

python main.py --debug
```

4. Target specific tickers, or open the workbench

   `--stocks` overrides the watchlist for a single run and accepts mixed markets. `--webui` starts the browser workbench; `--schedule` keeps the process running and analyses on a timer.

```bash
python main.py --stocks 600519,hk00700,AAPL,2330.TW

python main.py --webui

python main.py --schedule
```

## When to use it

- Wake up to a written brief on your watchlist instead of a wall of tickers
- Track names across several exchanges in one pipeline rather than one tool per market
- Run the whole thing on GitHub Actions when you do not want to host a server
- Ask a strategy question in plain language and have an agent answer it against built-in strategies and market data
