tradingSystem/docs/盘中改判与信号聚合方案_2026-09-09.md

145 lines
6.9 KiB
Markdown
Raw Permalink Normal View History

# 盘中改判与信号聚合2026-09-09 落地记录)
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
> 方案已实施完毕,本文改成落地记录:做了什么、实测读数是多少、怎么验证、怎么回退。
> 台账见两个仓库各自的 `docs/复盘决定台账.md`(持仓管理系统 001 到 005择时决策系统 001 到 004
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
---
## 一、两件事各解决什么
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**第一件。** 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。
现在点一下票名,抽屉里按时间倒序摊开它今天的全部信号。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**第二件。** 新建仓被研判驳回后,那只票当天就不再被评估。现在盘中输入确实变了就解除一次,
重新问一遍;同时择时决策系统新增一条主动通道,遍历候选池找今天转强的票。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
---
## 二、实测读数09-09 收盘,全部只读、未落任何表)
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**按代码回扫。** 四方股份 16 条、0.36 秒五路全部读到、没有触到回扫上限。第二次点同一只票走缓存0.001 秒。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**量比口径。** 三只票交叉验证:
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
| 股票 | 较昨收 | 时段折算量比 | 与当天研判说法对不对得上 |
|---|---|---|---|
| 四方股份 | +7.58% | 1.128 | 对得上。10:12 驳回理由正是"今日突破量能未确认" |
| 长源电力 | +2.22% | 1.553 | 量比够但涨幅不够 |
| 洛阳钼业 | -0.82% | 0.806 | 都不够 |
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**解锁试算。** 11 只被驳回的票按 11:30 那一刻算,**一只都不解锁**
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
- 9 只较驳回价没走够 2%,其中 5 只在跌
- 四方股份的转多留痕在 10:05早于 10:12 的驳回,按第一条解锁条件不算新信息
- 唯一接近的是 600875.SH涨 4.73%、量比 2.408,只因为当天的驳回行是旧格式、没有基线快照,判不了"是不是相对驳回那一刻变强"
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
这说明阈值不松。部署之后新的驳回行都带基线快照,这类票会被正常解锁。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**跨系统闭环。** 持仓管理系统写候选池键,择时决策系统立刻读到,两侧算出的读数完全一致
(四方股份量比都是 1.128,长源电力都是 1.554)。这是"三处同源"那条纪律的运行时证据。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
---
## 三、必须知道的三件事
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**一、改完之后不会立刻追高买入。** 两只票的现价都高于择时买入区间上沿:
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
| 股票 | 买入区间 | 现价 |
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
|---|---|---|
| 四方股份 | 39.60 到 40.60 | 42.60 |
| 长源电力 | 24.25 到 25.38 | 26.18 |
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
即使解锁重问、研判放行、你在页面上点了头,落成指令之后择时仍会说"高于上沿,不追"
指令挂在窗口期里等价格回落。**解锁重问买到的不是"立刻追高",而是"让这只票进入待办、等回调时自动买入"。**
追高那条线一个字没改。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**二、不追高那道闸量的是相对今日开盘,不是相对昨收。** 四方股份今天较昨收涨 7.6%,较开盘是 -0.2%
所以它其实从没被那道闸拦过。这次只登记口径,不改闸。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
**三、资金流开全量比原方案想的危险。** 实施时查出两处:股票池门控总开关默认关着时覆盖面等于
全市场(日均一千三到一千六条,没底牌的票逐条走冷启动重算,可能一天几百次打满大模型队列);
流出侧会触发风控仲裁,大模型不可用时硬规则会直接判卖出。所以加了方向闸、覆盖面闸与冷启动配额,
第一阶段只放流入侧。详见择时决策系统台账 003。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
---
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
## 四、验证命令
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
### 甲、持仓管理系统(在它所在的服务器上,仓库根目录)
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
单测。预期最后一行是 `ALL SUITES PASS`
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker compose run --rm --no-deps -v "$PWD:/app" pms-web python scripts/run_tests.py
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
解锁判定试算。只读,一行都不写。预期打印当日被驳回的票与逐只的解锁判定:
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker compose run --rm --no-deps -v "$PWD:/app" pms-web python -c "from datetime import datetime; from app.services import proposal_service as ps, reask_service as rs; jk = ps._judge_rejected_open_keys(); print('当日被研判驳回:', len(jk), '只'); print('解锁:', rs.evaluate_all(jk, datetime.now()) or '(无)')"
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
全链试算,不落任何表。预期打印候选数与分流结果:
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker compose run --rm --no-deps -v "$PWD:/app" pms-web python -c "from app.services import proposal_service as p; import json; print(json.dumps(p.scan_and_route(dry_run=True), ensure_ascii=False)[:600])"
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
单票信号回扫。预期打印条数与耗时,五路都标 ok
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker compose run --rm --no-deps -v "$PWD:/app" pms-web python -c "import json,time; from app.services import upstream_signals as u; t=time.time(); d=u.by_code('601126.SH', force=True); print('%d 条 %.2f 秒' % (len(d['timeline']), time.time()-t)); print(json.dumps(d['sources'], ensure_ascii=False))"
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
### 乙、择时决策系统(在它所在的服务器上,仓库根目录)
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
三个自检。每个预期最后一行都是 `ALL OK`
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker exec trader_worker_brain python3 scripts/selftest_strength_scan.py
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker exec trader_worker_brain python3 scripts/selftest_pms_judge_force.py
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker exec trader_worker_brain python3 scripts/selftest_metrics_scope.py
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
候选池键通不通。预期打印"候选池 N 只"与代码列表:
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker exec trader_worker_brain python3 -c "from workers.strength_scan import load_universe; print(load_universe())"
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
单轮扫描试跑。总开关关着时预期是 `SKIP 总开关关着`
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
```bash
docker exec trader_worker_brain python3 -c "from workers.strength_scan import run_scan; print(run_scan())"
```
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
---
## 五、上线顺序与开关
| 段 | 做什么 | 前提 | 观察多久 |
|---|---|---|---|
| 第零段 | 两侧代码全部到位、全部测试绿、容器重启 | — | 半天,只看日志没有新报错 |
| 第一段 | 打开解锁重问(页面改参数,即时生效,不用重启) | 第零段完成 | 三个交易日 |
| 第二段 | 打开强势扫描的观察档(只记不派,**一次大模型都不打** | 第一段观察满三天 | 两个交易日 |
| 第三段 | 关掉观察档,真派单 | 第二段读数正常 | 三个交易日 |
| 第四段 | 资金流分发半开(全量 + 只放流入 + 覆盖面收着) | **必须单独一段** | 两个交易日 |
| 第五段 | 资金流分发全开(放两侧) | 第四段全绿,且当日兜底卖出恒为 0 | 两个交易日 |
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
第一段与第二段为什么不能同时开:它们会互相喂 —— 强势扫描产的转多广播正好是解锁重问的第一条解锁条件。
同时开就分不清"今天解锁了五次"是解锁阈值定得准,还是扫描在制造信号。
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
## 六、回退
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
三条互相独立,可以单独拉:
点股票看它今天的全部信号:按代码回扫接口、抽屉、遮罩空白四处修复(台账 055 第一件) 信号栏一行等于上游流里的一条原始消息,一只活跃票一天十来条散在好几个分组里。 现在点一下票名就能把它今天的全部信号按时间倒序摊开。 后端: - upstream_signals.by_code() 按代码回扫五个上游源。快照口径注定不全(告警每类只留 最新 20 条),到下午一只活跃票早盘的信号早被挤掉,所以这条路径分页倒序回扫(每页 500 条,上限 PMS_UPSTREAM_BYCODE_SCAN 默认 5000):两条按日期分键的流整键就是今天, 两条不分键的流扫到今天零点为止且不算截断。同源同分钟同值合并计数,跨源永不合并。 按票缓存八秒防连点,单源失败不拖垮整体且逐源标明。实况分没有时间,只进快照段不 编时间戳。只读纪律与快照相同:一律 XREVRANGE/ZREVRANGE,不建消费组、不 ACK、不写。 - GET /api/upstream/signals/{ts_code},只能点击触发,绝不进轮询。 前端: - 抽屉两段取数:先用手上的快照渲染,第一帧就有内容;同时发回扫请求,回来替换成完整 版并把口径说明从「可能不全」翻成「已回扫到今天开盘」。补全失败保留快照挂黄条带重试。 - 三处入口:信号栏每行票名(14 处,@click.stop 免得顺手翻开风控卖出的理由条)、持仓表 「今天的信号」列(连「今天没有」也可点,速览口径下的「没有」可能是假的)、消息栏两处。 - 遮罩空白四处修复:整体失败不再抹平成空数据(原来失败时页面显示「今天没有信号」, 在风控面板上这是最危险的一种谎);告警派生的三个分组补失败角标、各路空文案给失败 态让位;失败角标的样式选择器漏了信号栏;错误横幅在遮罩之上再浮一份;抽屉层级写死 3000 压住浮层 2010 与遮罩 2005,打开前先收浮层。选股计划抽屉补加载提示。 测试:新增 scripts/test_batch24_units.py(9 例),已在 run_tests.py 的清单与例数表、 test_wiring.py 的路由清单三处登记。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:53:29 +08:00
1. 资金流分发:改服务器环境文件回只留痕,重建那一个容器
2. 强势扫描:改环境文件把总开关关掉,重启大脑工作进程
3. 解锁重问:页面上把总开关改成关,**即时生效,不用重启**