一个只在本机运行的资产配置与基金观察工具。它把 FIRE 资产规划、压力测试和 QDII 限购跟踪放在同一个网页中,所有个人资产数据保存在本地 SQLite 数据库。
项目不连接券商、不读取证券账户、不自动下单,也不会把个人资产数据上传到远程服务器。
QDII 记录器将场外基金与场内 ETF 分组展示,每页 2 只基金,并集中呈现额度、净值、 溢价、数据新鲜度和额度放宽提醒。
- 记录货币、短债、中长债、纳指 100、黄金和数字资产六类人民币市值
- 自动计算纳指 100 权益比例,以及距离 50% ± 10% 再平衡区间的距离
- 模拟市场下跌 10%、30%、50% 后的资产损失和仓位变化
- 按年度支出与预期实际收益率估算资产可持续时间
- 保留每日资产快照,支持 JSON 备份恢复和 CSV 导出
- 分组展示场外基金和场内 ETF
- 记录申购状态、单日限额、估值、净值、场内价格、IOPV 与溢价
- 展示公开年化跟踪误差,并保留来源、截止日期与过期状态
- 日限额提高、恢复申购或额度由零变为正数时生成提醒
- 工作日自动同步,也支持手动刷新和历史记录查看
- 公开行情缺失时保留上一条有效值并标记数据过期
- React + TypeScript + Vite
- FastAPI + APScheduler
- SQLite 本地持久化
- AKShare / 东方财富公开行情适配器
- FastAPI 同源提供前端页面和本地 REST API
生产运行只需一个本机进程,服务固定绑定 127.0.0.1。
- macOS
- Python 3.11+
- Node.js 20.19+
- Git
git clone https://github.com/boyl/fire-qdii-dashboard.git
cd fire-qdii-dashboard
./scripts/install_local.sh
./scripts/start_local.sh安装脚本会创建 Python 虚拟环境、安装前后端依赖并构建前端。启动后浏览器会自动打开:
http://127.0.0.1:4310
安装 macOS LaunchAgent:
./scripts/install_launch_agent.sh移除后台服务但保留本地数据库:
./scripts/uninstall_launch_agent.sh- 数据库默认位置:
data/fire_qdii.sqlite3 - 数据库、日志、虚拟环境和构建产物均被 Git 忽略
- 所有页面和 API 仅绑定
127.0.0.1,局域网中的其他设备也无法直接访问 - 除获取公开基金与指数行情外,应用不会向外发送数据
- 不保存券商账号、交易凭证或自动交易配置
完成安装后,分别启动本地 API 和 Vite 开发服务器:
.venv/bin/uvicorn server.main:app --host 127.0.0.1 --port 4310
npm run dev运行全部本地测试:
.venv/bin/python -m unittest discover -s tests -p 'test_*.py'
npm run lint
npm test自动测试使用固定模拟行情,不依赖实时网络。
QDII 数据来自 AKShare 所适配的东方财富等公开行情页面。公开接口可能延迟、缺失或变更, 采集结果仅作为尽力服务;应用会显示来源时间和数据新鲜度,但不能保证数据完整或实时。
FIRE 估算不包含税费、交易成本、养老金、未来收入和随机收益波动。项目仅用于个人记录与 情景分析,不构成投资建议。
