纯前端的基金实时估值与持仓管理面板,支持添加自选、记录买卖/转换、查看收益与走势,数据存于本地或可同步到 GitHub Gist。
- 实时估值:交易时段约 30 秒刷新,非交易时段约 5 分钟刷新
- 基金搜索:输入 6 位代码或基金名称,支持自动补全
- 持有 / 自选:自动区分「持有」与「自选」,分标签展示
- 买卖与转换:记录申购、买入、卖出;支持基金转换(按份额转出/转入,自动算金额与到账)
- 排序:默认顺序 / 涨跌幅从高到低 / 从低到高 / 今日盈亏排序
- 拖拽排序:卡片可拖拽调整顺序
- 今日区间:显示当日最高/最低估值(需在交易时段有刷新记录)
- 总览数字:总市值、今日盈亏、持仓收益、历史收益(已实现)、累计收益率
- 时间范围:迷你走势支持近 1 周/1 月/3 月/1 年、本周、本月、今年、全部
- 明细弹窗:点击今日盈亏/持仓收益/历史收益可查看各基金明细,基金名可点开基金详情
- 净值走势图:近 1 月 / 近 3 月 / 近半年 / 近 1 年 / 近三年 / 成立以来;红点标注买入、蓝点标注卖出
- 近期净值表:可展开更多、收起,支持复制与导出 CSV
- 快捷操作:买入、卖出、转换、交易记录
- 按日 / 月 / 年:点击日期查看当日盈亏明细,点击月/年查看当月/当年汇总
- 展示方式:可选按金额或按收益率;盈/亏/零用不同背景色区分
- 今天:一键回到今天;明细按金额从大到小排序,基金名可跳转详情
- 交易日期:买卖/转换/初始申购的日期候选为近 5 年交易日 + 未来约 1 月
- 盈亏明细:删除基金后,日历与历史收益明细仍显示该基金(标识「已删除」),合计与列表一致,已删除项不可跳转详情
- 备份与恢复:导出 JSON、导出 CSV、从 JSON 导入(覆盖或合并)
- 云同步:通过 GitHub Gist 上传/下载数据(需配置 Gist ID 与 Personal Access Token)
- 主题:亮色 / 暗色一键切换
主界面
顶部为基金搜索与添加、排序与主题、更多(备份/云同步);下方为投资总览(总市值、今日盈亏、持仓收益、历史收益、累计收益率与迷你走势)与基金卡片列表(持有/自选、估值、收益、买入/卖出/转换/详情等入口)。
| 模块 | 说明 |
|---|---|
| 投资总览 | 总览数字与时间范围切换,点击今日盈亏/持仓收益/历史收益可打开明细弹窗 |
| 基金详情 | 净值走势图(近 1 月~成立以来)、买卖点标注、近期净值表、买入/卖出/转换入口 |
| 盈亏日历 | 按日/月/年切换,盈/亏/零背景色区分,点击日期或月/年可查看明细 |
如需补充更多截图,可在上方主图下或本节的表格后添加图片与简短说明。
- 本地:用浏览器直接打开根目录下的
index.html即可(需保持与css/、js/同级,以便正确加载样式与脚本)。 - 部署:可部署到任意静态站点(如 GitHub Pages),将整个仓库推上去即可访问。
- 依赖:仅通过 CDN 引入 Chart.js,无需安装或构建。
数据保存在浏览器 localStorage,换设备或清缓存会丢失,建议定期用「更多 → 导出 JSON」备份,或配置云同步。
├── index.html # 入口页面
├── css/
│ └── styles.css # 样式
├── js/
│ └── app.js # 主逻辑
├── data/
│ └── sector-candidates.json # 板块候选数据(由 scripts 生成)
├── scripts/
│ ├── extract_sector_candidates.py # 从基金列表提取板块候选(Python)
│ └── extract-sector-candidates.js # 同上(Node)
└── README.md
fundcode_search.js(东方财富基金列表,约 3MB)在.gitignore中,需自行从 fund.eastmoney.com/js/fundcode_search.js 下载后放入js/,再运行上述脚本可重新生成data/sector-candidates.json。
- 前端:纯静态 HTML + CSS + JS,无构建步骤;样式与脚本已拆分为
css/styles.css、js/app.js,便于维护与缓存。 - 图表:Chart.js 4.4.0(cdn.jsdelivr.net)。
- 数据源:基金列表与估值等通过前端请求公开接口获取(见
js/app.js内fetch逻辑);基金类型/板块候选依赖fundcode_search.js或本地生成的sector-candidates.json。 - 云同步:使用 GitHub Gist API,需在「云同步设置」中填写 Gist ID 与 PAT。