一个轻量的基金持仓监控工具:
- Web 可视化仪表盘(实时估值、盈亏、持仓分布、趋势图)
- 支持持仓新增/编辑/删除
- 支持一键加仓/减仓(快捷 +100 / -100,可自行改前端)
- SQLite 持久化保存快照,用于历史趋势分析
说明:本项目数据来源于公开网络接口,仅用于学习与个人研究,不构成投资建议。
启动后访问:
fund_pulse/
├── app.py # Flask 应用工厂
├── run.py # 启动入口(初始化 DB + 默认持仓)
├── config.py # 配置
├── database.py # SQLAlchemy 初始化
├── models.py # 数据模型(持仓/快照)
├── services.py # 业务服务(抓取/快照/统计)
├── routes.py # REST API
├── templates/
│ └── index.html # 前端页面(Bootstrap + Chart.js)
├── data/
│ └── fund.db # 运行时生成(建议不提交 Git)
└── fund_pulse.py # 早期终端版本(保留)
- Python 3.9+(建议)
pip install -r requirements.txtpython run.py如需初始化内置“示例默认持仓”(仅首次、且当前持仓为空时生效),启动前设置:
set INIT_DEFAULT_HOLDINGS=1
python run.py然后打开浏览器访问:http://localhost:5000
在启动服务的终端里按 Ctrl + C。
POST /api/refresh刷新全部基金快照并返回列表+汇总GET /api/trend?days=7查询近 N 天盈亏趋势GET /api/holdings查询持仓POST /api/holdings新增/覆盖持仓(传code/name/amount)POST /api/holdings/<code>/adjust加减仓(传delta_amount)DELETE /api/holdings/<code>删除持仓
Web 服务使用的是 TCP 5000。UDP 5000 的占用通常来自其他软件,不影响本项目是否停止。
网络接口可能会波动,失败时页面会显示“失败”状态;可以稍后再刷新。
Apache License 2.0,详见 LICENSE。