AI-powered A-share stock analysis system with multi-agent architecture
Project description
Ashare Analyzer
An intelligent A-share stock analysis system powered by LLMs with multi-agent architecture. Automatically analyzes your watchlist and delivers a "Decision Dashboard" to Discord, Telegram, or Email.
Features
-
Multi-Agent Architecture: Specialized AI agents collaborate to provide comprehensive analysis
- Technical Analysis Agent - Chart patterns, indicators, trend analysis
- Fundamental Analysis Agent - Financial statements, valuation metrics
- News Sentiment Agent - News aggregation and sentiment scoring
- Chip Distribution Agent - Institutional/retail fund flow analysis
- Risk Management Agent - Position sizing, risk assessment
- Portfolio Manager Agent - Final decision synthesis
-
Multi-Source Data: Aggregates data from Akshare, Baostock, Tushare, eFinance, etc.
-
Flexible Notifications: Push results to Discord, Telegram, or Email
-
Multiple AI Providers: Supports 100+ LLM providers via LiteLLM (DeepSeek, OpenAI, Gemini, Claude, etc.)
-
Scheduled Execution: Run daily analysis automatically
Quick Start
Prerequisites
- Python 3.13+
Installation
# Install with uv (recommended)
uv tool install ashare-analyzer
# Or run directly with uvx (no installation needed)
uvx ashare-analyzer
# Or install with pip
pip install ashare-analyzer
Configuration
Create a .env file in your working directory (or use environment variables):
# Copy example config (if you cloned the repo)
cp .env.example .env
# Stock watchlist (comma-separated)
STOCK_LIST=600519,300750,002594
# AI Model (LiteLLM format: provider/model-name)
LLM_MODEL=deepseek/deepseek-reasoner
LLM_API_KEY=your_api_key_here
See Configuration for all options.
Usage
# Run analysis
ashare-analyzer
# Debug mode (verbose logging)
ashare-analyzer --debug
# Analyze specific stocks
ashare-analyzer --stocks 600519,300750
# Override AI model settings via CLI
ashare-analyzer --model openai/gpt-5 --api-key your_key --base-url https://api.openai.com/v1
# Scheduled mode (runs daily at configured time)
ashare-analyzer --schedule
# Dry run (fetch data only, no AI analysis)
ashare-analyzer --dry-run
# Skip notifications
ashare-analyzer --no-notify
# Show help
ashare-analyzer --help
Configuration Details
AI Model Configuration
Supports 100+ providers via LiteLLM format:
| Provider | Model Example | API Key Source |
|---|---|---|
| DeepSeek | deepseek/deepseek-reasoner |
platform.deepseek.com |
| OpenAI | openai/gpt-5.2 |
platform.openai.com |
| Gemini | gemini/gemini-3.1-pro-preview |
aistudio.google.com |
| Claude | anthropic/claude-sonnet-4-6 |
console.anthropic.com |
Full provider list: LiteLLM Providers
Notification Channels
Configure one or more notification channels:
# Discord
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
# Telegram
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
# Email (SMTP)
EMAIL_SMTP_HOST=smtp.gmail.com
EMAIL_SMTP_PORT=587
EMAIL_SMTP_USER=your_email@gmail.com
EMAIL_SMTP_PASSWORD=your_app_password
EMAIL_RECIPIENTS=recipient@example.com
Search Engines (for news)
# Tavily (recommended)
TAVILY_API_KEY=your_tavily_key
# SerpAPI (alternative)
SERPAPI_API_KEY=your_serpapi_key
News Filter Configuration
The news filter uses AI to filter out low-relevance and stale news results.
| Environment Variable | Description | Default |
|---|---|---|
NEWS_FILTER_ENABLED |
Enable/disable news filter | true |
NEWS_FILTER_MIN_RESULTS |
Minimum results after filtering | 3 |
NEWS_FILTER_MODEL |
LLM model for filtering (optional, falls back to LLM_MODEL) | - |
Example:
NEWS_FILTER_ENABLED=true
NEWS_FILTER_MIN_RESULTS=3
NEWS_FILTER_MODEL=deepseek/deepseek-chat
Development
# Format code
ruff format
# Lint code
ruff check --fix
# Type check
ty check .
# Run tests
uv run pytest
# Run tests with coverage
uv run pytest --cov=ashare_analyzer
Docker
# Build image
docker build -t ashare-analyzer -f docker/Dockerfile .
# Run container
docker run -it --env-file .env ashare-analyzer
# Using docker-compose
cd docker && docker-compose up -d
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- ZhuLinsen/daily_stock_analysis - Original project this was forked from
- virattt/ai-hedge-fund - Multi-agent architecture inspiration
- All the open-source libraries that made this possible
⭐ Star this repo if you find it helpful!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters