基金分析、筛选与组合导航工具。项目目标不是找“过去涨得最多”的基金,而是用可复用规则筛出更可能有持续风险调整收益的基金,并结合个人持仓做组合诊断。
- 从
portfolio.yaml读取支付宝基金交易记录 - 使用加权平均法计算当前份额、成本价、市值与浮动盈亏
- 通过 AKShare 拉取基金净值、基础信息、持仓、分红与指数数据
- 使用 SQLite 缓存减少重复请求
- 计算年化收益、年化波动、最大回撤、Sharpe、Sortino、Calmar、Alpha、Beta、信息比率等指标
- 按基金类型做初步分类与评分:短债、纯债、固收+、权益、量化、红利、黄金、QDII、行业主题
- 输出当前组合的基金筛选诊断表
uv run python main.py预热缓存:
uv run python src/update_cache.py打开 notebook 做交互分析:
uv run jupyter notebook请从项目根目录运行该命令。uv 会使用当前项目的 .venv;不要用系统 Python 或全局 Jupyter 启动这个 notebook。
运行本地测试:
uv run python -m unittest discover -s tests规划中的 UI 会调用 Python API,而不是依赖命令行解析。当前入口:
from src.agents import answer_question
answer = answer_question("我的组合现在风险怎么样?")
print(answer)该 API 目前返回纯文本答案,并保留数据来源与“非投资建议”提示。后续 UI 需要更细粒度渲染时,再决定是否升级为结构化返回。
筛选逻辑分为几层:
- 基础过滤:成立时间、规模、类型、基金经理、申购状态
- 绩效评估:收益、波动、回撤、胜率、风险调整收益
- 基准比较:Alpha、Beta、超额收益、跟踪误差、信息比率
- 风险识别:债基回撤异常、主题基金波动过高、持仓集中度过高
- 组合动作:优选、持有观察、谨慎观察、复核、替换候选
portfolio.yaml:基金交易记录data/fund_cache.db:AKShare 数据缓存src/report/:人工或半自动生成的分析报告
- 加入同类基金分位数排名,替代部分静态阈值
- 增加 A/C 份额费率与持有期成本比较
- 增加基金经理任职期、历史产品、变更事件分析
- 增加风格箱、风格漂移和行业暴露分析
- 生成 Markdown/HTML 自动报告
- 补测试:成本法、指标计算、缓存新鲜度、评分边界