Files
zjjk/ETF监控模块需求文档.md
2026-04-08 20:04:40 +08:00

7.1 KiB
Raw Blame History

ETF监控模块需求文档

1. 目标

在现有系统中新增一个与“南向资金监控”“A股资金监控”同级的新模块

  • ETF监控

该模块面向个人投资跟踪使用,核心目标是:

  • 实时观察重点宽基ETF与主题ETF的行情变化
  • 通过分钟级变化识别资金快速异动
  • 通过邮件提醒辅助追踪国家大基金及相关主题方向的动向

当前阶段以“可运行、可观察、可提醒”为主,不以机构级稳定性为目标。


2. 数据来源

2.1 主数据源

  • 同花顺数据

2.2 当前数据源约束

当前无同花顺正式机构接口(如 iFinD / 正式API因此本模块按“个人可用验证版”设计

  • 允许数据源存在不稳定、限流、断连、字段变更风险
  • 允许分钟级数据偶发缺失
  • 允许部分ETF在个别时段无法刷新
  • 邮件提醒按“辅助追踪”定位,不承诺绝对准确

2.3 风险说明

由于当前不是同花顺正式授权接口:

  • 不保证长期稳定
  • 不保证分钟级数据持续完整
  • 不保证字段口径始终不变
  • 后续如拿到正式接口,需保留替换数据源的能力

3. 模块定位

ETF模块未来在前端主页面中与以下模块同级

  • 南向资金监控
  • A股资金监控
  • ETF监控

ETF模块内部先分为两个一级页面

  1. 宽基ETF监控列表
  2. 板块ETF监控列表

后续如有需要再扩展ETF详情页、历史统计页、国家大基金专题页。


4. 监控范围

4.1 宽基ETF监控列表

当前重点监控以下宽基ETF

  • 上证50ETF
  • 沪深300ETF510300
  • 中证500ETF
  • 中证1000ETF563000
  • 中证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. 实时数据
  • 当天最新快照
  • 用于前端展示
  1. 分钟级缓存
  • 用于计算1分钟、3分钟、4分钟变化
  1. 日度数据
  • 按天保存每只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_enabled
  • etf_realtime_interval_seconds
  • etf_3min_change_alert_percent
  • etf_broad_list
  • etf_sector_list
  • etf_data_source

并支持后续配置:

  • ETF主监控代码
  • 主题ETF代码映射
  • 告警阈值

14. 当前实现边界

当前阶段先做“个人验证版”,边界如下:

  • 先做实时展示
  • 先做3分钟异动提醒
  • 允许同花顺源偶发失败
  • 不承诺机构级稳定性
  • 不先做复杂回测与策略系统

15. 后续扩展方向

后续可逐步扩展:

  • ETF详情页
  • ETF历史趋势图
  • ETF近5/10/20/30日统计
  • 国家大基金专题ETF观察
  • 与A股资金联动分析
  • 大模型自动摘要与建议
  • 正式数据接口切换

16. 当前结论

在无同花顺正式接口的前提下,本模块仍可按“个人验证版”推进开发。

当前开发定位:

  • 可以运行
  • 可以看实时变化
  • 可以做分钟级异动提醒
  • 可以辅助跟踪国家大基金相关主题方向

但需接受:

  • 数据源不稳定
  • 分钟级提醒存在误差风险
  • 后续可能需要切换到正式接口重构数据源层