7.1 KiB
ETF监控模块需求文档
1. 目标
在现有系统中新增一个与“南向资金监控”“A股资金监控”同级的新模块:
- ETF监控
该模块面向个人投资跟踪使用,核心目标是:
- 实时观察重点宽基ETF与主题ETF的行情变化
- 通过分钟级变化识别资金快速异动
- 通过邮件提醒辅助追踪国家大基金及相关主题方向的动向
当前阶段以“可运行、可观察、可提醒”为主,不以机构级稳定性为目标。
2. 数据来源
2.1 主数据源
- 同花顺数据
2.2 当前数据源约束
当前无同花顺正式机构接口(如 iFinD / 正式API),因此本模块按“个人可用验证版”设计:
- 允许数据源存在不稳定、限流、断连、字段变更风险
- 允许分钟级数据偶发缺失
- 允许部分ETF在个别时段无法刷新
- 邮件提醒按“辅助追踪”定位,不承诺绝对准确
2.3 风险说明
由于当前不是同花顺正式授权接口:
- 不保证长期稳定
- 不保证分钟级数据持续完整
- 不保证字段口径始终不变
- 后续如拿到正式接口,需保留替换数据源的能力
3. 模块定位
ETF模块未来在前端主页面中与以下模块同级:
- 南向资金监控
- A股资金监控
- ETF监控
ETF模块内部先分为两个一级页面:
- 宽基ETF监控列表
- 板块ETF监控列表
后续如有需要,再扩展ETF详情页、历史统计页、国家大基金专题页。
4. 监控范围
4.1 宽基ETF监控列表
当前重点监控以下宽基ETF:
- 上证50ETF
- 沪深300ETF(510300)
- 中证500ETF
- 中证1000ETF(563000)
- 中证2000ETF
说明:
- 若同一指数存在多个ETF产品,后续需固定一个主监控代码
- 当前未明确代码的ETF,开发时可先按主流成交活跃产品确定默认代码,后续可配置化
4.2 板块ETF监控列表
当前重点监控以下主题ETF:
- 证券ETF
- 银行ETF
- 人工智能ETF
- 恒生科技ETF
- 半导体ETF
说明:
- 每个主题后续应明确对应的主ETF代码
- 若一个主题对应多只ETF,当前阶段优先选一只主ETF作为代表产品
5. 页面需求
5.1 前端入口
在首页新增“ETF监控”入口卡片。
点击后进入ETF监控模块。
5.2 ETF监控主页面
页面结构:
- 顶部:返回首页、刷新数据、日期筛选
- 一级Tab:
- 宽基ETF
- 板块ETF
页面整体风格应与现有南向/A股模块保持统一,但模块实现需尽量独立,避免污染现有逻辑。
6. 宽基ETF监控列表需求
支持按日期查看当天数据。
6.1 必要字段
列表字段至少包括:
- 代码
- 名称
- 最新价
- 涨跌额
- 涨跌幅
- 成交额
- 成交量
- 1分钟涨跌幅
- 3分钟涨跌幅
- 4分钟涨跌幅
- 更新时间
6.2 可补充字段
如数据源可获取,可增加:
- 振幅
- 换手率
- 当日最高价
- 当日最低价
- 昨收价
- 成交笔数
6.3 交互要求
- 支持代码/名称搜索
- 支持点击表头排序
- 默认不强制排序,优先保持原始返回顺序
- 支持手动刷新
- 支持当天实时展示
7. 板块ETF监控列表需求
与宽基ETF同级。
7.1 必要字段
字段参考宽基ETF列表:
- 代码
- 名称
- 最新价
- 涨跌额
- 涨跌幅
- 成交额
- 成交量
- 1分钟涨跌幅
- 3分钟涨跌幅
- 4分钟涨跌幅
- 更新时间
7.2 交互要求
- 支持名称搜索
- 支持代码搜索
- 支持点击表头排序
- 默认不强制排序
- 支持手动刷新
8. 分钟级计算需求
由于目标包含3分钟、4分钟涨跌速度判断,系统需具备分钟级数据缓存与计算能力。
8.1 计算口径
若数据源直接提供分钟级行情:
- 直接读取分钟级数据计算
若数据源仅提供实时快照:
- 系统每分钟抓取一次
- 缓存最近若干分钟价格
- 自行计算:
- 1分钟涨跌幅
- 3分钟涨跌幅
- 4分钟涨跌幅
8.2 展示口径
列表中展示的 1/3/4 分钟涨跌幅应统一为百分比。
9. 邮件提醒需求
9.1 邮箱类型
- QQ邮箱
沿用现有项目中的邮件配置能力。
9.2 提醒对象
以下所有ETF均纳入监控:
- 宽基ETF列表中的ETF
- 板块ETF列表中的ETF
9.3 提醒规则
当某只ETF在最近3分钟内:
- 上涨速度过快
- 下跌速度过快
则触发邮件提醒。
9.4 第一阶段建议规则
第一阶段先按配置项实现:
etf_3min_change_alert_percent
例如:
- 3分钟涨跌幅绝对值超过某阈值即提醒
9.5 提醒要求
邮件内容至少包括:
- ETF名称
- ETF代码
- 当前价格
- 当前涨跌幅
- 3分钟涨跌幅
- 触发时间
- 简短说明
后续如需要,可加上“大模型操作建议”。
10. 数据存储需求
10.1 存储原则
ETF数据需要保留实时缓存能力,并按天进行存储。
10.2 建议存储层次
- 实时数据
- 当天最新快照
- 用于前端展示
- 分钟级缓存
- 用于计算1分钟、3分钟、4分钟变化
- 日度数据
- 按天保存每只ETF的收盘或当日最新有效数据
- 为后续历史统计做准备
10.3 存储位置
优先沿用现有项目方案:
- MySQL
同时保留本地文件缓存兜底能力。
11. 后端需求
后端新增独立ETF模块,尽量不影响现有南向/A股逻辑。
建议新增:
- ETF client
- ETF service
- ETF schema
- ETF API route
- ETF alert logic
建议API:
/api/etf/broad/realtime/api/etf/sector/realtime/api/etf/broad/daily/api/etf/sector/daily
如后续有详情页,可再增加:
/api/etf/detail
12. 前端需求
前端新增ETF独立页面,尽量复用现有表格、状态面板、Tab结构,但不直接污染现有A股页面逻辑。
建议新增:
- ETF主页面组件
- ETF数据表组件
- ETF数据获取 composable
- 首页入口卡片
13. 配置文件需求
配置文件中应新增ETF监控相关配置,例如:
etf_enabledetf_realtime_interval_secondsetf_3min_change_alert_percentetf_broad_listetf_sector_listetf_data_source
并支持后续配置:
- ETF主监控代码
- 主题ETF代码映射
- 告警阈值
14. 当前实现边界
当前阶段先做“个人验证版”,边界如下:
- 先做实时展示
- 先做3分钟异动提醒
- 允许同花顺源偶发失败
- 不承诺机构级稳定性
- 不先做复杂回测与策略系统
15. 后续扩展方向
后续可逐步扩展:
- ETF详情页
- ETF历史趋势图
- ETF近5/10/20/30日统计
- 国家大基金专题ETF观察
- 与A股资金联动分析
- 大模型自动摘要与建议
- 正式数据接口切换
16. 当前结论
在无同花顺正式接口的前提下,本模块仍可按“个人验证版”推进开发。
当前开发定位:
- 可以运行
- 可以看实时变化
- 可以做分钟级异动提醒
- 可以辅助跟踪国家大基金相关主题方向
但需接受:
- 数据源不稳定
- 分钟级提醒存在误差风险
- 后续可能需要切换到正式接口重构数据源层