Skip to content

farfromexact/stats

Repository files navigation

组合管理账户复盘

一个面向组合管理月度复盘的 Streamlit 数据看板。项目把组合宽表、账户维度、投资品种、委内/委外盘子、久期和资产明细证据串在同一个工作流里,用来回答三个核心问题:

  • 组合规模和收益本月/年初以来发生了什么变化?
  • 哪些账户、品种、经理和委受托关系贡献或拖累了结果?
  • 汇总结果能否追溯到单项资产,并暴露数据质量问题?

这个仓库也可以作为个人页面或作品集案例使用:它展示了从原始 Excel 宽表到交互式分析产品的完整实现,包括数据口径沉淀、指标解释、图表交互、异常提示和资产级别 drill-down。

核心功能

  • 总体复盘:汇总当前数据时点市值、年初以来收益、平均资金占用、快照行数和数据质量提示。
  • 趋势图表:展示全价市值、正回购融资余额、当月收益与年初以来累计收益走势。
  • 投资品种分析:按投资品种比较收益贡献和扣收益后的规模变化,并强制纳入股权/不动产主题品种,避免低频资产被 Top/Bottom 截断。
  • 委内/委外比较:并列展示委内配置盘、交易盘、非标,以及人保、泰康、中信建投、中邮证券、富国、华泰、华夏、国泰海通、大成、广发、太平资产香港、太保投资香港、国寿富兰克林等委外账户。
  • 账户与经理拆解:支持账户、投资品种和投资经理局部筛选,帮助从组合结果定位到具体责任维度。
  • 资产证据:把收益贡献、收益拖累、规模增减和年初持仓变化追溯到单项资产。
  • 数据质量检查:集中提示未分配经理、异常收益率、负收益资产、缺失字段等需要人工核对的问题。

数据与口径

  • 月末正式版和临时中间版 Excel 均只放在本地 data/monthly_snapshots/;文件名必须含 YYYYMMDD,该目录下的 Excel 不提交到 Git。
  • 页面以完整日期作为唯一分析键,并明确显示“月末正式版”或“临时中间版”;snapshot_month 只保留为所属月份标签。
  • Git 和 Streamlit Cloud 以 data/snapshot_parquet/ 中的 Parquet 与 manifest.json 作为发布数据;manifest 会校验文件哈希、快照身份、行数和控制数。
  • Excel 仍是本地更新时的权威输入;本地存在 Excel 时,加载器会继续核对源文件哈希,避免忘记重新生成 Parquet。
  • 数据读取与字段标准化在 portfolio_data.py
  • 账户、品种、经理和资产证据汇总在 account_review.py
  • 委内/委外、配置盘/交易盘分类规则在 strategy_books.py;对应的分类回归和月度快照控制数在 tests/test_strategy_books.py
  • 必需字段、可选字段和标准列名集中维护在 config.py

月度数据更新

  1. 将新的月末或临时 Excel 宽表放入本地 data/monthly_snapshots/,并在文件名中保留完整日期;该文件会被 Git 忽略。
  2. 运行 python scripts/build_snapshot_parquet.py,增量更新 data/snapshot_parquet/*.parquetmanifest.json;同日期会替换,其余历史快照会保留。
  3. 运行 python -m unittest,确认控制数和读取回归通过。
  4. 只提交 parquet、manifest 以及相关代码或测试变更,不提交 Excel 和本地分析材料。

本地运行

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
PORTFOLIO_APP_PASSWORD=your-password streamlit run app.py

然后打开 http://localhost:8501,输入 PORTFOLIO_APP_PASSWORD 配置的访问密码。

Streamlit Cloud 部署时,在应用 Secrets 中配置 app_password;仓库本身不保存密码。 应用默认显示密码登录页;只有显式配置 maintenance_mode = true 时才进入维护页。

验证

python -m compileall app.py portfolio_data.py account_review.py strategy_books.py config.py
python -m unittest discover

项目结构

.
├── app.py                         # Streamlit 页面、主题和图表编排
├── portfolio_data.py              # 月度快照发现、读取和标准化
├── account_review.py              # 账户/品种/经理汇总与资产证据
├── strategy_books.py              # 委内/委外与配置盘/交易盘分类
├── config.py                      # 字段映射和全局配置
├── data/monthly_snapshots/        # 本地 Excel 构建输入(Git 忽略)
├── data/snapshot_parquet/         # Git/部署使用的 Parquet 快照与 manifest
└── tests/                         # 分类规则与控制数测试

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages