diff --git a/docs/migration/重建迁移章程.md b/docs/migration/重建迁移章程.md new file mode 100644 index 0000000..48c8e13 --- /dev/null +++ b/docs/migration/重建迁移章程.md @@ -0,0 +1,181 @@ +# 小白复盘重建迁移章程 + +> 状态:执行中 +> 建立日期:2026-07-30 +> 产品真相源:`docs/product/小白复盘-完整产品规格说明书.md` + +## 1. 唯一目标 + +在当前仓库的`next/`目录内,从零重建小白复盘。新系统必须完整实现产品规格说明书定义的功能、权限、数据口径、交互状态、视觉和终端行为,同时显著减少重复实现、补丁层和隐式依赖,使后续人工维护可操作。 + +迁移不是对旧系统继续重构,也不是增加新产品功能。旧系统在迁移期间保持可运行,只用于读取业务事实、算法、必要数据和视觉资产。 + +## 2. 不可违反的约束 + +1. 产品规格说明书中的“已确认产品标准”优先于旧代码现状。 +2. 旧系统文件不移动、不批量改名、不作为新系统运行时依赖。 +3. 新系统开发数据库独立,不直接写入旧系统数据库。 +4. 不整文件复制旧`server.py`、`app.js`、样式覆盖层或巨型业务模块。 +5. 每项业务规则只保留一个权威实现。 +6. 全站只有一个浏览器API出口、一个数据网关、一个LLM网关、一个弹窗管理器和一套设计令牌。 +7. 页面只负责取数、组织状态和组合组件,不拥有跨页面业务计算。 +8. 外部数据源只能通过数据网关访问;公开网页源不得进入正式计算。 +9. LLM只解释或编译受控公式,不参与确定性行情、情绪、选股和问天计算。 +10. 用户私有数据的所有读写必须在服务端验证账号所有权。 +11. 兼容层只能用于迁移,必须登记删除条件;最终交付不得保留双实现。 +12. 不以“测试通过”替代产品验收;测试必须实际覆盖对应规格。 +13. 不以“目录已建立”或“接口已预留”宣称功能迁移完成。 +14. 不自动替换NAS生产容器;最终切换在全量验收后单独确认。 + +## 3. 技术与结构决策 + +### 3.1 技术栈 + +- 后端:Python、FastAPI、Pydantic。 +- 数据库:SQLite,显式Repository与有序Migration,不引入ORM双重抽象。 +- 前端:Vue 3、TypeScript、Vite、Pinia。 +- 单元与集成测试:pytest。 +- 浏览器验收:Playwright。 +- 部署:多阶段Docker构建,运行时保持单容器模块化单体。 + +### 3.2 目标一级结构 + +```text +next/ + frontend/ + src/ + shared/ + pages/ + app/ + backend/ + bootstrap/ + http/ + features/ + data/ + database/ + jobs/ + llm/ + config/ + tests/ + tools/ + docs/ +``` + +只预建稳定的一级边界。二、三级业务目录随纵向切片建立,不创建无真实职责的空目录树。 + +### 3.3 依赖方向 + +```text +浏览器页面 -> 前端共享层 -> HTTP接口 +HTTP/后台任务 -> 业务服务 -> Repository/DataGateway/LLMGateway -> 基础设施 +``` + +禁止反向依赖、跨功能直接读表、页面直接访问外部数据源,以及Controller中编写评分和持久化逻辑。 + +## 4. “做减法”验收标准 + +每个迁移切片必须证明: + +- 旧系统同一行为的多个实现已经在新系统收敛为一个。 +- 没有为了快速兼容复制第二份公式、请求逻辑或CSS组件。 +- 新增共享抽象至少有两个真实调用方,或明确消除一个高风险全局出口。 +- 页面专属样式不修改其他页面和全局Shell。 +- 临时代码有明确删除条件,不使用永久`legacy`、`v2-fix`、`override-final`式补丁层。 +- 重建后的文件按职责可读,不用巨型文件重新制造旧问题。 +- 仅统计代码行数下降不能证明成功;功能等价、唯一职责和可删除旧实现同时成立才算减法。 + +建议性文件规模门禁: + +- 前端页面容器目标不超过400行,超出时按稳定子组件拆分。 +- 后端业务服务目标不超过500行,复杂确定性算法可独立成纯计算模块。 +- 单个CSS文件目标不超过600行,按令牌、Shell、共享组件、页面、移动端分层。 +- 超过门禁必须在本章程记录原因,不能静默放宽。 + +## 5. 迁移方法 + +采用纵向切片。每个切片同时交付: + +1. 产品行为与状态。 +2. 权限和账号数据边界。 +3. 后端接口与Schema。 +4. 业务计算与数据访问。 +5. 前端页面、日间/夜间和响应式行为。 +6. 单元、契约、集成和浏览器测试。 +7. 与旧系统和产品规格的差异报告。 +8. Git提交和远端回档节点。 + +禁止先迁移全部HTML、再迁移全部接口、最后补业务逻辑。这会产生长期空壳和无法验收的中间状态。 + +## 6. 执行阶段 + +| 阶段 | 内容 | 完成证据 | 状态 | +|---:|---|---|---| +| 0 | 产品规格、迁移章程、旧系统只读基线 | 文档检查、Git节点 | 已完成 | +| 1 | `next/`最小可运行骨架与工具链 | 前后端启动、健康检查、基础测试 | 未开始 | +| 2 | 配置、错误、日志、数据库迁移、Repository基础 | 迁移回退和错误契约测试 | 未开始 | +| 3 | 账户、会话、权限、会员和系统配置 | 权限矩阵与跨账号测试 | 未开始 | +| 4 | 前端Shell、路由、状态、API、弹窗、主题和令牌 | 1080P/4K/390px Shell截图 | 未开始 | +| 5 | 数据网关、日期、快照、图表和搜索 | 来源/时间/缺失/降级测试 | 未开始 | +| 6 | 情绪周期与五类股池 | 算法固定样本、页面E2E | 未开始 | +| 7 | 涨停表现、市场天梯和板块轮动 | 结构统计与展开滚动验收 | 未开始 | +| 8 | 集合竞价、题材库、人气热榜和龙虎榜 | 生命周期、口径和空态验收 | 未开始 | +| 9 | 智能选股、36套策略、自定义选股和持续跟踪 | 109因子、确定性和隔离测试 | 未开始 | +| 10 | 问师、模型Skill、LLM流式网关 | 上下文路由、去重和回退测试 | 未开始 | +| 11 | 问天观势、观气、观心 | 公式、安全门、动画和历史验收 | 未开始 | +| 12 | 我的复盘、提醒和复盘助手 | 私有数据、汇总和弹窗验收 | 未开始 | +| 13 | 全站移动端重组和无障碍 | 320/390/430/768/横屏验收 | 未开始 | +| 14 | 数据迁移、Docker、备份恢复和性能安全 | 旧库副本迁移、回滚演练 | 未开始 | +| 15 | 全量验收、减法审计和切换准备 | 规格覆盖矩阵、最终报告 | 未开始 | + +阶段编号不会因为上下文压缩重新规划。只有发现产品规格自身矛盾时,才记录决策并调整阶段内容;不得通过新增阶段掩盖未完成工作。 + +## 7. 每阶段质量门禁 + +每次提交前至少执行: + +1. 格式、类型和静态检查。 +2. 受影响模块的单元测试。 +3. API契约和账号边界测试。 +4. 数据库迁移前进/回退测试(涉及数据库时)。 +5. Playwright关键流程(涉及运行时或前端时)。 +6. 日间/夜间和目标视口截图(涉及视觉时)。 +7. 浏览器控制台无未处理错误。 +8. 密钥、Token、日志和生成物扫描。 +9. 与产品规格固定验收案例的可追溯检查。 +10. `git diff --check`和工作区来源确认。 + +## 8. Git与回档 + +- 当前`main`保留旧系统可运行状态和新系统迁移过程。 +- 每个阶段至少一个独立提交,提交信息使用`rebuild(stage-N): ...`。 +- 阶段门禁通过后推送Gitea。 +- 不重写已推送历史,不使用破坏性重置。 +- 大阶段内可有多个小提交,但最终必须有明确阶段完成节点。 +- 规格说明书和本章程的变更与相应行为变更同提交或先提交。 + +## 9. 数据迁移与最终切换 + +- 开发期间只使用旧数据库的只读副本或脱敏样本。 +- 迁移工具可重复运行,并输出逐表数量、校验和、跳过项和失败项。 +- 首次完整迁移后进行账号、权限、共享快照和私有数据抽样比对。 +- 最终切换前停止旧系统写入,执行最终增量迁移,再启动新容器。 +- 保留旧镜像、旧数据库一致性备份和加密密钥,验证回退路径。 +- 未经最终确认,不停止或替换NAS现有容器。 + +## 10. 持续状态记录 + +每完成一个阶段,在本节追加: + +- 提交哈希和推送状态。 +- 实际完成证据。 +- 删除或避免的重复代码。 +- 未完成项和残余风险。 +- 下一阶段入口条件。 + +### 当前状态 + +- 阶段0已完成:产品规格说明书和迁移章程通过结构、表格和密钥扫描。 +- 产品规格说明书包含16个工作区、36套策略、109个因子和85个固定验收案例。 +- 旧系统保持原状。 +- 新系统目录尚未建立。 +- 生产切换明确保留为最终人工确认项。 diff --git a/docs/product/小白复盘-完整产品规格说明书.md b/docs/product/小白复盘-完整产品规格说明书.md new file mode 100644 index 0000000..2a14e40 --- /dev/null +++ b/docs/product/小白复盘-完整产品规格说明书.md @@ -0,0 +1,1995 @@ +# 小白复盘完整产品规格说明书 + +> 文档性质:产品事实与重建规格(Single Source of Product Truth) +> 适用场景:在不读取旧代码、不依赖历史对话的前提下,从零重建“小白复盘” +> 基准日期:2026-07-29 +> 文档版本:1.0 + +## 0. 文档效力与使用方法 + +### 0.1 重建目标 + +本说明书定义“小白复盘”所有必须被用户观察到的行为,包括功能、业务口径、权限、数据真相、交互状态、视觉层级、终端行为、异常处理、持久化边界和验收案例。技术栈、目录、类、函数、数据库品牌和部署工具均可更换,但不得改变本说明书中标为“已确认产品标准”的行为。 + +一个没有任何项目上下文的实现者,应能依照本文完成以下工作: + +1. 还原完整的信息架构、页面与交互。 +2. 还原全部角色权限和用户数据隔离边界。 +3. 还原行情日期、数据来源、缺失和降级规则。 +4. 还原情绪周期、集合竞价、智能选股和问天的确定性计算。 +5. 还原日间、夜间、1080P、4K和移动端的目标行为。 +6. 依据文末验收案例判断重建是否合格。 + +### 0.2 三类状态 + +本文只使用以下三类状态,实施者不得混淆: + +| 状态 | 含义 | 实施要求 | +|---|---|---| +| 已确认产品标准 | 产品最终应具有的行为 | 必须实现;优先级高于旧版本现状 | +| 当前实现基线 | 当前版本已经具备、重建时不得无意丢失的能力 | 应保留;与已确认标准冲突时以已确认标准为准 | +| 待设计或待升级 | 已识别但尚未定稿的能力 | 不得擅自补全为正式功能;应保留扩展位并明确显示不可用或不展示 | + +除明确标注外,本文正文均为“已确认产品标准”。 + +### 0.3 冲突裁决顺序 + +发生冲突时,按以下顺序裁决: + +1. 本文中的已确认产品标准。 +2. 本文中的固定验收案例。 +3. 本文中的当前实现基线。 +4. 视觉参考图和历史版本仅用于辅助比对,不得覆盖前三项。 +5. 旧代码中的偶然行为、补丁行为和已知缺陷不构成产品标准。 + +### 0.4 产品边界 + +小白复盘是面向A股盘前观察、盘后复盘、策略筛选和个人记录的工作台,不是券商交易终端。系统: + +- 不连接券商账户,不自动下单,不代用户执行交易。 +- 不承诺收益,不把统计相关性表述为因果关系。 +- 不使用模拟行情伪装真实数据。 +- 不允许LLM改变确定性计算结果。 +- 不向普通用户暴露数据供应商、模型名称、接口名称、Token、错误堆栈等工程信息。 +- 所有页面底部常驻“股市有风险,投资需谨慎”。 + +## 1. 产品信息架构 + +### 1.1 主工作区 + +侧栏按以下顺序提供16个主工作区,登录后默认进入“情绪周期”: + +| 序号 | 工作区 | 核心目的 | +|---:|---|---| +| 1 | 情绪周期 | 判断全市场情绪温度、方向和六阶段 | +| 2 | 涨停池 | 查看当日封板股票及封板结构 | +| 3 | 炸板池 | 查看触板未封股票及炸板原因 | +| 4 | 跌停板 | 查看跌停风险与风险聚集 | +| 5 | 昨日涨停 | 观察昨日涨停股的次日反馈 | +| 6 | 涨停表现 | 按昨日高度观察晋级、兑现和断板 | +| 7 | 市场天梯 | 查看当日连板梯队与市场高度 | +| 8 | 板块轮动 | 查看多日热点迁移与板块成分 | +| 9 | 集合竞价 | 查看题材承接、竞价异动和成交额变化 | +| 10 | 题材库 | 查看题材排行、基础行情与成分股 | +| 11 | 人气热榜 | 查看同花顺、东方财富及双榜共识 | +| 12 | 龙虎榜 | 查看上榜明细、活跃游资和游资档案 | +| 13 | 智能选股 | 阶段选股、策略选股、自定义选股 | +| 14 | 问师 | 使用蒸馏的思维模型进行复盘对话 | +| 15 | 问天 | 观势、观气、观心三项传统文化观察 | +| 16 | 我的复盘 | 自选、每日复盘、交易日志和个人历史 | + +### 1.2 内部页面与全局能力 + +“策略持续跟踪”是智能选股内部页面,不在侧栏显示;仅由智能选股页面的显著入口进入。 + +全局能力包括: + +- 登录、注册、退出、切换账号。 +- 顶部交易日期选择和页面刷新。 +- 全局搜索和`Ctrl+K`。 +- 日间/夜间模式。 +- 提醒中心。 +- 复盘助手。 +- 账户菜单。 +- 管理员后台刷新和系统管理。 +- 股票、板块、题材、指数行情悬浮预览与详情。 +- 统一弹窗、Toast、加载态、空态、错误态和底部状态栏。 + +## 2. 角色、身份与数据边界 + +### 2.1 身份模型 + +“管理员权限”和“会员状态”是两个独立维度,不是互斥角色: + +- 普通用户:已登录,但没有有效会员。 +- 会员:拥有有效会员订阅。 +- 管理员:拥有系统管理权限。 +- 管理员可以同时是会员;同时满足时,顶部必须同时显示“管理员”和“会员”两个标识。 +- 管理员即使没有会员订阅,也可访问智能功能进行管理和测试,但界面不得因此把其会员状态伪装为“已开通会员”。 + +### 2.2 权限矩阵 + +| 功能 | 普通用户 | 会员 | 管理员 | +|---|:---:|:---:|:---:| +| 共享行情、股池、情绪、板块、竞价、题材、热榜、龙虎榜 | 可用 | 可用 | 可用 | +| 搜索、行情悬浮、详情页 | 可用 | 可用 | 可用 | +| 自选、个股笔记、每日复盘、交易日志、提醒 | 可用 | 可用 | 可用 | +| 智能选股、问师、问天、复盘助手、策略跟踪 | 只展示锁定态 | 可用 | 可用 | +| 配置个人LLM | 不提供 | 不提供 | 不提供 | +| 后台刷新、系统管理 | 不显示 | 不显示 | 可用 | +| 行情凭据、历史回补、模型池、会员管理 | 不显示 | 不显示 | 可用 | +| 原因修订、席位归类、五行行业归类 | 不显示 | 不显示 | 可用 | + +普通用户进入会员功能时,不使用空白页或单独营销页。页面结构与会员一致,顶部显示“仅对会员开放”,下方内容灰化、不可操作,并提供进入“会员状态”的明确入口。 + +### 2.3 用户私有数据 + +以下数据必须带有明确账号所有权;任何读取、更新、删除和导出都必须验证当前账号,两个用户永远不能互相看到: + +- 自选股和自选备注。 +- 每日复盘。 +- 个股复盘笔记。 +- 交易日志。 +- 提醒。 +- 问师对话、置顶和自定义排序。 +- 问天历史与当天解运结果。 +- 自定义选股策略、个人手动执行结果。 +- 策略持续跟踪。 +- 复盘助手对话。 +- 出生日期、时辰、性别及其派生信息。 + +### 2.4 系统共享数据 + +以下数据为平台共享,不按用户重复保存: + +- 行情快照、交易日历、股票主表。 +- 情绪、股池、天梯、板块、竞价、题材、热榜、龙虎榜。 +- 系统内置策略和盘后自动候选池。 +- 平台模型池、系统数据凭据和刷新配置。 +- 管理员维护的事件原因、席位别名和行业归类。 + +## 3. 账户、会员与系统管理 + +### 3.1 注册与登录 + +- 账号名长度3至30位,可使用中文、字母、数字、下划线和连字符。 +- 密码长度8至128位,至少包含字母、数字、符号中的两类。 +- 首个成功注册的账号自动成为管理员。 +- 后续注册账号默认为普通用户。 +- 登录失败只显示安全的用户提示,不说明账号是否存在。 +- 修改密码必须输入当前密码、新密码和确认密码;成功后给出Toast反馈。 +- “切换账号”返回登录界面,但不能删除本账号数据。 + +### 3.2 顶部身份标识与账户菜单 + +- 有效会员显示设计感明确的金色V标识;非会员不显示会员标识或显示克制的“普通用户”状态,不能显示会员。 +- 管理员显示管理员标识;管理员兼会员时两个标识并存且不覆盖。 +- 点击会员/普通用户标识直接打开“会员状态”。 +- 点击账户设置后出现下拉菜单,依次为:个人资料、会员状态、修改密码、切换账号、退出。 +- 五项均为真实可点击操作,不得合并成一个长页面后失去独立入口。 + +### 3.3 个人资料 + +- 可录入出生日期、出生时间和性别。 +- 明确说明个人信息私密性:原始资料加密保存,仅当前账号可见。 +- 问天只读取排盘后的派生信息,不在问天页面回显原始出生日期、时辰和性别。 +- 用户可以删除出生资料;删除后个人合参显示未配置状态。 + +### 3.4 会员状态 + +会员状态页必须包含: + +- 会员说明和普通用户/会员功能对比。 +- 文案:“开通会员后可使用智能选股、问师、问天、复盘助手等智能功能。” +- 开通状态:未开通、有效、停用。 +- 会员到期时间和剩余时长。 +- 今日智能分析已用次数、每日上限、剩余次数。 +- 智能分析加油包入口;当前状态固定为“暂不可用”,不可购买。 + +默认会员每日LLM调用上限为50次,管理员可设置1至1000次。管理员调用不受会员日额度限制。额度当前按成功发起的一次业务调用计数,不按Token计费;未来如改为Token计费,必须另行升级本规格。 + +### 3.5 管理员会员管理 + +- 可按账号开通、续期和停用会员。 +- 时长选项固定为1个月、3个月、12个月、3年、永久。 +- 有效会员续期从现有到期时间继续累计。 +- 已过期账号续期从当前时间重新计算。 +- 永久会员不显示误导性的剩余天数。 +- 列表显示账号、会员状态、到期时间和每日智能分析上限。 + +### 3.6 系统管理 + +系统管理以分类选择切换内容,不把所有功能堆在一个页面: + +1. 行情管理:平台行情凭据、刷新状态、历史数据回补。 +2. 模型池:模型列表、添加/编辑/删除/测试、主模型和辅助模型选择。 +3. 会员管理:会员时长、到期时间、停用和每日LLM上限。 + +模型池规则: + +- 最多20个模型。 +- 每个模型包含显示名称、服务地址、模型标识和密钥。 +- 主模型必选;辅助模型可以关闭。 +- 主模型和辅助模型不能选择同一模型。 +- 每个模型可以独立测试连通性。 +- 密钥保存后不再返回浏览器,只显示已配置状态。 + +## 4. 全局页面骨架与交互 + +### 4.1 PC页面骨架 + +PC端统一采用以下固定骨架: + +- 侧栏宽度200px。 +- 顶栏高度46px。 +- 市场摘要条收起高度约36px。 +- 主内容区上内边距14px、左右内边距16px。 +- 同级模块间距12px。 +- 底部状态栏高度30px。 +- 页面切换时侧栏、顶栏、摘要条和状态栏不得发生位移。 +- 问天可拥有独立星空气质,但必须使用同一外壳、上边距和左右边距。 + +### 4.2 顶栏 + +顶栏包含: + +- 当前页面标题或品牌识别。 +- 交易日期选择。 +- 顶部搜索图标。 +- 提醒中心。 +- 日间/夜间切换。 +- 会员/普通用户身份标识。 +- 管理员标识。 +- 账户菜单。 +- 仅管理员显示“后台刷新”和“系统管理”。 + +图标应使用熟悉、克制的通用图形,不能使用过度花哨、难辨认的装饰图标。图标按钮必须有中文Tooltip和无障碍名称。 + +### 4.3 市场摘要条 + +摘要条显示:市场情绪、涨停、跌停、炸板、封板率、两市成交、数据日期时间。 + +- 市场情绪前的圆点在展开态具有常驻且克制的呼吸动效。 +- 收起态不显示会变形的情绪圆柱。 +- “市场情绪”和其后的“情绪偏弱/偏强”等状态文字字号、基线和字形一致,只通过颜色区分状态。 +- 展开内容使用清晰分组,不把工程字段暴露给用户。 +- 折叠与展开不能改变主内容横向位置。 + +### 4.4 底部状态栏 + +- “股市有风险,投资需谨慎”位于固定状态栏中。 +- 无论表格只有1行、筛选到3板+、展开更多或页面滚动,状态栏位置都不能随数据量上移。 +- 在全页滚动页面中,状态栏可以位于视口底部或页面壳底部,但必须保持一致,不能覆盖内容。 + +### 4.5 弹窗、Toast与加载 + +- 所有模态弹窗默认在视口中心,不能出现在左上角。 +- 同一时间只允许一个无关模态弹窗打开。 +- 支持Escape关闭、遮罩层关闭(危险操作确认除外)和键盘焦点回收。 +- 表单验证错误显示在对应字段附近,并可同时给出简短Toast。 +- “保存成功”“交易记录已保存”等反馈必须是内容自适应Toast,不能生成超长空弹窗。 +- 加载背景必须跟随日间/夜间主题,不能闪白。 +- 主题切换必须原子完成;表格和卡片不能晚一拍变色。 + +## 5. 日期、刷新与行情真相 + +### 5.1 默认日期 + +- 每次打开网站默认选择“最新可用交易日期”,不是沿用浏览器上次停留的过期日期。 +- 默认页面为情绪周期。 +- 选择历史日期后,所有以顶栏日期为准的页面显示该日期数据。 +- 悬浮日K是例外:永远显示最近真实行情,不严格跟随页面历史日期。 + +### 5.2 盘前、盘中、收盘和非交易日 + +| 场景 | 展示规则 | +|---|---| +| 交易日9:15前请求今天 | 显示最近有效交易日15:00收盘快照 | +| 交易日9:15至收盘前 | 显示最近一次真实刷新数据及其真实时间 | +| 交易日收盘后 | 使用当日最终数据,数据时间显示15:00 | +| 周末、节假日 | 显示最近有效交易日15:00收盘快照 | +| 选择历史日期 | 只显示该日期或该日期之前的真实归档,不混入当前实时数据 | +| 当前日期取数失败 | 可沿用最近真实收盘快照,但必须标明实际数据日期和“沿用最近快照” | +| 从未成功同步 | 明确提示等待管理员首次同步,不显示模拟数据 | + +不得把上一交易日数据标成今天,不得为了图形完整制造不存在的今日K线。 + +### 5.3 数据日期时间 + +- 历史日显示`YYYY-MM-DD 15:00`。 +- 今天尚未收盘显示最近一次真实刷新时间。 +- 今天收盘后显示`YYYY-MM-DD 15:00`。 +- 沿用旧快照时,显示旧快照真实日期时间。 +- 页面中的“数据日期”和数据本身必须来自同一快照。 + +### 5.4 刷新语义 + +- 普通“刷新”重新读取最新服务端快照,保持当前页面和合理的筛选状态。 +- 管理员“后台刷新”启动服务端数据同步,但不主动重绘当前用户页面。 +- 数据同步失败不能导致已存在的最后真实快照消失。 +- 后台实时刷新窗口为交易日9:15至11:35、12:55至15:05。 +- 实时快照约每8秒达到一次刷新条件;实际调用频率必须受供应商额度和限流约束。 +- 盘后自动智能选股在15:10之后、当日行情和因子确认完成后执行。 + +## 6. 数据来源、单位与质量标准 + +### 6.1 数据源职责 + +| 数据源 | 可用于正式计算 | 主要职责 | +|---|:---:|---| +| Tushare | 是 | 交易日历、股票主表、日线、估值、财务、资金流、申万行业、涨跌停、9:25竞价、热榜、龙虎榜 | +| iFinD | 是,限许可字段 | 实时快照、动态竞价、分时、图表和经批准的事件补充 | +| 东方财富公开数据 | 否 | 分时图等纯展示兜底 | +| 腾讯公开数据 | 否 | 实时指数观察的纯展示兜底 | +| 本地确定性派生 | 是 | 情绪、选股、问天等计算结果 | + +东方财富和腾讯的公开网页数据不得进入情绪、智能选股、回测或问天的确定性计算。若未来要升级为正式计算源,必须逐字段完成授权、单位、复权、新鲜度和一致性验收,不能整体替换。 + +### 6.2 数据质量元信息 + +每一个进入计算的观测值必须可追溯: + +- 数据实体和交易日期。 +- 真实观测时间。 +- 数据来源。 +- 单位和精度。 +- 复权方式。 +- 覆盖率和新鲜度。 +- 是否最终值、实时值或归档值。 + +计算数据缺失时采用“失败关闭”:不能用口径不同的代理值静默继续,并仍声称原算法已经完成。展示数据缺失时显示“暂不可用”及可理解原因,不生成模拟值。 + +### 6.3 关键覆盖率与新鲜度 + +| 数据集 | 最低覆盖率 | 新鲜度/特别要求 | +|---|---:|---| +| 交易日历 | 100% | 日期链必须连续可验证 | +| 股票主表 | 98% | 退市、上市状态明确 | +| 股票日线 | 98% | 正式计算使用同一复权口径 | +| 日度估值 | 95% | 单位转换一致 | +| 财务指标 | 90% | 必须按公告时间做时点对齐,防止未来函数 | +| 资金流 | 90% | 不得混用不同供应商口径 | +| 申万行业 | 95% | 必须明确申万层级与成分覆盖 | +| 涨跌停事件 | 100% | 触板、封板和连板口径一致 | +| 最终竞价 | 90% | 使用9:25最终竞价 | +| 动态竞价 | 80% | 快照新鲜度目标10秒 | +| 人气榜 | 95% | 标明榜单真实日期 | +| 龙虎榜 | 95% | 区分无上榜与席位无法归类 | +| 分时图 | 100%单标的序列 | 盘中新鲜度目标30秒 | +| 实时指数观察 | 三大指数100% | 新鲜度目标90秒 | + +### 6.4 单位与空值 + +- 价格:元/股。 +- 成交量:股。 +- 底层成交额:元;界面按亿或万统一换算。 +- 涨跌幅、换手率、财务比率:百分比。 +- 总市值和流通市值展示统一为亿元。 +- 日期使用`YYYY-MM-DD`,时间使用24小时制。 +- 金额大于等于1亿元显示`X.XX 亿`,否则显示`X.XX 万`。 +- 表格空值留空;空态说明原因。不得满屏使用`--`掩盖缺失。 +- 数值列右对齐并使用等宽数字;单位进入表头。 + +### 6.5 尚未接入的数据 + +以下能力当前标为“待设计或待升级”,不得伪装已完成: + +- 分析师一致预期、目标价和评级变化。 +- Level-2逐笔成交、逐笔委托、委托队列和未匹配订单。 +- 稳定、完整的政策、隔夜资讯、汇率、利率和商品宏观序列。 +- 隔夜消息面对竞价反应的正式量化。 + +## 7. 全局搜索、行情预览与详情 + +### 7.1 全局搜索 + +- 顶栏提供搜索图标,支持`Ctrl+K`打开。 +- 不提供用户自定义快捷键。 +- 若按键事件已被其他功能占用,提示“Ctrl+K已被其他功能占用,请点击顶部搜索按钮”。 +- 输入后约160毫秒防抖搜索。 +- 结果按股票、板块、题材、指数四组固定顺序展示。 +- 支持名称、代码和合理的模糊匹配。 +- 键盘上下方向键循环移动选择,Enter打开,Escape关闭。 +- 无输入、正在搜索、无结果、请求失败必须分别有明确状态。 +- 点击股票打开完整个股详情;点击板块、题材或指数打开对应实体详情。 + +### 7.2 行情悬浮预览 + +适用于股票代码、板块名称、题材名称和指数入口。 + +- 桌面端悬浮触发;默认优先显示最新日K,可切换分时。 +- 悬浮预览不严格跟随页面选择的历史日期,永远寻找最近真实行情。 +- 鼠标从触发元素移动到浮层时,浮层不能立即消失;离开两者后延迟关闭。 +- 移动端不能依赖Hover,点击进入底部预览或详情。 +- 开盘前不得生成今天的空K线;展示最后一个真实交易日。 +- 盘中只有开、高、低、现价、成交量和成交额均有效时,才可合并当日实时K线。 +- 分时取最近一个有真实数据的交易日;横轴固定9:30至15:00,未发生时段保留空白。 +- 分时以昨收为0轴,显示均价线。 +- 日K上涨红色空心,下跌绿色实心;上下影线不能穿过空心实体。 +- 加载态和错误态跟随主题,不能出现白色闪屏。 +- 图表显示真实数据日期,不向普通用户显示供应商名称。 + +### 7.3 个股详情 + +个股详情必须与原有完整详情功能一致,至少包含: + +- 股票名称、代码、价格、正确涨跌幅、行业、连板信息。 +- 日K/分时切换。 +- 资金流。 +- 涨停、炸板、跌停等事件逻辑或原因。 +- 现有交易数据。 +- 当前账号的个股复盘笔记,支持保存、更新和删除。 +- 添加/移除自选。 +- 进入“观势”的入口。 + +个股涨跌幅必须使用对应交易日的正确前收盘价计算,不得使用错误基准或把实时价格与历史前收混用。 + +### 7.4 板块、题材与指数详情 + +- 展示名称、代码或唯一标识、涨跌幅、现有交易指标、日K和分时。 +- 行情图默认日K,分时范围和0轴规则与个股一致。 +- 不显示个股事件逻辑。 +- 不显示个股复盘笔记。 +- 题材详情另外显示成分股列表。 + +## 8. 情绪周期 + +### 8.1 页面目标与结构 + +情绪周期用于说明市场整体处于什么温度、朝哪个方向变化、位于六阶段中的哪一阶段。页面采用全页滚动,保证1920×1080下交易日明细具有可用高度。 + +页面包含: + +1. 温度走势图:情绪温度、五日均线和阶段转折标记。 +2. 当前阶段:阶段、置信度、温度、较前日、升降温、封板率、涨停/炸板、昨日涨停反馈和样本数。 +3. 五维评分构成。 +4. 交易日明细:支持10日、20日、60日切换,默认20日。 + +已确认删除“判定口径”独立模块。当前阶段黄色警示只描述情绪,例如“情绪指标继续走弱”,不得夹带“提高选股门槛”“接受无候选”等选股建议。 + +### 8.2 情绪温度总公式 + +总温度由五项组成: + +| 维度 | 权重 | +|---|---:| +| 市场宽度 | 20% | +| 涨停生态 | 25% | +| 赚钱效应 | 30% | +| 连板结构 | 15% | +| 成交活跃度 | 10% | + +最终温度先计算五项加权和,再乘系统健康门控,并执行极端风险上限。分数四舍五入为0至100整数。 + +### 8.3 基础统计 + +- 市场宽度 = 上涨家数 ÷(上涨家数 + 下跌家数)×100。平盘家数不进入分母。 +- 封板率 = 涨停数 ÷(涨停数 + 炸板数)×100。 +- 昨日涨停红盘率 = 昨日涨停且今日涨幅>0的数量 ÷ 昨日涨停样本数 ×100。 +- 晋级率 = 昨日涨停且今日结果为晋级的数量 ÷ 昨日涨停样本数 ×100。 +- 重亏率 = 昨日涨停且今日涨幅≤-5%的数量 ÷ 昨日涨停样本数 ×100。 +- 梯队完整度 = 从首板到最高板之间实际存在的高度层级数 ÷ 最高板高度 ×100。 +- 近20日成交基线只使用此前有效交易日,不混入未来数据。 + +### 8.4 自适应评分 + +- 历史样本不足20个交易日:使用固定锚点线性评分。 +- 历史样本达到20日:自适应得分 = 固定锚点得分×25% + 最近最多250日历史百分位×75%。 +- 百分位采用“小于当前值的样本数 + 等于当前值样本数×0.5”除以样本数。 + +固定锚点: + +- 涨停强度:涨停10家映射0分,100家映射100分。 +- 跌停压力:跌停0家映射0分,50家映射100分,之后反向为跌停缓解分。 +- 封板质量:封板率35%映射0分,90%映射100分。 +- 最高板:1板映射0分,7板映射100分。 + +### 8.5 五维细项 + +涨停生态: + +- 涨停强度35%。 +- 封板质量35%。 +- 跌停缓解30%。 + +赚钱效应: + +- 昨日涨停红盘率30%。 +- 昨日涨停涨幅中位分25%,中位分 = 截断到0至100的`50 + 中位涨幅×7`。 +- 昨日涨停平均涨幅分10%,平均分 = 截断到0至100的`50 + 平均涨幅×6`。 +- 晋级率分20%,晋级率×2.5后截断到0至100。 +- 尾部安全15%。尾部安全 = 重亏安全×70% + 跌停安全×30%;重亏安全=`100-重亏率×3`,跌停安全=`100-昨日涨停中跌停占比×700`,均截断到0至100。 +- 昨日涨停样本为0时,赚钱效应暂记50分并明确标注缺少样本。 + +连板结构: + +- 最大高度分30%。 +- 晋级密度分25%,晋级密度 =(二板数 + 三板及以上数)÷ 涨停数;评分为密度×3后截断。 +- 三板以上分25%,结合三板以上密度固定分和历史百分位。 +- 梯队完整度20%。 + +成交活跃度: + +- 当日总成交额相对近20日均值70%;金额评分=`50 +(当日/均值-1)×100`后截断。 +- 涨停股成交额占市场成交额30%;占比×20后截断。 + +系统健康门控: + +- 系统健康度 = 市场宽度×60% + 跌停缓解×40%。 +- 健康度≥35时门控系数为1。 +- 健康度<35时,门控系数=`0.35 + 健康度/35×0.65`。 +- 市场宽度≤15且跌停≥100时,最终温度上限15。 +- 市场宽度≤25且跌停≥50时,最终温度上限24。 + +### 8.6 标签、方向与阶段 + +温度标签: + +- 80及以上:情绪高涨。 +- 60至79:情绪偏强。 +- 40至59:情绪中性。 +- 20至39:情绪偏弱。 +- 20以下:情绪冰点。 + +方向使用当前分数相对最近连续最多3个交易日均值的变化: + +- 大于3:升温。 +- 小于-3:降温。 +- 其余:持平。 + +六阶段为冰点、修复、发酵、高潮、分化、退潮。阶段必须经过状态机确认,不能把温度区间直接等同于阶段: + +- 冰点或退潮转修复:单日升温≥6、温度≥25、系统健康度≥24。 +- 修复转发酵:发酵原始信号连续两个交易日成立;单日偶发不能直接切换。 +- 高潮:温度≥80、赚钱效应≥60、系统健康度≥60、涨停生态≥70。 +- 高潮条件消失但未崩塌:转分化。 +- 发酵温度跌破45且继续转弱,或系统健康度明显下降:转退潮/分化。 +- 任何阶段触发极端冰点条件:转冰点。 +- 首个连续交易日可采用原始阶段信号,但必须标明样本不足。 + +### 8.7 明细表 + +交易日明细必须至少包含日期、温度、阶段、方向、红盘率、封板率、涨停、炸板、跌停、最高板、成交额和昨日涨停反馈。温度、阶段、方向和红盘率列的表头及单元格对齐方式一致;数值右对齐,阶段文本左对齐。 + +## 9. 市场股池与市场结构 + +### 9.1 通用表格规则 + +- 代码和股票名称分列,代码在名称左侧。 +- 第一列标题为“序号”,不显示`#`。 +- 主要数值列宽度按内容类型等宽;原因、逻辑、线索列可更宽。 +- 所有列合计占满可用宽度,不能前部拥挤、右侧大量空白。 +- 首封、最后封板、首次触板等时间列统一对齐。 +- 表头数值列可排序;支持代码/名称/板块搜索和CSV导出。 +- 表格日间、夜间均不得出现白边或主题延迟。 + +### 9.2 涨停池 + +- 筛选:全部、首板、2板、3板+。 +- 表格:序号、代码、股票、连板、涨幅、价格、板块、首封、最后封板、开板次数、换手率、成交额、封单额、涨停原因。 +- 右侧显示连板高度和热点板块。 +- 搜索和筛选后表格仍保持统一列宽。 + +### 9.3 炸板池 + +- 表格:序号、代码、股票、现价涨幅、距涨停、价格、板块、首次触板、开板次数、换手率、成交额、炸板原因。 +- “距涨停”使用当日正确涨停价格计算。 + +### 9.4 跌停池 + +- 表格:序号、代码、股票、跌幅、价格、板块、换手率、成交额、连续跌停天数、风险线索。 +- 页面显示风险行业聚集提示,但不得把聚集统计写成个股确定性结论。 + +### 9.5 昨日涨停 + +- 结果分类:晋级、红盘、断板、炸板、跌停。 +- 摘要筛选:全部、晋级、红盘、断板、炸板+跌停。 +- 红盘兑现率 = 昨日涨停中今日涨幅>0的数量 ÷ 昨日涨停总数。 +- 表格:序号、代码、股票、昨日高度、今日涨幅、今日结果、当前高度、板块、涨停逻辑。 + +### 9.6 涨停表现 + +- 按昨日连板高度显示今日晋级、红盘、断板、炸板和兑现情况。 +- 高度不限制为5板;超过5板时上方结构动态扩展或折行,不能挤出右侧“今日结论”。 +- 下方市场宽度显示上涨、平盘、下跌、红盘率及比例条。 +- 右侧根据真实统计生成当天结论。 + +### 9.7 市场天梯 + +- 按首板、2板、3板、4板、5板+形成梯队。 +- 支持按封板时间、开板次数排序。 +- 每层默认限制显示数量,提供“展开更多”和“收起”。 +- 股票单元格在同一栅格中等宽;不是每行只放一个单元格。 +- 展开内容超过视口时页面正常滚动。 +- 右侧显示市场高度、梯队完整度和昨日梯队到今日的结构提示。 + +### 9.8 板块轮动 + +- 展示最近9个交易日,每日Top12热点。 +- 支持由远到近、由近到远排序。 +- 点击板块后,同一板块在其他日期中高亮,便于观察连续性。 +- 强度色阶:90及以上高、70至89中、70以下低;使用纯色背景,不增加高亮阴影。 +- 下方显示所选板块在目标交易日的有效申万成分股,不再显示“当日轮动明细”。 +- 成分表:序号、代码、股票、涨跌幅、开盘、收盘、成交额、行情状态。 +- 页面采用全页滚动。 + +## 10. 集合竞价 + +### 10.1 产品定位 + +集合竞价中心的核心不是9:30后的静态涨跌分类,而是: + +1. 监控昨日热门强势题材今天的承接,以及今天是否出现新强势题材。 +2. 在昨日涨停、昨日炸板、热榜和自选范围内识别竞价异动;这是核心能力。 +3. 观察集合竞价市场总成交额及多日变化。 +4. 隔夜消息面的竞价反应;当前只保留能力定义,未接入稳定消息接口时不作为主模块。 + +### 10.2 生命周期 + +| 时间 | 状态 | 行为 | +|---|---|---| +| 9:15前 | 待开始 | 显示前一交易日归档,并明确不是今日竞价结果 | +| 9:15至9:25 | 观察中 | 有iFinD许可数据时展示动态快照 | +| 9:25至9:30 | 筛选确认 | 使用9:25最终竞价快照形成结果 | +| 9:30后 | 已归档 | 冻结当日竞价结果,用于复盘 | +| 历史日期 | 历史归档 | 只读取该日归档 | + +iFinD动态竞价不可用时,不能把Tushare最终竞价伪装成动态监控;可在9:25后使用最终竞价,或显示已归档数据。 + +### 10.3 候选基数 + +- 昨日涨停池。 +- 昨日炸板池。 +- 同花顺和东方财富热榜;只纳入热榜前20。单榜排名超过10、又非双榜共识且非已有市场核心时剔除。 +- 自选股单独列出,不与公共候选混为同一身份。 + +市场核心标签包括:人气前5、三板以上、市场最高板、题材核心、市场领涨。所有市场核心必须保留,不能因普通候选数量上限被删除。 + +### 10.4 预期中枢 + +基础中枢: + +- 无连板基准:0.5%。 +- 昨日首板:1.5%。 +- 昨日2板:3.0%。 +- 昨日3板:4.0%。 +- 昨日4板及以上:5.0%。 +- 双榜共识:加0.8个百分点。 +- 单榜前10:加0.7个百分点;其他榜位按名次递减。 +- 总预期中枢上限6.5%。 + +成交确认修正: + +- 竞价量比≥2:加0.6;≥1.2:加0.3;<0.6:减0.5。 +- 竞价换手率≥0.15%:加0.25;<0.03%:减0.25。 +- 竞价成交额≥2000万元:加0.3;≥500万元:加0.15;<100万元:减0.3。 + +实际竞价涨幅相对修正后预期中枢: + +- 高至少1.5个百分点:超预期。 +- 低至少1.5个百分点:低于预期。 +- 其余:符合预期。 + +### 10.5 关注分与重点异动 + +关注分满分100,由以下部分组成: + +- 身份:14至35分。 +- 预期偏差:最多30分。 +- 量比:最多10分。 +- 成交额:最多6分。 +- 换手:最多4分。 +- 题材:最多15分。 + +重点异动规则: + +- 所有市场核心直接保留。 +- 非核心关注分≥55且标签不是“符合预期”时保留。 +- “符合预期”中按关注分最多保留前20。 +- 非核心整体以30只为目标上限,市场核心不受该上限影响。 + +### 10.6 一字板和涨跌幅制度 + +- 竞价价格封于当日涨停价时,单独进入“竞价一字”。 +- 一字板不参加普通异动评分和排序。 +- 新规ST股票涨跌幅限制按10%,不是旧制度的5%。 +- 其他股票按交易所、板块和上市状态计算当日有效涨跌停价。 + +### 10.7 页面布局与核对 + +- 数据集顺序:重点异动、我的自选、全部候选、竞价一字。 +- 二级预期筛选:全部、超预期、符合预期、低于预期;只作为筛选标签,不显示会误导的全池数量。 +- “竞价覆盖、重点异动、竞价一字、竞价成交额”摘要集成到数据集标签同一行最右侧,右侧不留多余间距。 +- 支持搜索和CSV导出。 +- 右侧展示题材承接、今日新线索、近10日竞价成交额和5日均值。 +- 删除占空间的隔夜消息反馈主模块;仅在未来数据可用后重新设计入口。 +- 当日竞价成交额摘要与柱状图必须使用同一时间、同一股票范围、同一去重口径,禁止一个显示169.33亿而图形显示另一口径。 + +## 11. 题材库、人气热榜与龙虎榜 + +### 11.1 题材库 + +- 左侧题材排行,右侧为题材基础行情和成分股。 +- 左侧题材排行宽度小于右侧,为成分股留出主要空间。 +- 固定题材日K模块取消。 +- 悬浮左侧题材名称时,显示与个股悬浮窗同规格的日K/分时预览。 +- 前三名强化名次和热度层级,但不使用夸张装饰。 +- 支持按题材名称或代码搜索。 +- 题材基础指标至少包括:成分股数、有行情数、上涨数、下跌数、换手率。 +- 成分股表:序号、代码、股票、涨跌幅、收盘价、成交额。 +- 切换题材时,右侧加载骨架必须随日间/夜间主题变化,不能闪白。 +- 无题材行情和无成分数据是两个不同空态,必须分别说明。 + +### 11.2 人气热榜 + +- 三个来源视图:双榜综合、同花顺、东方财富。 +- 顶部摘要:同花顺热度Top3、东方财富热度Top3、双榜共识。 +- 三个摘要模块之间没有白色衬底、连接阴影或视觉缝隙;模块自身保留既定填充色。 +- 综合排序中,同花顺排名贡献权重0.5,东方财富排名贡献权重0.25,双榜共识优先。 +- 双榜缺一时仍显示单榜真实结果,但不得伪装为双榜共识。 +- 当日榜单尚未生成时可显示最近有效榜单,但必须标注实际榜单日期。 +- 支持按代码、名称和概念搜索。 + +### 11.3 龙虎榜每日明细 + +- 视图:每日明细、游资档案。 +- 每日摘要、全部/净买入/净卖出/待归类筛选、搜索。 +- 活跃游资模块固定在其区域,不跟随操作明细内部滚动。 +- 仅“当日操作明细”内部滚动;游资介绍文字应有可读字号。 +- 点击游资后显示该游资当日操作明细。 +- 表格最左侧依次为序号、代码、股票,之后为买卖方向、金额、净额、上榜原因等实际字段。 +- 管理员可把待归类营业部设置为游资别名;同名席位合并统计。 + +龙虎榜空态必须区分: + +1. 当日没有股票上榜。 +2. 当日有上榜股票,但接口席位明细缺失。 +3. 当日有席位数据,但没有可识别游资,全部处于待归类。 +4. 数据接口请求失败。 + +不能在“有72/76只股票上榜”时只显示“暂无龙虎榜数据”。应显示实际股票数、席位数据覆盖情况、待归类数量,并提供查看前一交易日和重新检查。 + +### 11.4 游资档案 + +- 名录以Tushare收录席位和管理员归类为基础。 +- 页面采用左侧名录、右侧详情结构。 +- 详情显示游资名称、简介、关联营业部、近期可用统计和数据覆盖说明。 +- 不使用超长弹出框。 +- 当前重要性低于每日龙虎榜,但入口和数据结构保留。 + +## 12. 智能选股 + +### 12.1 权限与模式隔离 + +智能选股是会员功能,分为三个互相独立的模式: + +1. 阶段选股。 +2. 策略选股。 +3. 自定义选股(原“量化选股”)。 + +三个模式的选择状态、加载状态和候选结果分别保存。刷新页面、切换模式、切换阶段或切换策略后,不能让一个模式的结果覆盖另外两个模式,也不能让结果同时出现在三个界面。 + +### 12.2 阶段选股 + +- 每个交易日15:10后,行情和因子定格后由后台自动执行。 +- 用户不手动“执行选股”,不手动“同步因子数据”。 +- 取消“更换策略”和“编辑/自定义阶段策略”。 +- 当前情绪阶段只影响阶段选股,不影响策略选股。 +- 六阶段各有一套策略:冰点抗跌先手、修复先锋、主线发酵跟随、高潮核心去后排、分化承接回流、退潮防守观察。 +- 竞价强势确认作为独立的竞价阶段策略。 +- 页面显示四步:阶段识别、策略匹配、执行选股、结果与回测。 +- 四步状态必须来自真实任务状态;未执行、执行中、失败、已完成分别显示,不能永远是对号。 +- 当前阶段卡与匹配策略卡紧凑排列;情绪温度信息只显示一次,不能重复两套文案。 +- 无结果且数据完整时显示“暂无符合条件个股”;数据缺失时列出缺失字段。 + +### 12.3 策略选股 + +- 盘后由后台对每套内置精选策略独立运行。 +- 任何精选策略都不受当前情绪阶段门控。 +- 适用阶段只作为说明和风险提示,不决定是否执行。 +- 每套策略均显示适用环境、失效风险、数据状态、准入条件、评分权重、频率和风险等级。 +- 数据不完整时显示具体缺少的数据;不能将缺数据伪装为“暂无信号”。 +- 数据完整但无股票通过时显示“暂无符合条件个股”。 + +页面结构: + +- 左侧策略库:搜索、流派筛选、列表/图标排列。 +- 左侧小卡只显示标题、流派、等级/风险和信号状态,避免策略越多卡片越大。 +- 右侧策略详情:完整说明、适用环境、失效风险、条件和权重。 +- 下方候选结果:明确标注策略来源、选股日期和数据状态。 +- 点击策略卡本身即切换高亮与详情,不要求再次点击“条件”。 +- 条件详情如用弹窗,必须在视口中心。 + +### 12.4 自定义选股 + +自定义选股由用户手动执行,包含: + +- 因子与权重。 +- 过滤条件。 +- 上市天数下限。 +- 输出数量。 +- 最低综合分。 +- 剔除ST/退市开关。 +- 自然语言转换为受控公式。 +- 直接编辑、保存和删除个人公式。 +- 滚动回测。 + +交互要求: + +- 因子使用清晰分组,权重可用滑块或数值输入控制。 +- 权重总和必须校验;不等于100%时禁止执行并说明。 +- 过滤条件模块保持紧凑,不能占据整页主要面积。 +- 成交额、站上20日线等输入控件按内容自适应宽度,后方允许留白。 +- 执行按钮使用正常命令宽度,不能横跨整页形成巨长按钮。 +- 候选表必须在标准桌面宽度显示完整核心列;次要列可进入详情或局部横滚。 + +### 12.5 统一筛选与评分 + +所有阶段策略、精选策略和自定义策略按以下顺序执行: + +1. 确定选股日期和可用因子快照。 +2. 执行股票范围:上市状态、上市天数、是否排除ST/退市。 +3. 检查本策略所有过滤字段和评分字段。任一必需字段缺失,该股票不得进入候选,并计入数据缺失统计。 +4. 所有过滤条件同时成立的股票进入评分池。 +5. 对每个评分字段在当前合格股票横截面内计算百分位。 +6. “高优”因子值越大百分位越高;“低优”因子值越小百分位越高。 +7. 综合分 = 各因子百分位×权重之和 ÷ 权重总和。 +8. 低于策略最低综合分的股票剔除。 +9. 按综合分降序取策略规定的最大数量。 +10. 输出逐股综合分、主要贡献、风险提示、策略来源和数据日期。 + +若有历史回测: + +- 至少20个有效历史样本才可显示相对稳定的历史估计。 +- 历史样本≥20时,历史估计 = 回测胜率×65% + 当次综合分×35%。 +- 样本不足时明确标注“小样本”,不能用精确百分数营造可靠性。 + +### 12.6 自动执行、缓存与确定性 + +- 相同策略、相同选股日期、相同因子版本和相同策略版本必须得到相同结果。 +- 页面刷新不能重新随机执行,也不能清空已归档结果。 +- 数据同步完成后,后台任务以幂等键防止同日重复写入。 +- 结果记录策略版本、因子快照版本、实际数据日期、完成时间、数据覆盖率和失败原因。 +- LLM不参与候选计算。LLM仅可把自然语言转换为受控公式;最终仍由确定性筛选器执行。 + +### 12.7 策略持续跟踪 + +- 仅跟踪用户从候选结果中手动加入的股票。 +- 运行选股或后台自动生成候选,均不能自动加入跟踪。 +- 跟踪数据按账号隔离。 +- 基准价格为用户加入时记录的候选入选价。 +- 跟踪T+1开盘、T+1收盘、T+3收盘、T+5收盘、区间最大涨幅和最大回撤。 +- 支持手动刷新和移除。 +- T+1已有反馈和T+5全部完成时可生成站内提醒;同一批次同类提醒只能生成一次。 + +## 13. 内置策略业务定义 + +### 13.1 解释规则 + +本节定义36套可执行策略的当前正式口径。字段名称是产品级标准字段,不是特定代码实现。符号含义: + +- `between [a,b]`:包含上下边界。 +- `==1`:条件成立。 +- 高优:字段越大得分越高。 +- 低优:字段越小得分越高。 +- 最低分使用0至1的小数表示。 +- 除表中说明外,所有策略均排除名称含ST或退市风险标记的股票。 + +### 13.2 六阶段与竞价策略 + +| 策略 | 适用阶段/频率 | 股票范围 | 全部准入条件 | 评分权重 | 最低分/上限 | +|---|---|---|---|---|---| +| 冰点抗跌先手 | 冰点;每日 | 上市≥120日 | 当日涨幅[-3,7]%;5日涨幅≥-5%;成交额≥1亿;10日波动率≤7 | 相对强度30%高优;板块强度25%高优;5日量比20%高优;10日波动15%低优;成交额10%高优 | 0.58/12 | +| 修复先锋 | 修复;每日 | 上市≥120日 | 当日涨幅[1,9.7]%;5日涨幅>0;站上20日线;5日量比≥1.05 | 板块强度28%;相对强度24%;5日量比18%;主力净流入16%;成交额14%,均高优 | 0.54/15 | +| 主线发酵跟随 | 发酵;每日 | 上市≥120日 | 当日涨幅[0,9.8]%;5日涨幅≥3%;站上20日线;成交额≥2亿 | 板块涨停数25%;板块强度24%;10日涨幅20%;成交额16%;大单净流入15%,均高优 | 0.55/15 | +| 高潮核心去后排 | 高潮;每日 | 上市≥120日 | 当日涨幅[-2,7]%;10日涨幅≥5%;站上20日线;成交额≥5亿 | 成交额28%;板块强度22%;相对强度20%;波动率15%低优;连板高度15%高优 | 0.62/10 | +| 分化承接回流 | 分化;每日 | 上市≥120日 | 当日涨幅[-3,7]%;5日涨幅>0;站上20日线;5日量比[0.7,3.5] | 相对强度28%;板块强度24%;主力净流入20%;波动率16%低优;成交额12%高优 | 0.57/12 | +| 退潮防守观察 | 退潮;每日 | 上市≥180日 | 当日涨幅[-2,4]%;5日涨幅≥-2%;站上20日线;10日波动率≤4.5;成交额≥2亿 | 波动率30%低优;相对强度25%;成交额20%;板块强度15%;主力净流入10%高优 | 0.68/8 | +| 竞价强势确认 | 修复/发酵/分化;9:25后 | 上市≥120日 | 竞价涨幅[1,7]%;竞价成交额≥300万;竞价量比≥0.8;日成交额≥1亿 | 竞价额26%;竞价量比22%;竞价涨幅18%;板块强度18%;相对强度16%,均高优 | 0.56/15 | + +### 13.3 精选策略一览 + +| # | 策略 | 流派 | 频率 | 上市天数 | 最低分/上限 | +|---:|---|---|---|---:|---| +| 1 | 连续分红质量 | 红利价值 | 月度 | 1095 | 0.52/20 | +| 2 | ROIC质量低波 | 质量价值 | 月度 | 730 | 0.54/20 | +| 3 | 低估值现金流白马 | 现金流价值 | 月度 | 730 | 0.53/20 | +| 4 | 高增长合理估值 | 成长质量 | 月度 | 365 | 0.55/20 | +| 5 | 行业宽度主线 | 行业轮动 | 每周 | 180 | 0.56/20 | +| 6 | 首板低开 | 短线竞价 | 每日9:25 | 250 | 0.50/12 | +| 7 | 小碎步临界突破 | 形态突破 | 每日 | 250 | 0.54/15 | +| 8 | 连板龙头 | 连板接力 | 每日 | 120 | 0.50/10 | +| 9 | 微盘三正 | 小盘质量 | 每周 | 365 | 0.52/20 | +| 10 | 首板高开弱转强 | 短线竞价 | 每日9:25 | 120 | 0.52/15 | +| 11 | 中期动量·强者恒强 | 动量反转 | 每周 | 180 | 0.50/25 | +| 12 | 强者回调 | 动量反转 | 每日 | 180 | 0.48/20 | +| 13 | 超跌反转 | 动量反转 | 每日 | 180 | 0.50/10 | +| 14 | 相对强度新高 | 动量反转 | 每周 | 250 | 0.52/20 | +| 15 | 均线多头排列 | 趋势追踪 | 每周 | 365 | 0.50/30 | +| 16 | 唐奇安通道突破 | 趋势追踪 | 每日 | 180 | 0.52/15 | +| 17 | 周线趋势·日线买点 | 趋势追踪 | 每周 | 365 | 0.52/20 | +| 18 | 空间板 | 连板接力 | 每日 | 120 | 0.45/5 | +| 19 | 龙头首阴 | 低吸反核 | 每日 | 120 | 0.48/5 | +| 20 | 断板反包 | 低吸反核 | 每日 | 120 | 0.46/5 | +| 21 | 核按钮反核 | 低吸反核 | 每日 | 120 | 0.48/5 | +| 22 | 景气-趋势-拥挤三维行业打分 | 行业轮动 | 双周 | 180 | 0.50/12 | +| 23 | 大小盘/成长价值风格切换(元策略) | 元策略 | 每周 | 250 | 0.52/20 | +| 24 | 业绩超预期漂移(SUE/PEAD) | 业绩事件 | 事件驱动 | 180 | 0.50/15 | +| 25 | 多因子综合打分(IC动态加权) | 多因子 | 每周 | 250 | 0.55/30 | +| 26 | 热度突增潜伏(另类数据) | 热度观察 | 每日 | 120 | 0.48/10 | +| 27 | 机构榜溢价 | 资金席位 | 每日 | 180 | 0.48/10 | +| 28 | 行业动量轮动 | 行业轮动 | 双周 | 180 | 0.48/12 | +| 29 | 主力资金行业流入 | 行业轮动 | 每周 | 180 | 0.48/15 | + +### 13.4 精选策略准入与评分 + +| 策略 | 全部准入条件 | 评分字段与权重 | +|---|---|---| +| 连续分红质量 | 持续分红年数≥4;股息率TTM≥2%;ROE≥6%;PB在0.1至4 | 股息率30%高优;ROE 24%高优;经营现金流质量18%高优;10日波动16%低优;总市值12%高优 | +| ROIC质量低波 | ROIC≥6%;毛利率≥15%;PE TTM在1至45;成交额≥1亿 | ROIC 28%高优;毛利率22%高优;PS TTM 18%低优;10日波动18%低优;总市值14%高优 | +| 低估值现金流白马 | PB在0.1至1.8;ROA≥3%;经营现金流质量>0;净利同比≥-15%;总市值≥100亿 | ROA 26%高优;现金流质量24%高优;PB 20%低优;总市值16%高优;波动率14%低优 | +| 高增长合理估值 | PE TTM在1至35;营收同比≥10%;净利同比≥15%;ROE≥5%;成交额≥1亿 | 净利增速27%;营收增速23%;ROE 20%高优;PE 16%低优;相对强度14%高优 | +| 行业宽度主线 | 行业站上20日线宽度≥55;板块强度≥55;个股站上20日线;成交额≥2亿 | 行业宽度28%;板块强度24%;相对强度20%;板块涨停数16%;成交额12%,均高优 | +| 首板低开 | 昨日首板;竞价涨幅[-4.5,-2.5]%;60日位置≤0.55;昨日成交额≥1亿 | 竞价额28%高优;昨日成交额24%高优;60日位置20%低优;板块强度16%高优;竞价量比12%高优 | +| 小碎步临界突破 | 近30日无涨停;近80日的较早区间曾涨停;15日最大绝对涨跌≤3%;收盘/15日高点≥0.98;收盘/60日高点≥0.90 | 距15日高点26%高优;5日量比22%高优;相对强度20%高优;15日最大波动18%低优;流通市值14%低优 | +| 连板龙头 | 昨日连板高度≥2;昨日成交额≥1亿 | 昨日连板34%;板块涨停数24%;昨日成交额18%;换手率14%;板块强度10%,均高优 | +| 微盘三正 | PB>0;ROE>0;经营现金流质量>0;流通市值5至100亿;成交额≥0.5亿 | 流通市值32%低优;ROE 24%高优;现金流质量20%高优;换手14%高优;相对强度10%高优 | +| 首板高开弱转强 | 昨日涨停或触板;竞价涨幅[1,6]%;竞价量比≥0.8;昨日成交额3至25亿 | 竞价额28%;竞价量比24%;竞价涨幅18%;板块强度17%;相对强度13%,均高优 | +| 中期动量·强者恒强 | 价格3至100元;中期动量排名前10%;当日不是涨停 | 中期动量55%;相对强度25%;成交额20%,均高优 | +| 强者回调 | 中期动量排名前30%;5日涨幅排名后20%;站上20日线;RSI(6)≤30;近20日无跌停 | 中期动量42%高优;5日涨幅33%低优;成交额25%高优 | +| 超跌反转 | 5日涨幅排名后5%;5日累计换手≥30%;60日涨幅≥-40%;无财务风险;当日非跌停 | 5日涨幅45%低优;5日换手30%高优;成交额25%高优 | +| 相对强度新高 | 成交额≥1亿;相对沪深300的RS线创120日新高;60日超额收益≥10%;60日线斜率>0 | 60日超额收益50%;60日线斜率25%;成交额25%,均高优 | +| 均线多头排列 | MA5>MA10>MA20>MA60;20日线5日斜率>0;距250日高点回撤≤20% | 20日线斜率38%高优;高点回撤32%低优;相对强度30%高优 | +| 唐奇安通道突破 | 收盘突破此前20日高点≥2%;5日量比≥1.8;此前20日振幅≤35% | 量比40%高优;突破幅度35%高优;振幅25%低优 | +| 周线趋势·日线买点 | 周线MACD DIF和DEA均>0;日线金叉或回踩20日线收阳;本周成交额≥此前4周均值 | 20日线斜率35%;相对强度35%;成交额30%,均高优 | +| 空间板 | 当日为市场最高板;相对前一日为新晋空间板;所属板块涨停≥3 | 连板高度50%;板块涨停数30%;成交额20%,均高优 | +| 龙头首阴 | 近10日最高连板≥3;当日为断板后的首次阴线;跌幅≥-7%;成交量/前日≤0.8 | 历史连板45%高优;量比前日30%低优;板块强度25%高优 | +| 断板反包 | 已识别断板反包;断板后1至3日;收复断板日高点;成交量/断板日≥1 | 断板后天数35%低优;相对断板日量能35%高优;板块强度30%高优 | +| 核按钮反核 | 近5日至少涨停1次;盘中最大跌幅≤-7%;收盘涨幅≥-3%;下影/实体≥2;成交量/前日≤1.1 | 下影实体比42%高优;盘中最低涨幅30%低优;板块强度28%高优 | +| 景气-趋势-拥挤三维行业打分 | 行业综合分≥0.58;行业拥挤排名≤0.90;行业内个股动量排名≥0.50;成交额≥1亿 | 行业综合分55%高优;行业内动量25%高优;拥挤排名20%低优 | +| 大小盘/成长价值风格切换 | 当前风格匹配度≥0.65;成交额≥1亿 | 风格匹配度70%;相对强度30%,均高优 | +| 业绩超预期漂移 | 超预期幅度≥10%;营收同比>0;业绩事件质量通过;公告后1至5个交易日 | 超预期幅度60%;相对强度25%;成交额15%,均高优 | +| 多因子综合打分 | 动态多因子综合分≥0.65;无财务风险;成交额≥1亿 | 多因子分75%;相对强度15%;成交额10%,均高优 | +| 热度突增潜伏 | 人气综合分≥15;10日涨幅≤5%;近5日无涨停;成交额≥0.5亿 | 人气分50%;排名跃升25%;双榜共识10%;成交额15%,均高优 | +| 机构榜溢价 | 机构净买入≥3000万元;机构席位≥1;60日涨幅≤30%;昨日连板≤2 | 机构净买入55%;席位数15%;60日位置20%低优;成交额10%高优 | +| 行业动量轮动 | 行业20日动量排名前10%;行业内个股动量前20%;成交额≥1亿 | 行业20日涨幅38%;个股20日涨幅32%;总市值18%;成交额12%,均高优 | +| 主力资金行业流入 | 行业资金流排名前15%;行业5日净流入>0;行业5日涨幅≤8%;个股5日净流入/流通市值>0;成交额≥1亿 | 资金流占流通市值42%高优;行业5日净流入30%高优;行业5日涨幅16%低优;成交额12%高优 | + +### 13.5 适用环境与失效风险 + +每个精选策略详情必须展示以下语义,不得只显示“适用某阶段”: + +| 策略族 | 适用环境 | 主要失效风险 | +|---|---|---| +| 红利、质量、现金流价值 | 防守市、低利率、估值修复、重视回撤的环境 | 风险偏好快速上升时弹性落后;低估值可能是价值陷阱 | +| 成长质量 | 业绩驱动、成长占优且趋势确认 | 增长预期下修或估值收缩 | +| 行业宽度/动量/资金流 | 主线清晰、行业趋势可持续、资金先于价格 | 快速轮动、资金流口径噪声、财务披露滞后 | +| 竞价与连板 | 情绪修复、主线发酵、承接明确 | 退潮、高位补跌、竞价强势转盘中兑现 | +| 趋势与突破 | 趋势延续、整理末端、放量突破 | 无趋势震荡、假突破、均线滞后 | +| 低吸反核 | 核心辨识度仍在、恐慌释放后出现承接 | 题材退潮、深水拉回仅为日内脉冲 | +| 风格切换 | 大小盘或成长价值风格持续分化 | 风格快速往返导致20日信号滞后 | +| 业绩事件 | 披露窗口、上修且价格未充分兑现 | 披露口径不同、公告后高开兑现 | +| 人气与机构席位 | 热度早期扩散、低位机构净买入 | 讨论噪声、高位兑现、席位净买不等于锁仓 | +| 多因子 | 多个因子表现具有延续性 | 单一极端主题和风格突变导致历史有效性失效 | + +每套策略的具体文案基线: + +| 策略 | 适用环境 | 失效风险 | +|---|---|---| +| 连续分红质量 | 防守市、低利率环境与中长期配置窗口 | 风险偏好快速上升时,稳健资产的价格弹性通常落后 | +| ROIC质量低波 | 震荡偏弱、重视盈利质量与回撤控制的市场 | 主题快速扩散或高弹性行情中,低波筛选可能错过进攻方向 | +| 低估值现金流白马 | 估值修复、价值回归及防守配置阶段 | 低估值可能来自基本面持续走弱,需警惕价值陷阱 | +| 高增长合理估值 | 业绩驱动、成长风格占优且趋势获得确认的阶段 | 增长预期下修或估值快速收缩时,回撤可能明显放大 | +| 行业宽度主线 | 主线清晰、行业内部多数个股同步走强的行情 | 板块快速轮动时,宽度信号容易在确认后迅速衰减 | +| 首板低开 | 情绪修复期的分歧转一致与首板次日承接 | 退潮加速或低开缺少量能承接时,弱势可能继续扩大 | +| 小碎步临界突破 | 趋势蓄势、波动收敛后临近突破的结构市 | 无量突破或指数剧烈震荡时,容易形成冲高回落 | +| 连板龙头 | 高度拓展、题材梯队完整且接力情绪活跃的阶段 | 亏钱效应扩散或高位股集中退潮时,接力风险很高 | +| 微盘三正 | 小盘风格活跃、流动性宽松且风险偏好较高的行情 | 风格切向大盘或微盘流动性收缩时,组合波动会显著上升 | +| 首板高开弱转强 | 竞价承接明确、短线情绪修复或主线发酵阶段 | 高开缺乏板块共振时,竞价强势可能转为盘中兑现 | +| 中期动量·强者恒强 | 趋势延续、主升段及强弱分化清晰的行情 | 无趋势震荡或快速轮动中,动量信号容易反复失效 | +| 强者回调 | 主升趋势未破、强势股完成良性回踩的窗口 | 趋势已反转时,回调信号可能演变为下跌中继 | +| 超跌反转 | 急跌后恐慌释放充分、市场进入修复预期的阶段 | 单边下跌初段容易过早介入,超跌不等于止跌 | +| 相对强度新高 | 指数偏弱但结构性主线明确,或机构抱团强化的行情 | 基准快速补涨或强势方向瓦解时,相对优势可能迅速消失 | +| 均线多头排列 | 中期趋势向上、回撤有序的趋势市与主升段 | 高位趋势末端或宽幅震荡中,均线信号通常反应滞后 | +| 唐奇安通道突破 | 整理末端、放量突破并启动新趋势的行情 | 无量突破和宽幅震荡环境中,假突破出现概率较高 | +| 周线趋势·日线买点 | 中期趋势稳定、日线回踩或再启动的多周期共振阶段 | 周线拐点尚未确认时,日线信号可能只是短暂反抽 | +| 空间板 | 市场高度持续拓展、板块梯队完整的强接力环境 | 高度压缩或亏钱效应扩散时,最高板的补跌风险极高 | +| 龙头首阴 | 主线龙头仍有辨识度、首次分歧后存在回流预期的阶段 | 题材退潮或龙头地位被替代后,首阴可能只是下跌起点 | +| 断板反包 | 强势题材分歧后快速修复、核心股重新获得资金承接时 | 板块强度不足或反包缩量时,形态持续性通常较弱 | +| 核按钮反核 | 恐慌释放后出现明确承接、短线情绪转暖的窗口 | 系统性退潮中深水拉回可能只是日内脉冲,隔日风险较高 | +| 景气-趋势-拥挤三维行业打分 | 行业景气与价格趋势同向、但交易拥挤尚未达到极端的结构市 | 财务披露存在滞后,行业快速反转时三维综合分可能反应偏慢 | +| 大小盘/成长价值风格切换(元策略) | 大小盘或成长价值风格形成持续相对强弱的阶段 | 风格快速往返切换时,近20日相对表现容易产生滞后信号 | +| 业绩超预期漂移(SUE/PEAD) | 业绩披露窗口中,快报相对预告继续上修且价格尚未充分兑现时 | 预告与快报口径可能不同,公告后高开兑现会削弱漂移效应 | +| 多因子综合打分(IC动态加权) | 因子表现具备一定延续性、市场并非由单一极端主题主导时 | 近期有效因子可能快速失效,动态权重不能消除风格突变风险 | +| 热度突增潜伏(另类数据) | 人气快速抬升但股价尚未明显启动的题材萌芽与扩散初期 | 榜单热度可能由短期讨论驱动,缺少价格确认时误报率较高 | +| 机构榜溢价 | 机构专用席位在相对低位形成明确净买入、且成交承载正常时 | 高位机构榜可能对应兑现或对倒,席位净买入不等于持续锁仓 | +| 行业动量轮动 | 主线相对清晰、行业趋势能够延续两周以上的结构市 | 行业轮动速度过快或前三名差距很小时,动量优势容易迅速衰减 | +| 主力资金行业流入 | 板块轮动初期、资金先于价格形成连续净流入的阶段 | 资金流口径可能受大宗交易和短期对倒影响,单日突增不代表趋势 | + +### 13.6 多因子策略的当前标准与升级目标 + +当前实现基线: + +- 五类因子:价值、成长、质量、动量、交易情绪。 +- 各类内部先转横截面百分位,再取可用因子的均值。 +- 价值:PE低优、PB低优、股息率高优。 +- 成长:营收同比、净利同比高优。 +- 质量:ROE、ROIC、毛利率高优。 +- 动量:中期动量、相对强度高优。 +- 情绪:换手率、5日量比高优。 +- 当前动态权重以同一截面的20日收益排名相关性作为参考,负相关和过低权重被下限0.05截断,再归一化。 + +待设计或待升级,尚不能宣称已实现: + +- 行业内去极值。 +- z-score标准化。 +- 行业和市值中性化。 +- 使用过去12个月每个因子与下一期收益的Rank IC均值定权。 +- 每季度重算权重。 +- 输出全市场综合得分前5%。 + +在上述升级通过独立回测、未来函数审查和人工验收之前,界面不应把策略命名包装成“完整IC动态加权”。可显示“动态多因子(基础版)”并在详情说明当前口径。 + +## 14. 问师 + +### 14.1 页面与权限 + +- 问师为会员功能。 +- 左侧为思维模型库,右侧为流式对话。 +- 模型筛选:全部、A级、B级、C级;支持搜索姓名、模式或标签。 +- 等级只表示蒸馏素材证据和结构质量,不代表人物能力、收益率或推荐等级。 +- 前端只显示A/B/C,不显示普通用户无法理解的`6/6`、`5/6`等工程评分。 +- 支持置顶、自定义排序、拖拽和上下箭头微调。 +- 底部输入区紧凑,长回答行距适中,段落之间不得出现过大空白。 + +### 14.2 思维模型注册和私密性 + +- 一个公开思维模型由独立Skill资料、显示元数据和证据等级组成。 +- 有效Skill被放入公共模型库后自动出现在前端,不应要求每增加一个模型就修改页面代码。 +- 公共模型所有用户可见。 +- “小白”是管理员根据个人复盘蒸馏的私有模型,只保存在私有存储,不进入Git、镜像或公开目录,只对管理员可见。 +- 私有ID与公开ID冲突时只显示一份,优先私有版本。 +- 张德涛(无为校长)归类为趋势/资金流派,水皮归类为宏观大局观,不归类为游资;两者证据等级为A级。 + +### 14.3 对话隔离与流式规则 + +- 对话按账号、思维模型、交易日期三者隔离保存。 +- 清空只清当前账号、当前模型、当前日期的对话。 +- 每次调用最多带入最近10条历史消息,并设置总字符上限,避免无限增长。 +- 支持快捷问题、停止生成和失败后重试。 +- 回答必须是真流式:每个文本片段只追加一次;流结束后不能再次追加完整答案,避免双份结果。 +- 主模型在尚未输出任何内容前失败时可切换辅助模型。 +- 一旦已经向用户输出文本,中途失败只能提示连接中断,不能切换模型后重复整个回答。 +- 回答必须声明这是基于公开资料蒸馏的思维模型,不是真人本人,不构成投资建议。 + +### 14.4 按模型类型提供数据 + +所有模型不再共用完全相同的市场上下文。系统根据Skill的关注点选择数据: + +| 模型类型 | 默认上下文 | +|---|---| +| 情绪流 | 情绪温度、阶段、涨跌停、昨日反馈、天梯、板块轮动 | +| 首板流 | 首板环境、封板率、炸板、热点板块 | +| 龙头流 | 连板梯队、多板龙头、热点、轮动、人气榜核心 | +| 趋势流 | 宽基指数动量、资金面、板块轮动、市场宽度 | +| 低吸流 | 昨日涨停反馈、炸板、热点与承接 | +| 宏观流 | 上证、深证、创业板、上证50、沪深300、中证500、中证1000、中证2000及核心ETF | + +附加规则: + +- 问题涉及龙虎榜、机构、游资或席位时,追加相关龙虎榜数据。 +- 问题中识别到股票代码或名称时,最多追加2个标的的详情、资金流和近20日日K。 +- 当前没有稳定政策、隔夜资讯、汇率、利率和商品宏观序列时,必须明确数据缺失,不得编造。 +- Skill中的历史案例只能作为方法论,不能当作当前行情。 + +## 15. 问天 + +### 15.1 共用规则 + +问天为会员功能,包含观势、观气、观心: + +- 保留星空背景、过场、载入、起卦和智能解读加载动画。 +- 页面外壳遵循全站200px侧栏、46px顶栏和内容边距;内容区允许独立星空气质。 +- 日间使用与全站一致的宣纸浅色基底;夜间与全站夜色一致并增加克制星空。 +- 1080P下必须可完整滚动,不能隐藏页面滚动条导致下方不可达。 +- 历史记录按账号隔离。 +- 智能解读使用居中模态弹窗,包含“本次解读”和“历史记录”。 +- 解读加载动画循环直到结果出现;动画、标题和底部文字不得重叠。 +- 观势/解卦使用六爻推演动画;观气使用五运六气主题动画。 +- LLM只解释程序已经算出的结构,不能起卦、改卦、修改干支、行情或五运六气。 +- 所有结果明确属于传统文化和娱乐化观察,不构成预测或投资建议。 + +### 15.2 观势输入与状态 + +- 未输入时只显示“请输入股票代码或股票名称”。 +- 未输入时不显示“暂不成卦”、缺失原因或六爻校验。 +- 输入代码或名称后点击载入,解析唯一股票;重名时让用户选择。 +- 当前标的不使用背景框,左对齐显示“当前标的:股票名称 申万二级·行业名称”;名称和行业加粗并使用更明显颜色。 +- 只有输入标的但数据不足时才显示“暂不成卦”和详细原因。 + +### 15.3 观势三才六爻 + +六爻自下而上: + +| 爻位 | 含义 | 数据层 | +|---|---|---| +| 初爻 | 个股内核 | 个股成交活跃与承接 | +| 二爻 | 个股外显 | 个股涨跌、连板和事件状态 | +| 三爻 | 行业内核 | 申万二级行业成分宽度与换手/等权表现 | +| 四爻 | 行业外显 | 申万二级行业涨跌及领涨股 | +| 五爻 | 市场内核 | 情绪、封板率、成交、宽度、涨跌停平衡 | +| 上爻 | 指数外显 | 上证、深证、创业板平均涨跌 | + +所有标准化分值截断到[-1,1]。分值转爻: + +- 分值≥0.72:老阳,数9,动爻。 +- 0≤分值<0.72:少阳,数7。 +- 分值≤-0.72:老阴,数6,动爻。 +- -0.72<分值<0:少阴,数8。 + +势值 = 六爻标准化分值平均值×100。显示本卦图形、箭头、之卦图形、势值和三才状态;本卦后不得出现多余圆圈。 + +### 15.4 观势六爻公式 + +初爻,个股内核: + +- 盘中且活跃度数据有效:`35%×成交额全市场分位的[-1,1]映射 + 35%×相对市场换手 + 30%×同进度量能`。 +- 相对市场换手 = 截断`(个股换手/市场换手 - 1)/1.5`。 +- 同进度量能 = 截断`(当前量能/历史同进度量能 - 1)/1.5`。 +- 收盘/历史:先计算`32%×成交额分位 + 22%×换手率/20 + 25%×封单额/1.5亿 + 21%×(1-开板次数/6)`,各项截断到[0,1],再映射为`原值×2-1`。 + +二爻,个股外显: + +- `70%×(涨跌幅/10) + 20%×(连板高度/5) + 状态修正`,截断到[-1,1]。 +- 状态修正:跌停-0.70,炸板-0.25,其他+0.15。 + +三爻,行业内核: + +- 盘中:行业宽度60% + 相对市场换手40%。 +- 行业宽度 =(上涨成分数-下跌成分数)÷(上涨+下跌)。 +- 相对市场换手分 = 截断`(行业换手/市场换手-1)/1.5`。 +- 收盘/历史:行业宽度60% + 成分股等权涨跌标准化35% + 领涨股涨跌标准化5%。 +- 成分股等权涨跌和行业涨跌均按5%映射到[-1,1];领涨股按10%映射。 + +四爻,行业外显: + +- `90%×申万二级行业涨跌/5 + 10%×领涨股涨跌/10`,截断到[-1,1]。 + +五爻,市场内核: + +- 情绪标准化 = 情绪温度/100×2-1。 +- 封板标准化 = 封板率/100×2-1。 +- 成交变化 = 截断`(当日成交额/近期平均成交额-1)×3`。 +- 市场宽度分 = 截断`(上涨占比-0.5)×2`。 +- 涨跌停平衡 =(涨停数-跌停数)÷(涨停数+跌停数)。 +- 五爻 = 情绪35% + 封板20% + 成交变化20% + 市场宽度15% + 涨跌停平衡10%。 + +上爻,指数外显: + +- 三大指数数据完整时:上证指数、深证成指、创业板指涨跌幅的算术平均,按3%映射到[-1,1]。 +- 三大指数不完整时不得静默用市场宽度替代并仍声称指数外显已通过;应触发安全门失败。历史版本的替代公式只作为故障诊断,不是正式标准。 + +### 15.5 观势安全门和手动补录 + +只有六爻全部通过安全门才成卦。成卦下方可展开“六爻数据校验”,每爻显示:绿色通过、红色缺失/失败、用户补录。 + +安全门: + +- 个股交易日期必须匹配目标日期。 +- 盘中个股必须是真实实时快照;收盘和历史必须是正式日线。 +- 行业必须是申万二级,行业日期必须匹配。 +- 盘中行业需要申万实时行业涨跌、成分覆盖、相对市场换手。 +- 历史行业不得混入实时数据。 +- 收盘实时行业必须是15:00最终快照。 +- 小样本行业不能机械要求固定数量。成员少但全体有有效行情时允许通过;覆盖率必须达到安全阈值并显示实际`有效数/成员数`。 +- 指数必须有上证、深证、创业板三条,日期一致且完整。 +- 历史指数必须使用正式日线。 + +手动补录规则: + +- 用户补录客观量化数据,不允许直接选择阴/阳或爻数。 +- 可补录字段包括行业名称、行业涨跌、上涨/下跌成分数、成员总数、成分覆盖率、行业等权涨跌、相对换手、领涨股及涨跌,以及失败爻所需的其他客观值。 +- 补录只替换失败字段;通过的数据不被覆盖。 +- 补录后仍使用同一公式、安全范围和安全门重新计算。 +- 结果明确标记“用户补录”,支持“恢复自动数据”。 + +### 15.6 观气 + +载入时显示基础信息: + +- 观测日期、农历、干支、节气。 +- 当日复合断语,使用“湿热交蒸·燥中夹滞”这类复合气候表达,不能只写“土气偏显”。 +- 三层气机。 +- 个人合参;不显示原始出生信息,且模块可无背景以保持轻量。 +- 五行对应行业位于基础模块下方,等宽、默认折叠;折叠时页面无需滚动,展开后允许全页滚动。 + +确定性权重基线: + +- 中运30。 +- 司天/在泉:岁半前15/5,岁半后5/15。 +- 主气20。 +- 客气25。 +- 日干2.5。 +- 日支2.5。 + +主页面不展示权重条。五行对应行业是传统取象,不是行情旁证;显示字体必须可读。 + +解运结果包含:三层气机、复合断语、情绪与判断偏差、操作惯性、个人影响、今日生克断语和制衡动作。同一账号同一天成功解运一次后保存;再次点击直接显示“已解运”和已保存结果,不重复调用LLM。旧版被截断的结果只允许重新生成一次。 + +### 15.7 观心 + +观心有五阶段:静心、呼吸、起卦、察念、解卦。 + +- 用户不输入问题,只在心中默念。 +- 呼吸开始前准备1秒。 +- 每息:吸3秒、顿2秒、呼4秒,共9秒;5轮,总45秒。 +- 呼吸阶段只显示“吸”“顿”“呼”,不显示轮数或倒计时。 +- 呼气时光圈向内收;吸气向外扩;保留波纹沉浸动效。 +- 保留一炷香进度和真实随时间变化的动效。 +- “静心完成,开始起卦”按钮位于阶段内容下方,不与动效重叠。 + +起卦: + +- 三枚铜钱具有有设计感的字面和背面,不使用单一贴图或黑色瑕疵圆点。 +- 支持按住摇爻或明确的投掷操作。 +- 每次投掷只产生一爻,自初爻到上爻依次累积,共六次。 +- 未投掷的爻只显示“初爻/二爻…上爻”和“未得”,不得预先画出阴爻。 +- 第一次投掷时绝不能把六爻全部生成。 +- 六次完成后显示本卦、之卦和卦辞;不再显示六个单独爻解释卡。 +- 用户先记录或确认“第一念”,之后才允许解卦。 +- 支持返回、重新观心、历史记录和静音。 +- 夜间模式中提示文字、历史记录、静音和重新观心必须具有足够对比度。 +- 用户启用减少动态效果时,提供静态进度和文本反馈,但完整流程仍可完成。 + +## 16. 我的复盘、提醒与复盘助手 + +### 16.1 自选追踪 + +- 支持输入股票代码或名称搜索并添加。 +- 每账号独立。 +- 显示:标记、代码、股票、板块、今日涨幅、5日涨幅、竞价关注分、跟踪备注、操作。 +- 支持编辑备注、移除、从个股详情加入/移除。 +- 无行情的字段留空,不用错误的0代替。 +- 表格列宽按内容分配,股票、代码和操作不能挤压数值列。 + +### 16.2 每日复盘 + +- 日期默认跟随顶栏,也可在模块中选择。 +- 三个独立输入框:今日盘面一句话;今日做对了什么/做错了什么;明日策略。 +- 三个输入框不能合并成一个文本区。 +- 同日期再次保存更新原记录,不产生重复日期。 +- 最近复盘只显示每日复盘,不混入个股笔记。 +- 历史记录可展开和收起;超出视口时可滚动。 + +### 16.3 个股笔记 + +- 只在对应股票详情查看。 +- 包含复盘内容和明日计划。 +- 按用户隔离,可保存、更新和删除。 +- 个股笔记不自动进入“最近复盘”。 + +### 16.4 交易日志 + +- 主页面显示“交易日志”按钮,点击后打开录入弹窗。 +- 保存后记录留在当前页面;日志区域与每日复盘底端对齐。 +- 无记录时保留合理空白;记录超过区域时仅日志内部滚动。 +- 字段:交易日、代码、名称、动作、价格、数量、仓位、盈亏金额、盈亏百分比、情绪、标签、交易逻辑、执行复核。 +- 动作:买入、卖出、加仓、减仓、观察。 +- 情绪:平静、笃定、犹豫、焦虑、冲动。 +- 支持编辑和删除。 +- 摘要:总记录、已实现记录数、胜率、累计盈亏、平均仓位。 +- 胜率只统计已填写盈亏金额或盈亏百分比的记录;盈亏>0为胜,等于0不计胜;未实现记录不进胜率。 +- 累计盈亏只加总已填写的盈亏金额;平均仓位只对有效仓位取算术平均。 + +### 16.5 提醒中心 + +- 站内提醒按账号隔离。 +- 支持全部/未读筛选、全部标为已读。 +- 手动提醒字段:标题(必填,最多80字)、提醒日期、股票代码(可选,最多12字)、内容(可选,最多500字)。 +- 支持单条标为已读和删除。 +- 到期前提醒显示“未到期”;只有到期提醒计入当前未读角标。 +- 策略跟踪有T+1反馈和T+5全部完成时自动生成提醒,使用批次幂等键去重。 + +### 16.6 复盘助手 + +- 非会员显示与会员相同界面,顶部提示“复盘助手仅对会员开放”,下方内容灰化不可用。 +- 读取共享市场统计,以及当前账号的策略跟踪、提醒、每日复盘、自选和交易日志。 +- 流式回答并按账号保存历史。 +- 快捷问题:市场位置、市场主线、交易复盘、明日清单。 +- 不修改用户数据,不执行交易。 +- 回答区分“市场事实”“用户记录”“推断”,只给条件化计划。 +- 默认回答不超过800个中文字符,除非用户明确要求展开。 + +## 17. 选股因子数据字典 + +### 17.1 通用约定 + +- 百分比字段使用百分数值,例如5%保存为5,而不是0.05;明确标为0至1排名/比例的字段除外。 +- 排名字段统一为0至1,1表示横截面最靠前。 +- 布尔信号使用成立/不成立,不得把缺失值当作不成立。 +- “相对强度”必须在同一交易日、同一股票范围内计算。 +- 财务字段按最近一个在选股日期之前已经公告的报告期取值,禁止未来函数。 +- 股票历史不足某因子窗口时,该因子为空,不以0代替。 + +### 17.2 行情动量 + +| 标准字段 | 中文含义 | 口径 | +|---|---|---| +| close | 收盘价 | 目标日收盘或有效实时价,元 | +| pct_chg | 当日涨幅 | 相对正确前收盘,% | +| return_5d | 5日涨幅 | 当前收盘相对5个交易日前收盘,% | +| return_10d | 10日涨幅 | 当前收盘相对10个交易日前收盘,% | +| return_20d | 20日涨幅 | 当前收盘相对20个交易日前收盘,% | +| return_60d | 60日涨幅 | 当前收盘相对60个交易日前收盘,% | +| return_5d_rank | 5日涨幅排名 | 全市场横截面0至1 | +| momentum_60_5 | 中期动量 | `第5日前收盘/第60日前收盘-1`,% | +| momentum_60_5_rank | 中期动量排名 | 全市场横截面0至1 | +| above_ma20 | 站上20日线 | 收盘价>MA20 | +| rsi_6 | RSI(6) | 标准6日RSI,0至100 | +| ma60_slope | 60日线斜率 | 当前MA60相对5日前MA60变化,% | +| ma20_slope_5d | 20日线5日斜率 | 当前MA20相对5日前MA20变化,% | +| ma_bull_alignment | 均线多头排列 | MA5>MA10>MA20>MA60 | +| drawdown_from_high_250 | 距250日高点回撤 | `1-收盘/250日最高价`,% | +| donchian_breakout_pct | 唐奇安突破幅度 | 收盘相对前20日最高价的超越幅度,% | +| range_20d | 20日振幅 | 前20日最高/最低-1,% | +| rs_high_120 | RS线120日新高 | 股票价格/沪深300价格之比是否创120日新高 | +| excess_return_60d | 60日超额收益 | 股票60日收益-沪深300 60日收益,百分点 | +| weekly_trend_signal | 周线趋势信号 | 周线MACD的DIF>0且DEA>0 | +| daily_buy_trigger | 日线买点 | 日线MACD金叉,或回踩MA20后收阳 | +| weekly_amount_trend | 周成交趋势 | 本周成交额≥此前4周平均 | +| relative_strength | 相对强度 | 当前股票在全市场/基准下的标准化强弱,0至100或统一横截面分 | +| relative_position_60 | 60日相对位置 | `(收盘-60日最低)/(60日最高-60日最低)`,0至1 | +| max_abs_change_15d | 15日最大波动 | 近15日单日涨跌幅绝对值最大值,% | +| close_to_high_15d | 距15日高点 | 收盘/15日最高价,0至1 | +| close_to_high_60d | 距60日高点 | 收盘/60日最高价,0至1 | + +### 17.3 量价与资金 + +| 标准字段 | 中文含义 | 口径/单位 | +|---|---|---| +| volume_ratio_5d | 5日量比 | 当日量/此前5日平均量 | +| turnover_5d | 5日累计换手 | 最近5日换手率之和,% | +| volatility_10d | 10日波动率 | 最近10个单日涨跌幅的总体标准差 | +| amount_billion | 成交额 | 亿元 | +| turnover_rate | 换手率 | % | +| circ_mv_billion | 流通市值 | 亿元 | +| total_mv_billion | 总市值 | 亿元 | +| net_flow_million | 主力净流入 | 百万元,供应商统一口径 | +| large_flow_million | 大单净流入 | 百万元 | +| net_flow_5d_million | 5日主力净流入 | 最近5日主力净流入之和,百万元 | +| flow_to_circ_mv_5d | 5日净流入占流通市值 | 5日净流入/流通市值,% | +| previous_amount_billion | 昨日成交额 | 亿元 | +| intraday_min_pct | 盘中最大跌幅 | 当日最低相对前收,% | +| lower_shadow_ratio | 下影线实体比 | 下影长度/实体绝对长度;无实体但有下影时上限值10 | +| vol_vs_previous | 较前日量能 | 当日成交量/前日成交量 | +| vol_vs_broken_day | 较断板日量能 | 当日成交量/断板日成交量 | + +### 17.4 板块、涨跌停与形态 + +| 标准字段 | 中文含义 | +|---|---| +| sector_strength | 板块强度 | +| sector_return_5d | 行业5日涨幅 | +| sector_return_20d | 行业20日涨幅 | +| sector_momentum_rank | 行业20日动量排名,0至1 | +| sector_stock_momentum_rank | 行业内个股动量排名,0至1 | +| sector_net_flow_5d_million | 行业5日主力净流入,百万元 | +| sector_flow_rank | 行业资金流排名,0至1 | +| sector_prosperity_rank | 行业景气度排名,0至1 | +| sector_trend_rank | 行业趋势排名,0至1 | +| sector_crowding_rank | 行业拥挤度排名,0至1,越高越拥挤 | +| sector_composite_score | 行业三维综合分 = 景气40% + 趋势30% + (1-拥挤)30% | +| sector_limit_count | 板块涨停数 | +| sector_up_count | 板块强势股数 | +| sector_breadth_ma20 | 行业成分站上20日线比例,% | +| limit_streak | 当日连板高度 | +| previous_limit_streak | 昨日连板高度 | +| previous_first_limit | 昨日是否首板 | +| previous_limit_signal | 昨日是否涨停或触板 | +| is_limit_up_today/is_limit_down_today | 当日是否涨停/跌停,按当日有效制度计算 | +| no_limit_30d | 近30日无涨停 | +| had_limit_80d | 近80日较早区间曾涨停,用于活跃记忆 | +| no_limit_down_20d | 近20日无跌停 | +| financial_risk | 财务风险标记:ST/退市或净利同比≤-100%等已确认风险 | +| is_market_height | 是否当前市场最高板,且市场高度至少2板 | +| new_space_board | 是否相对前日新晋空间板 | +| max_continuous_board_10d | 近10日最高连续涨停数 | +| dragon_first_yin | 三板及以上断板后的首次阴线 | +| yin_day_pct | 首阴当日涨跌幅,% | +| broken_reversal | 是否满足断板后反包结构 | +| days_since_broken | 断板后交易日数 | +| close_above_broken_high | 是否收复断板日高点 | +| recent_limit_up_5d | 近5日涨停次数 | + +### 17.5 竞价、估值与财务 + +| 标准字段 | 中文含义 | 单位/规则 | +|---|---|---| +| auction_change | 竞价涨幅 | 9:25竞价相对前收,% | +| auction_amount_million | 竞价成交额 | 百万元 | +| auction_turnover_rate | 竞价换手率 | % | +| auction_volume_ratio | 竞价量比 | 倍 | +| pe_ttm | 市盈率TTM | 倍,亏损时可为空/负值按策略过滤 | +| pb | 市净率 | 倍 | +| ps_ttm | 市销率TTM | 倍 | +| dividend_yield_ttm | 股息率TTM | % | +| dividend_years | 近年持续分红 | 可核验年度数,不把缺失年份算分红 | +| roe/roa/roic | 净资产/总资产/投入资本回报率 | % | +| gross_margin | 销售毛利率 | % | +| netprofit_yoy/revenue_yoy | 净利/营收同比 | % | +| ocf_to_opincome | 经营现金流质量 | 经营现金流相关比率,倍 | +| earnings_surprise_pct | 业绩超预期幅度 | 同报告期预告与快报/实际差异,% | +| earnings_days_since_announce | 业绩公告后天数 | 交易日数,不是自然日 | +| earnings_event_quality | 业绩事件质量 | 公告日未出现放量阴线等否决条件;缺数据为空 | + +### 17.6 人气、席位、风格与多因子 + +| 标准字段 | 中文含义 | +|---|---| +| popularity_score | 同花顺/东方财富人气综合分 | +| popularity_rank_change | 人气排名跃升幅度 | +| popularity_dual_source | 是否双榜共识 | +| institution_net_buy_million | 机构席位净买入,百万元 | +| institution_seat_count | 机构专用席位数量 | +| style_size_fit | 当前大小盘风格匹配度,0至1 | +| style_growth_fit | 当前成长/价值风格匹配度,0至1 | +| style_fit_score | 上述两类可用匹配度的均值 | +| factor_value_score | PE、PB低优与股息率高优的百分位均值 | +| factor_growth_score | 营收、净利同比高优的百分位均值 | +| factor_quality_score | ROE、ROIC、毛利率高优的百分位均值 | +| factor_momentum_score | 中期动量、相对强度高优的百分位均值 | +| factor_sentiment_score | 换手率、5日量比高优的百分位均值 | +| multi_factor_composite | 五类因子按当前动态权重合成,0至1 | + +风格匹配当前基线: + +- 按总市值横截面前30%定义大盘、后30%定义小盘,比较两组20日平均收益,选择占优方向。 +- 成长因子分前30%和价值因子分前30%分别计算20日平均收益,选择占优方向。 +- 单股大小盘匹配度与成长/价值匹配度取均值形成总匹配度。 + +## 18. LLM统一行为 + +### 18.1 适用功能 + +问师、问天解读、复盘助手和自然语言策略编译共用统一LLM行为:鉴权、会员检查、额度、模型选择、流式协议、取消、审计和错误转换。 + +### 18.2 调用与回退 + +- 调用前验证登录、功能权限、会员/管理员访问权和当日额度。 +- 主模型失败且尚未输出任何内容时,可尝试辅助模型一次。 +- 已开始输出后禁止切换模型重放答案。 +- 用户停止生成后,尽快终止上游读取,保留已输出内容并标记已停止。 +- 超时、模型满载、限流、认证失败和网络失败使用不同的用户安全提示。 +- “Selected model is at capacity”表示上游模型容量不足,不是业务数据错误;可在未输出前切辅助模型。 +- 同一次业务请求只结算一次额度,主/辅助重试不重复扣次。 + +### 18.3 审计与隐私 + +每次调用记录:账号、功能、模型池条目、主/辅助角色、开始时间、耗时、成功/失败、错误类型、提示词版本、输入输出量和关联业务ID。日志不得记录API Key、访问Token、原始出生资料或完整私密Skill内容。 + +用户界面不得显示:模型真实名称、服务地址、供应商错误原文、Tushare/iFinD接口名、数据库名或堆栈。管理员诊断页可查看脱敏的错误类型、提供方和关联ID。 + +## 19. 视觉、主题与可访问性 + +### 19.1 视觉目标 + +整体是安静、克制、适合长时间复盘的专业工作台,不是营销落地页。页面不能像无样式Excel,也不能用大量装饰卡片制造层级。视觉层级来自: + +- 页面标题与核心指标。 +- 清晰的模块分区和12px间距。 +- 统一字号、字重和对齐。 +- 有节制的状态色。 +- 数据密度和留白平衡。 + +同级模块之间保留明确空隙,不允许直接粘连成一整块表格。标准卡片圆角为10px;单元格圆润但不松散。Hover移动和阴影变化平滑,不能突然跳动。 + +### 19.2 视觉令牌 + +日间色板: + +| 语义 | 色值 | +|---|---| +| 主操作/激活 | `#2563eb` | +| 主操作Hover | `#1d4ed8` | +| 激活浅底 | `#eff4ff` | +| 激活描边 | `#c7d8fb` | +| 上涨/积极 | `#e04536`,浅底`#fdecea` | +| 下跌/消极 | `#16a34a`,浅底`#e9f7ee` | +| 警示 | `#b45309`,浅底`#fdf3e3` | +| 主文字 | `#1f2937` | +| 次文字 | `#6b7280` | +| 辅助文字 | `#9ca3af` | +| 边框 | `#e5e7eb` | +| 行分隔 | `#eef0f3` | +| 页面背景 | `#f4f5f7` | +| 卡片背景 | `#ffffff` | + +夜间色板: + +| 语义 | 色值 | +|---|---| +| 页面背景 | `#121416` | +| 卡片背景 | `#1b1e21` | +| 次级表面 | `#202428`;更高层`#24282d` | +| 边框 | `#343a40`;强调边框`#474f57` | +| 主文字 | `#e8eaed` | +| 次文字 | `#adb5bd` | +| 辅助文字 | `#7f8993` | +| 主操作 | `#6ca8e8`;Hover`#8bbcf0`;浅底`#23364a` | +| 上涨/积极 | `#f06d73`;浅底`#40262a` | +| 下跌/消极 | `#43bc8a`;浅底`#1d382f` | +| 警示 | `#e2ad58`;浅底`#3d3220` | + +问天夜间外壳仍使用全站夜间页面背景;星空为低透明叠层,不另起一块不协调的深色页面。问天传统文化强调色可使用鎏金`#c9a55c`,装饰星空透明度不高于0.15。 + +尺寸令牌: + +- 间距只使用4、8、10、12、14、16、22、26、34px。 +- 卡片头内边距11px 14px;卡片内容垂直12至14px、水平14至16px。 +- 表头8px 12px;舒适表格单元格9px 12px;紧凑5px 12px。 +- 常规按钮6px 13px;小按钮4px 9px;标签1.5px 7px。 +- 卡片圆角10px;按钮和输入框7px;标签5px;徽章4至6px。 +- 卡片阴影`0 1px 2px rgba(16,24,40,.05)`;浮层阴影`0 12px 32px rgba(0,0,0,.18)`。 +- 过渡150至250毫秒ease,只用于opacity、transform和background;禁止全局`transition: all`和大位移。 + +### 19.3 字体与数字 + +- 正文以易读的中文无衬线字体为主;问天标题和传统文化文案可使用统一衬线字体。 +- 页面主标题17px/800,一页只允许一个。 +- 大数字18至26px/800,一页不超过4个。 +- 卡片标题14px/700。 +- 正文和按钮13px/400至500。 +- 表格正文12.5px/400;股票名称13px/700。 +- 表头12px/600。 +- 次要说明11.5至12px/400;辅助/来源/占位10.5至11px/400。 +- 不随视口宽度连续缩放字号。 +- 字间距为0,不使用负字距。 +- 数值使用等宽数字。 +- 表格数值右对齐,文本左对齐,短状态可居中。 +- 长文字允许换行或省略并提供完整查看,不能遮挡相邻列。 + +### 19.4 表格 + +- 列宽按内容类型分配:序号/标签最窄,代码固定适中,名称适中,数值等宽,原因/逻辑/线索最宽。 +- 单位写入表头,例如“成交额(亿)”“涨跌幅(%)”。 +- 空值留空;整表无数据时显示空态。 +- 可排序列在表头显示克制的排序图标和当前方向。 +- 表头在日间和夜间均与表体有清晰但不刺眼的层级。 +- 仅数据区允许局部滚动;如果页面被明确规定为全页滚动,则不能再形成令人困惑的双滚动。 + +通用页面网格只使用以下模式:主表+372px右栏、主表+320px窄右栏、主区+340至400px中右栏、双卡1:1、全宽单列;间距均为12px。集合竞价优先372px右栏,天梯/股池优先320px,情绪周期约340px,题材库右侧为主区且左侧排行更窄。1400px以下右栏可收窄20至32px,不能压缩主表到不可读。 + +### 19.5 日间与夜间 + +- 日间是清爽宣纸浅色,不使用大面积纯白卡片叠纸效果。 +- 夜间是中性深色,不使用单一深蓝/紫色覆盖全站。 +- 红涨绿跌在两种主题中保持一致且对比达标。 +- 所有搜索框、表头、空态、加载骨架、弹窗、策略库、标签、图表背景和Hover都必须有双主题样式。 +- 主题切换一次性应用,目标为无白闪、无表格滞后、无明显卡顿。 +- 用户主题选择持久化到本机;登录前后保持一致。 + +### 19.6 交互与可访问性 + +- 所有可点击元素有明确Hover、Focus和Disabled状态。 +- 键盘可到达搜索、导航、标签、表格操作和弹窗。 +- Disabled不能只降低透明度到不可辨认,仍需保持文字可读并说明原因。 +- 颜色不是唯一状态信号;涨跌、通过/失败同时使用文字或图标。 +- 常规正文与背景对比度目标≥4.5:1,大字≥3:1。 +- 动效遵守系统“减少动态效果”偏好。 +- 加载动画不能阻止用户取消LLM请求。 + +## 20. 分辨率与移动端规范 + +### 20.1 已确认标准 + +- PC与移动端使用相同功能权限、数据口径、账号数据和业务结果。 +- 移动端允许独立页面壳、布局和交互,不要求像素复刻PC。 +- 移动端不能只是缩小字体、卡片和桌面表格。 +- 页面本身不得横向溢出。 +- 宽表可在局部横向滚动,或重组为摘要列表+详情。 +- 触控目标至少44×44px。 +- 固定栏预留安全区。 +- 手机不使用Hover作为唯一入口。 +- 系统管理、复杂模型池和高密度自定义因子配置可以定义为“PC完整支持”;移动端提供查看、简化编辑或提示使用PC。 + +### 20.2 PC分辨率行为 + +- 1920×1080是最低完整可用桌面基线:核心操作在无需极端缩放的情况下可见,长页采用清晰的全页滚动。 +- 1280至1536宽度:保持200px侧栏;必要时次要列隐藏到详情,不能压缩到文字重叠。 +- 4K:限制主内容最大可读宽度或增加信息密度,不把字号、卡片和留白简单放大两倍。 +- 高度不足时,优先全页滚动;不要固定上半页后只给表格几行高度。 +- 情绪周期、板块轮动、智能选股和问天已经确认采用可达的全页滚动策略。 + +### 20.3 移动端目标信息架构 + +手机底部五个一级入口: + +1. 行情。 +2. 选股。 +3. 问师。 +4. 问天。 +5. 复盘。 + +“行情”下的情绪、股池、天梯、板块、竞价、题材、热榜、龙虎榜通过顶部选择器或抽屉切换,不在底部放16个入口。 + +移动页面原则: + +- 主内容单列。 +- 核心摘要优先,详细表格按需展开。 +- 表格在320px宽度下至少能看到名称、关键状态和主数值;其余进入详情。 +- 弹窗改为底部抽屉或全屏页时,必须保留关闭和返回路径。 +- 键盘弹出后输入框和发送按钮保持可见。 +- 问师和复盘助手对话输入区不遮挡最后一条消息。 +- 问天动画适配窄屏且不裁切关键文字。 + +### 20.4 当前实现基线与待设计项 + +当前实现基线:PC端已具备多档宽度适配和部分移动端规则,但整体移动交互仍未达到可用验收标准。 + +待设计或待升级: + +- 逐页移动版信息层级和组件打样。 +- 复杂股池表、竞价和自定义选股的移动交互。 +- 手机横屏策略。 +- 平板分栏策略。 + +因此,重建者不得把现有移动布局原样当作最终标准;必须依据本节目标单独设计,并经人工验收。 + +### 20.5 验收视口 + +至少测试:320、375、390、430、768、1024、1280、1440、1536、1920×1080、3840×2160,以及手机横屏。每个视口检查:无页面横向溢出、无内容遮挡、无不可达操作、无双滚动冲突、文字不溢出、主题完整。 + +## 21. 状态、异常与反馈规则 + +### 21.1 统一页面状态 + +每个数据模块必须有以下互斥状态: + +1. 初始未操作。 +2. 加载中。 +3. 成功且有数据。 +4. 成功但无符合条件数据。 +5. 所需数据缺失。 +6. 权限不足/会员锁定。 +7. 上游暂不可用。 +8. 请求超时。 +9. 使用最近真实快照。 + +“暂无符合条件”只用于数据完整且条件没有命中的情况;“数据缺失”必须列出缺什么;“上游失败”不能覆盖成空结果。 + +### 21.2 用户错误信息 + +- 使用用户能理解的业务语言。 +- 不显示本机路径、HTTP堆栈、Token、模型名、接口URL或供应商原始响应。 +- 提供可执行下一步:重试、查看前一交易日、联系管理员同步、补录数据或稍后再试。 +- 同一失败不能同时弹多个Toast、空态和异常长弹窗。 + +### 21.3 网络与服务恢复 + +- 页面请求可设置超时;用户可重试。 +- 读请求失败不清空屏幕上已有的最后成功数据,除非用户切换到不同实体/日期。 +- 写请求超时后必须先查询是否已保存,避免用户重复提交。 +- 后台任务失败记录失败原因、时间、数据覆盖和重试状态。 +- 进程重启后,已完成的盘后任务不能重复产生不同结果。 + +### 21.4 已知异常弹窗防线 + +历史版本曾出现“正常业务弹窗关闭后又出现超长空弹窗,无法关闭,只能刷新”的缺陷。最终标准: + +- 业务成功反馈统一使用Toast。 +- 打开弹窗前校验内容和弹窗类型。 +- 弹窗内容区必须有最大宽高和可控滚动。 +- 关闭后清理内容、遮罩和焦点状态。 +- 全站扫描所有保存、删除、添加、导出和LLM完成场景,禁止把普通返回对象当作弹窗HTML渲染。 + +## 22. 数据持久化、备份与安全 + +### 22.1 持久化要求 + +- 当前适合局域网单实例部署,持久化数据库支持事务和写前日志。 +- 所有用户私有记录保留账号所有权和创建/更新时间。 +- 共享快照按交易日和数据版本唯一归档。 +- 盘后计算记录输入快照、算法版本和输出版本。 +- 数据库结构升级必须有顺序版本、幂等迁移和升级记录。 +- 未来迁移到其他数据库时,不改变产品数据边界和业务结果。 + +### 22.2 认证与会话 + +- 密码使用现代抗暴力哈希和独立盐,不可逆保存。 +- 登录会话使用高熵随机令牌,服务端只保存哈希。 +- 所有写操作验证CSRF令牌。 +- Cookie使用HttpOnly和SameSite;HTTPS公网部署时必须启用Secure。 +- 会话到期后回到登录页,未提交内容给出合理提示。 +- 不允许仅依靠前端隐藏按钮实现权限控制;服务端再次鉴权。 + +### 22.3 密钥与敏感资料 + +- 行情Token、iFinD令牌、模型API Key、加密密钥不得进入Git、浏览器存储或普通日志。 +- 系统凭据和出生资料加密保存。 +- 加密密钥与数据库必须一起备份;丢失密钥后不得伪称可恢复密文。 +- 私有“小白”Skill不进入公开仓库和镜像。 +- 普通用户不能读取或修改系统级凭据。 + +### 22.4 备份与恢复 + +- 每次升级前备份数据库、加密密钥、环境配置和私有Skill。 +- 数据库备份必须使用一致性快照方式,不能在写入中只复制单个主文件而遗漏写前日志。 +- 至少保留最近7个日备份、4个周备份;具体保留期可由部署者提高。 +- 恢复演练至少验证:账号登录、共享快照、用户自选/复盘、会员状态、模型配置、问天历史和策略结果。 +- 回退代码时不能自动回退已迁移数据;每个破坏性迁移必须提供明确恢复方案。 + +### 22.5 运行与部署基线 + +- 时区固定为Asia/Shanghai。 +- 默认服务端口8765,可通过部署配置更改。 +- 数据目录必须持久化,容器重建不能丢数据。 +- 运行进程使用非管理员用户、只读应用文件系统、最小权限和自动重启。 +- 提供健康检查,区分进程、数据库、数据源、后台任务和模型状态。 +- 数据源降级不等同于整个网站不可用;已归档数据仍应可读。 +- 日志轮转,默认单文件不超过10MB、保留3个;不得记录密钥。 +- 局域网HTTP可运行;转向公网前必须增加反向代理、TLS、可信Host、限流、审计、集中密钥和正式备份。 + +## 23. 后台任务与运行状态 + +### 23.1 行情刷新 + +- 输入为请求交易日。 +- 同一时间只能有一个行情刷新任务。 +- 任务记录开始、完成、失败、来源覆盖、输出版本和耗时。 +- 超时目标120秒;实时轮询任务失败不立即覆盖最后成功快照。 + +### 23.2 盘后智能选股 + +- 交易日15:10后且当日行情刷新成功、因子达到最低覆盖后执行。 +- 同一交易日、同一策略版本只完成一次。 +- 最长运行目标15分钟;超过后标记失败并保留逐策略状态。 +- 单个策略数据缺失不阻止其他数据完整的策略运行。 +- 阶段策略、29套精选策略分别记录结果。 + +### 23.3 事件补充 + +- 涨停、炸板、跌停原因等事件数据在收盘后按需补充。 +- 补充来源不能覆盖管理员人工修订;人工修订具有更高优先级并保留修订记录。 +- iFinD试用或令牌到期时,显示事件补充暂不可用,不影响已有Tushare快照。 + +## 24. 当前实现基线与已知待改进 + +本节不是最终标准,只用于避免重建时误判现状。 + +### 24.1 当前实现基线 + +- 单体Web应用可在本机或局域网容器运行。 +- 已有16个工作区、内部策略跟踪页、账户、会员和系统管理。 +- 已有共享行情快照、用户私有数据、日间/夜间、搜索、图表和LLM流式能力。 +- 已有36套内置策略和自定义公式执行。 +- 已有问天三模块和确定性历法/卦象计算。 + +### 24.2 不得继承为标准的缺陷 + +- 移动端当前总体不可用或交互较差。 +- 部分页面仍可能存在多层CSS覆盖和历史布局残留。 +- 旧说明中“策略运行即自动跟踪”已经废止。 +- 旧说明中“用户手动同步因子、手动执行阶段/策略选股”已经废止。 +- 旧观心30秒/40秒呼吸说明已经废止,当前标准为准备1秒+5轮×9秒。 +- 历史上用公开网页源参与观势替代计算的行为已经收紧;安全门不通过应失败关闭。 +- 多因子“IC动态加权”仍是基础版,不得夸大。 + +### 24.3 待设计或待升级清单 + +- 完整移动端逐页设计与验收。 +- 多因子12个月Rank IC季度重算及中性化。 +- 稳定的隔夜消息量化和政策/宏观序列。 +- Level-2动态竞价委托队列。 +- 分析师一致预期。 +- 游资档案的更完整历史画像;当前不是高优先级。 +- 公网部署的多实例、PostgreSQL、队列、缓存和集中监控;当前不在局域网版本范围内。 + +## 25. 固定验收案例 + +以下案例全部通过,才可声称产品行为重建完成。 + +### 25.1 账户、权限与隔离 + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| A01 | 空系统注册第一个账号 | 该账号成为管理员,能看到后台刷新和系统管理 | +| A02 | 注册第二个账号 | 第二个账号为普通用户,不显示管理员按钮 | +| A03 | 管理员同时开通会员 | 顶部同时显示管理员和会员标识 | +| A04 | 管理员未开会员 | 可测试智能功能,但会员页仍显示未开通,不伪装会员 | +| A05 | 普通用户打开智能选股 | 页面结构完整,顶部会员提示,下方灰化不可操作 | +| A06 | 用户甲、乙分别添加不同自选 | 甲乙互相看不到对方自选 | +| A07 | 用户甲写每日复盘、个股笔记和交易日志 | 用户乙任何入口均无法读取、修改或删除 | +| A08 | 非管理员直接请求系统管理写操作 | 服务端拒绝,即使手工构造请求也不能成功 | +| A09 | 修改密码时当前密码错误 | 不修改密码,显示安全提示 | +| A10 | 点击账户菜单五项 | 个人资料、会员状态、修改密码、切换账号、退出均独立可用 | + +### 25.2 日期与数据真相 + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| D01 | 2026-07-22 9:15前打开网站 | 显示2026-07-21 15:00真实收盘数据,不显示模拟数据 | +| D02 | 周六打开网站 | 显示最近交易日15:00并标真实日期 | +| D03 | 盘中10:23有最新快照 | 数据时间显示最近刷新时刻,不提前显示15:00 | +| D04 | 收盘后最终同步完成 | 数据时间显示当日15:00 | +| D05 | 选择历史日期 | 不混入今天实时行情 | +| D06 | 今天取数失败但有昨日快照 | 页面仍可用,明确显示昨日日期和“沿用最近快照” | +| D07 | 全新系统无任何快照 | 显示等待管理员首次同步,无演示数字 | +| D08 | 点击后台刷新 | 当前页面不自动跳转或重绘;普通刷新后读取新快照 | +| D09 | 7月29日打开,最新可用为29日 | 顶栏默认29日,默认页面为情绪周期 | + +### 25.3 图表与详情 + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| C01 | 开盘前悬浮股票代码 | 日K止于最后真实交易日,不制造今天空K线 | +| C02 | 页面选择历史日后悬浮股票 | 悬浮日K仍显示最近真实行情 | +| C03 | 切换分时 | 横轴固定9:30至15:00,未到时间段保留空白,有昨收0轴 | +| C04 | 查看上涨K线 | 红色空心,影线不穿过实体 | +| C05 | 夜间首次加载图表 | 加载背景不闪白 | +| C06 | 打开个股详情 | 有完整个股笔记、资金流、事件逻辑和观势入口 | +| C07 | 打开板块/题材/指数详情 | 有行情图,无个股笔记和个股事件逻辑 | +| C08 | 检查涨跌幅 | 使用正确前收,详情摘要与K线数据一致 | + +### 25.4 情绪与市场页面 + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| M01 | 市场宽度≤15且跌停≥100 | 情绪温度不超过15,阶段进入/保持冰点 | +| M02 | 冰点后单日只升3分 | 不直接转修复 | +| M03 | 发酵条件仅一天成立 | 不直接从修复转发酵 | +| M04 | 当前阶段为退潮 | 警示只描述情绪走弱,不出现选股建议 | +| M05 | 切换10/20/60日 | 明细范围改变,默认20日;表格最后一行可完整查看 | +| M06 | 涨停池筛选3板+仅1行 | 底部风险提示仍在固定状态栏,不随表格上移 | +| M07 | 市场天梯展开很多股票 | 可滚动且可收起,单元格保持等宽栅格 | +| M08 | 市场高度7板 | 涨停表现动态容纳7板,右侧今日结论不留异常空缺 | +| M09 | 点击板块轮动某板块 | 下方显示该日申万成分股,并跨日期高亮同名板块 | + +### 25.5 集合竞价、题材、热榜、龙虎榜 + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| X01 | 9:20且动态iFinD可用 | 状态为观察中,显示真实快照时间 | +| X02 | 9:20但动态数据不可用 | 不把Tushare最终竞价伪装为动态数据 | +| X03 | 9:26 | 使用9:25最终竞价形成筛选结果 | +| X04 | 一字板候选 | 单独进入竞价一字,不参与普通异动评分 | +| X05 | 新规ST股票 | 涨跌停阈值按10%处理 | +| X06 | 市场核心超过普通上限 | 核心股票全部保留 | +| X07 | 核对竞价成交额 | 摘要数值、柱图和5日均线使用同一口径 | +| X08 | 悬浮题材名称 | 出现统一日K/分时预览;固定题材K线模块不存在 | +| X09 | 当日热榜未发布 | 显示最近有效榜单并标实际日期 | +| X10 | 龙虎榜有76只上榜但席位不可识别 | 明确显示有榜单、待归类/席位缺失,不显示“无龙虎榜数据” | +| X11 | 点击游资档案 | 进入左名录右详情,不弹超长框 | + +### 25.6 智能选股 + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| S01 | 当日阶段为退潮 | 只影响阶段选股;29套精选策略仍逐套运行 | +| S02 | 精选策略数据完整但无命中 | 显示“暂无符合条件个股” | +| S03 | 精选策略缺ROIC数据 | 显示缺少ROIC/财务覆盖,不显示“暂无信号” | +| S04 | 同策略同日期刷新前后 | 候选顺序和分数一致 | +| S05 | 先运行/查看退潮策略,再切分化 | 两个阶段结果分别保留 | +| S06 | 在策略选股切三个策略 | 各策略候选保留且明确标来源 | +| S07 | 阶段/策略/自定义三模式切换 | 结果不会同时出现在三页或互相覆盖 | +| S08 | 盘后任务未执行 | 四步状态显示未执行,不显示已完成对号 | +| S09 | 用户执行自定义选股 | 由条件和数据确定计算,不调用LLM筛选 | +| S10 | 自定义权重不等于100% | 禁止执行并指出权重总和问题 | +| S11 | 运行策略产生候选 | 不自动进入持续跟踪 | +| S12 | 用户手动加入候选 | 进入该用户跟踪,并记录入选价 | +| S13 | 用户甲加入跟踪 | 用户乙看不到该记录 | +| S14 | T+1和T+5条件满足并多次刷新提醒 | 每类提醒只生成一次 | + +### 25.7 问师、问天与LLM + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| L01 | 问师流式完成 | 每段只出现一次,不在结尾重复完整答案 | +| L02 | 主模型输出前失败 | 可切辅助模型,用户只看到一份答案 | +| L03 | 主模型输出一半失败 | 不切辅助重放,提示连接中断并保留已输出 | +| L04 | 选择宏观模型询问市场 | 上下文含宽基指数和ETF,不强塞短线席位数据 | +| L05 | 普通用户打开问师/问天/助手 | 同结构锁定态,不能发起LLM调用 | +| W01 | 观势未输入股票 | 只提示输入代码或名称,不显示暂不成卦 | +| W02 | 中国平安所属保险行业仅5只成分且5只有行情 | 小样本但覆盖完整时行业安全门可通过 | +| W03 | 行业缺涨跌但用户补录客观值 | 按原公式重算;用户不能直接选阴阳 | +| W04 | 三大指数缺一 | 上爻安全门失败,不静默替代成卦 | +| W05 | 观气当天已解运 | 再次点击直接显示已保存结果,不重复扣额度 | +| W06 | 观心开始呼吸 | 准备1秒后5轮吸3/顿2/呼4;无轮数和倒计时 | +| W07 | 观心第一次投币 | 只出现初爻,其余显示未得 | +| W08 | 观心投满六次 | 显示本卦/之卦/卦辞,不显示六个爻解释卡 | +| W09 | 夜间打开观心 | 提示、按钮、历史和静音文字清晰可读 | + +### 25.8 复盘、主题和响应式 + +| 编号 | 前置条件与操作 | 预期结果 | +|---|---|---| +| R01 | 保存交易日志 | 当前页出现记录,只出现正常Toast,无超长空弹窗 | +| R02 | 交易日志无盈亏 | 不进入胜率分母 | +| R03 | 同日期重复保存每日复盘 | 更新原记录,不新增重复项 | +| R04 | 展开很多历史复盘 | 页面或区域可滚动且可收起 | +| U01 | 日间切夜间 | 表格、卡片、弹窗和图表同时切换,无白闪 | +| U02 | 1920×1080打开情绪周期 | 可通过全页滚动完整查看交易日明细 | +| U03 | 1920×1080打开问天观气/观心 | 下方内容可达,滚动条存在且背景一致 | +| U04 | 3840×2160打开页面 | 内容不被粗暴等比放大,信息密度合理 | +| U05 | 390×844打开 | 无页面横向溢出,底部五入口可用,触控目标≥44px | +| U06 | 320px打开宽表页 | 使用摘要列表或局部横滚,页面本身不横滚 | + +## 26. 页面覆盖矩阵 + +每一行均需针对“权限、正常数据、空数据、数据缺失、加载、失败、持久化、日间、夜间、1080P、4K、390px”完成测试。 + +| 页面/能力 | 普通 | 会员 | 管理员 | 共享/私有 | 关键持久化 | +|---|:---:|:---:|:---:|---|---| +| 情绪周期 | 可用 | 可用 | 可用 | 共享 | 日度情绪结果与版本 | +| 四类股池 | 可用 | 可用 | 可用 | 共享 | 日度快照、原因修订 | +| 涨停表现/天梯 | 可用 | 可用 | 可用 | 共享 | 日度结构结果 | +| 板块轮动 | 可用 | 可用 | 可用 | 共享 | 多日热点、成分缓存 | +| 集合竞价 | 可用 | 可用 | 可用 | 共享 | 动态快照、9:25归档 | +| 题材库/热榜 | 可用 | 可用 | 可用 | 共享 | 榜单与成分归档 | +| 龙虎榜/游资档案 | 可用 | 可用 | 可用 | 共享 | 明细、别名、档案 | +| 智能选股 | 锁定 | 可用 | 可用 | 共享结果+私有自定义 | 策略/因子版本和结果 | +| 策略跟踪 | 锁定 | 可用 | 可用 | 私有 | 跟踪批次与行情反馈 | +| 问师 | 锁定 | 可用 | 可用 | 私有对话 | 模型偏好、消息、排序 | +| 问天 | 锁定 | 可用 | 可用 | 私有历史 | 卦象、解读、当天解运 | +| 我的复盘 | 可用 | 可用 | 可用 | 私有 | 自选、复盘、日志、笔记 | +| 提醒中心 | 可用 | 可用 | 可用 | 私有 | 提醒、已读状态、去重键 | +| 复盘助手 | 锁定 | 可用 | 可用 | 私有 | 对话历史 | +| 账户/会员 | 可用 | 可用 | 可用 | 私有 | 资料、会员、使用量 | +| 系统管理 | 隐藏 | 隐藏 | 可用 | 系统 | 凭据、模型池、任务状态 | + +## 27. 重建交付门槛 + +### 27.1 功能完整性 + +- 16个主工作区、1个内部页和所有全局能力均有实现。 +- 本文全部权限和账号隔离测试通过。 +- 所有确定性算法有版本并能用固定输入复现固定输出。 +- 36套策略的准入、权重、阈值、频率和上限与本文一致。 +- 所有数据缺失与失败状态可区分。 + +### 27.2 数据与算法 + +- 每个计算字段可追溯来源、日期、单位、新鲜度和覆盖率。 +- 不存在模拟行情、静默跨源混算和未来函数。 +- 情绪、竞价、选股、观势提供固定样本回归测试。 +- 页面摘要与图表使用同一口径。 + +### 27.3 视觉与终端 + +- 逐页完成日间/夜间、1920×1080、4K和390px截图验收。 +- 无左上角弹窗、超长空弹窗、白闪、内容遮挡和不可达区域。 +- 页面边距和骨架一致,问天仅内容气质例外。 +- 移动端需人工验收后才能标记完成;不能以“有媒体查询”代替可用性验收。 + +### 27.4 安全与运维 + +- 私有数据跨账号测试通过。 +- 密钥不进入仓库、日志和浏览器。 +- 备份和恢复演练成功。 +- 升级失败可回退应用,并可恢复匹配的数据备份。 +- 局域网服务重启后,账号、行情和个人记录不丢失。 + +### 27.5 禁止的验收方式 + +以下情况不能算完成: + +- 只检查页面能打开。 +- 只测试管理员账号。 +- 只测试有数据的正常态。 +- 只在4K显示器检查比例。 +- 用旧代码行为反驳本文已确认标准。 +- 用页面隐藏代替服务端权限。 +- 用策略名称代替完整算法。 +- 用“技术上预留”冒充用户可用功能。 + +## 28. 规格变更规则 + +- 新增功能前先更新本说明书的产品行为、权限、数据和验收案例,再实施。 +- 修改算法必须增加版本号,历史结果保留原版本,不静默重算成新口径。 +- 修改数据源必须逐字段验证,不允许整站无审查切源。 +- 修改视觉必须同时验收日间、夜间、1080P、4K和移动端。 +- 删除功能前确认其数据保留、导出和回退策略。 +- “待设计或待升级”转为正式标准必须经过用户确认,并从待设计清单移入对应正文。 + +--- + +本说明书的完成标准不是“与旧代码一致”,而是:一个新的实现者只阅读本文,能够知道每个用户在每种时间、权限、数据状态和终端下应该看到什么、能做什么、系统如何计算,以及如何证明结果正确。