专业基金分析CLI工具 - 面向机构客户
Project description
Fund CLI
简介
Fund CLI 是一款面向机构客户的专业基金分析命令行工具,提供基金筛选、业绩分析、组合对比、风险监控等功能。基于开源技术栈构建,支持多数据源接入和AI辅助分析。
v3.1 新特性
多数据源架构
- 统一适配器接口: 支持 Tushare、AKShare、Wind 三大数据源
- 数据源网关: 熔断器 + 降级 + 重试机制,保障数据获取稳定性
- 数据标准化: 跨数据源字段映射、日期格式统一、基金代码标准化
报告引擎增强
- 5种报告格式: HTML、Markdown、PDF、Word、PowerPoint
- 4类报告模板: 单基金研究、投资组合、市场资金流向、合规风控
- Jinja2模板引擎: 支持自定义模板和过滤器
AI分析增强
- 双后端支持: 规则引擎(零配置)+ OpenAI API(高精度)
- 智能分析: 基金/组合摘要、风险提示、投资建议、亮点/风险点提取
v3.0 新特性
- AI Agent 对话 - 基于 LangGraph 的智能对话系统
- 12+ 数据接口工具自动调用
- 多轮对话上下文保持
- 记忆系统(可选 ChromaDB)
- MCP 协议支持 - Model Context Protocol 集成
- 持仓分析 - 行业分布、集中度、风格分析
- 基金经理分析 - 业绩、稳定性、管理规模
- 组合优化 - 均值方差/最大夏普/风险平价
- 归因分析 - Brinson 归因模型
- 监控预警 - 净值变动监控和预警
- 交互式模式 - REPL 交互式命令行
核心功能
- 基金筛选 - 多维度筛选条件,支持业绩、风险、规模等指标
- 业绩分析 - 收益率、夏普比率、最大回撤等专业指标
- 基金对比 - 多基金横向对比分析
- 组合优化 - 基于现代投资组合理论的资产配置优化
- AI分析 (V2.0) - AI辅助投资分析和报告生成
- 多数据源架构 (v3.1) - Tushare/AKShare/Wind 统一接入,熔断降级机制
- 报告引擎 (v3.1) - HTML/Markdown/PDF/Word/PPT 5种格式报告
- AI增强 (v3.1) - 规则引擎 + OpenAI 双后端智能分析
安装指南
系统要求
- Python 3.10 或更高版本
- pip 包管理器
使用 pip 安装
pip install fund-cli
从源码安装
git clone https://github.com/jarrey-0804/fund-cli.git
cd fund-cli
pip install -e ".[dev]"
验证安装
fund --version
fund --help
Docker 部署
# 拉取镜像并运行
docker run --rm -e FUND_DATA_TUSHARE_TOKEN=your_token fund-cli:latest fund --help
# 使用 docker-compose
docker compose up fund-cli
使用教程
基本命令
# 查看帮助
fund --help
# 筛选基金
fund filter --type 股票型 --min-scale 10
# 分析基金
fund analyze 000001
# 对比基金
fund compare 000001 000002 000003
# 查看基金信息
fund info 000001
AI分析功能 (V2.0)
# 配置AI服务
fund ai config --provider qwen --api-key YOUR_API_KEY
# AI基金分析
fund ai summarize 000001
# AI投资建议
fund ai advice --risk-level 中等
# AI风险评估
fund ai risk 000001
报告生成功能 (v3.1)
# 生成单基金研究报告
fund report --type single_fund --fund 000001 --format pdf
# 生成投资组合报告
fund report --type portfolio --funds 000001,000002 --format html
# 列出可用模板
fund list-templates
组合优化
# 均值方差优化
fund optimize mean-variance 000001 000002 000003
# 风险平价优化
fund optimize risk-parity 000001 000002 000003
# 最大夏普比率优化
fund optimize max-sharpe 000001 000002 000003
数据管理
# 更新基金数据
fund data update
# 查看数据缓存
fund data cache info
# 清理缓存
fund data cache clear
API文档
Python API 使用
from fund_cli import FundClient
# 创建客户端
client = FundClient()
# 获取基金信息
fund_info = client.get_fund("000001")
# 分析基金
analysis = client.analyze("000001")
# 筛选基金
funds = client.screen(type="股票型", min_scale=10)
# 对比基金
comparison = client.compare(["000001", "000002", "000003"])
AI分析 API
from fund_cli.ai import AIAnalyzer
# 创建分析器
analyzer = AIAnalyzer(provider="qwen", api_key="YOUR_API_KEY")
# 基金摘要
summary = analyzer.summarize_fund("000001")
# 投资建议
advice = analyzer.investment_advice(risk_level="中等")
# 风险评估
risk = analyzer.risk_assessment("000001")
开发指南
开发环境设置
# 克隆仓库
git clone https://github.com/jarrey-0804/fund-cli.git
cd fund-cli
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或 venv\Scripts\activate # Windows
# 安装开发依赖
pip install -e ".[dev]"
# 安装 pre-commit 钩子
pre-commit install
运行测试
# 运行所有测试
pytest tests/
# 运行带覆盖率
pytest --cov=src/fund_cli tests/
# 运行特定测试
pytest tests/unit/test_core/ -v
代码质量
# 代码格式化
black src tests
# Lint检查
ruff check src tests
# 类型检查
mypy src
项目结构
fund-cli/
├── src/fund_cli/ # 源代码
│ ├── cli.py # CLI入口
│ ├── config.py # 配置管理
│ ├── core/ # 核心模块
│ ├── data/ # 数据层
│ │ ├── adapters/ # 数据源适配器 (v3.1)
│ │ ├── gateway.py # 数据源网关 (v3.1)
│ │ └── normalizer.py # 数据标准化 (v3.1)
│ ├── analysis/ # 分析模块
│ ├── ai/ # AI模块 (V2.0/V3.1)
│ ├── report/ # 报告引擎 (v3.1)
│ ├── commands/ # CLI命令
│ └── utils/ # 工具函数
├── tests/ # 测试代码
├── docs/ # 文档
└── examples/ # 示例脚本
架构设计
多数据源架构
┌─────────────────────────────────────────────────────────────┐
│ DataSourceGateway │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ 熔断器 │ │ 降级策略 │ │ 重试机制 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ TushareAdapter│ │ AKShareAdapter│ │ WindAdapter │
└───────────────┘ └───────────────┘ └───────────────┘
报告引擎架构
┌─────────────────────────────────────────────────────────────┐
│ ReportEngine │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Template │ │ Data │ │ Export │ │
│ │ Engine │ │ Provider │ │ Adapters │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ HTML/Markdown│ │ PDF (Weasy) │ │ Word/PPT │
└───────────────┘ └───────────────┘ └───────────────┘
技术栈
| 类别 | 技术 |
|---|---|
| CLI框架 | Typer, Rich |
| 数据处理 | Pandas, NumPy |
| 数据源 | AKShare, Tushare |
| 量化分析 | QuantStats, PyPortfolioOpt |
| 可视化 | Plotly, Matplotlib |
| AI集成 | LiteLLM, Qwen |
更多文档
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
贡献
欢迎贡献!请查看 贡献指南 了解详情。
联系方式
- 问题反馈: GitHub Issues
- 功能建议: GitHub Discussions
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fund_cli-3.1.0.tar.gz
(1.6 MB
view details)
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
fund_cli-3.1.0-py3-none-any.whl
(182.6 kB
view details)
File details
Details for the file fund_cli-3.1.0.tar.gz.
File metadata
- Download URL: fund_cli-3.1.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82520d3e96a54fabfcce900dcc194a7946ef071e94ea34eefb3ea1a862c59371
|
|
| MD5 |
dabc52fd1a085af1d543b472c694dee0
|
|
| BLAKE2b-256 |
b4623d19e2631da501ca93c7c5e73811828a913718c17217bb37eaac628ba23d
|
File details
Details for the file fund_cli-3.1.0-py3-none-any.whl.
File metadata
- Download URL: fund_cli-3.1.0-py3-none-any.whl
- Upload date:
- Size: 182.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0af634756c0cb386ba2529c515f3f20c1b249788d0905072cbac9abf3934630
|
|
| MD5 |
38b652fb8d7c2c3c952ad6e61421273a
|
|
| BLAKE2b-256 |
d6d12cec0e5902c0fcb738a6601fe4d92eef59ae667885b727660a0eafb51491
|