红利投资决策控制台

数据导入

管理行情数据源和手工维护数据。

本机持仓账本

股数和成本保存在当前浏览器 IndexedDB,行情仍来自服务端 Provider。

正在读取本机账本…

代码名称股数成本价DPS目标股数操作

清理浏览器站点数据会删除本机账本,请定期导出 JSON 备份。

下方 Provider 状态是服务端种子持仓的诊断;保存本机账本后,首页会按你录入的代码重新请求行情。

当前数据模式

当前 Provider
SinaRealtimeMarketDataProvider
环境变量
MARKET_DATA_PROVIDER=sina
可用模式
mock(默认):模拟行情,仅用于界面验证
manual-csv:Baostock 同步 CSV 延迟行情(盘后更新)
sina:新浪实时快照(盘中约 3-15 秒延迟)
启用 Sina 实时模式
MARKET_DATA_PROVIDER=sina npm run dev -- --port 3001

设置后首页和持仓详情页使用新浪实时快照价格。网络失败时自动降级为 Baostock CSV 延迟数据,再降级为模拟数据。

启用 Baostock 延迟模式
MARKET_DATA_PROVIDER=manual-csv npm run dev -- --port 3001

读取本地 CSV 日线数据,需先执行 Baostock 同步。不设置环境变量时默认使用模拟数据。

数据源状态

Provider
SinaRealtimeMarketDataProvider
数据性质
实时
覆盖标的
6/6
降级数量
0
更新时间
2026-08-31T15:34:59+08:00

当前行情数据源无降级。

Baostock CSV 同步状态

CSV 覆盖
0/6 只标的
最新数据日期
同步状态
未检测到
数据质量标签
实时

未检测到 CSV 行情文件,请执行同步:

npm run sync:baostock

数据质量检查

提示
DPS 与事件记录不一致
美的集团 持仓 DPS 为 3.8,最新事件 DPS 为 3.5000。本阶段仍以持仓 DPS 计算。
核对 DPS 口径
如果事件 DPS 是最新口径,后续应手工更新持仓 DPS;M1.8 不自动改公式。
提示
DPS 与事件记录不一致
招商银行 持仓 DPS 为 2.016,最新事件 DPS 为 1.9720。本阶段仍以持仓 DPS 计算。
核对 DPS 口径
如果事件 DPS 是最新口径,后续应手工更新持仓 DPS;M1.8 不自动改公式。

Sina 实时行情(可选)

通过新浪财经行情 API 获取 A 股盘中实时快照。服务端请求,不在浏览器端调用外部接口。 网络失败时自动降级为 Baostock CSV 延迟数据,再降级为模拟数据。

数据来源:新浪财经行情 API(非官方接口,非交易所直连)
延迟:盘中约 3-15 秒,盘后返回收盘价
字段:当前价、昨收、今开、最高、最低、行情时间
覆盖:所有 SEED_HOLDINGS 中的标的(6 只)
限制:非官方 API,不保证长期稳定;不做自动轮询,通过刷新页面获取最新快照

文件位置

data/market/daily-bars/{股票代码}.csv

每个文件以股票代码命名,如 600941.csv。 文件放在项目根目录下的 data/market/daily-bars/ 目录中。

CSV 字段

字段格式说明
dateYYYY-MM-DD交易日日期
opendecimal开盘价(元)
highdecimal最高价(元)
lowdecimal最低价(元)
closedecimal收盘价(元)
volumeinteger成交量(股)
示例
date,open,high,low,close,volume
2026-08-04,107.80,108.40,107.20,108.00,1200000
2026-08-05,108.00,108.80,107.90,108.15,1250000
2026-08-06,108.15,109.20,108.00,108.60,1320000

Baostock CSV 同步

可选的本地同步辅助工具。通过 Python 脚本从 Baostock 拉取 A 股日线数据, 写入 data/market/daily-bars/ 目录。 应用仍通过 manual-csv provider 读取 CSV, 不在 Next.js 运行时调用外部 API。

npm run sync:baostock

详细安装与同步说明请参阅 docs/DATA-SYNC.md

默认同步 600941、600900、000333、600036 四只标的,日期范围自动取最近 90 个自然日(end=今天)。 也可直接运行 Python 脚本并自定义参数:

# 默认同步最近 90 个自然日(end=今天) python3 scripts/fetch_baostock_daily.py --codes 600941,600900 # 可选:自定义日期范围或输出目录 python3 scripts/fetch_baostock_daily.py --codes 600941 --start 2026-07-01 --end 2026-08-10 --output-dir /tmp/bars

如果缺少 baostock 依赖,脚本会报错并提示安装命令:

python3 -m pip install baostock

降级规则

  • Sina 模式:网络失败、超时、当前价为 0 时,先降级为 Baostock CSV 延迟数据,再降级为模拟数据。
  • 缺文件:对应股票代码的 CSV 文件不存在时,该标的降级为模拟数据,页面标签显示"模拟"。
  • 行数不足:有效数据行少于 2 行时,无法计算涨跌幅,降级为模拟数据。
  • 格式不合格:日期、价格、成交量格式不合规的行会被静默跳过,不影响其他有效行。
  • 降级不会导致页面崩溃,所有页面均可正常浏览。

分红事件 CSV

data/dividends/events.csv

维护 A 股标的的年度分红事件记录,包括预案日、除权日、派息日、DPS 和状态。 当前阶段(M1.6)仅用于可见性核对,年度分红计算仍使用 SEED_HOLDINGS.dps

字段格式说明
code6位数字股票代码
namestring股票名称
yearinteger分红年度
planDateYYYY-MM-DD预案公告日
exDateYYYY-MM-DD除权除息日
payDateYYYY-MM-DD派息日
dpsdecimal每股分红(元)
statusenumplanned / announced / ex-dividend / paid
notestring备注

投资声明

本系统所有数据仅用于计算口径验证和投资决策辅助,不构成任何投资建议。 手工导入的 CSV 数据由用户自行维护,系统不对其准确性负责。 投资有风险,入市需谨慎。

本应用不是投资建议工具。预测结果基于用户输入假设,不保证未来收益。当前行情可能为模拟或延迟数据。系统不支持自动交易。