Slime 分析框架 v2.4.1(2026-10-12 修补)
v2.4 现行口径:申万二级(已发布 124 个,星耀数据),用户 10/11 16:52 最终确定,10/12 起生效。 历史:10/10 用户确认同花顺二级 90 个(当时申万官方源被 Cloudflare 拦截),现在只作回落。
不是投资建议,不写目标价、买卖指令。缺数据写 UNKNOWN。不执行交易,不改 F12 参数。
一、三层分工
| 层 | 谁 | 做什么 | 边界 |
|---|---|---|---|
| 取数层 | snapshot.py(定时任务由 Slime 建) |
每天只取一次:A股/亚太收盘(--mode a_close,约15:40)、美股/全球宏观收盘(--mode us_close,次日约05:30)。存底稿 data/YYYYMMDD_<mode>.json/.md |
只取数不解读;取不到写 UNKNOWN;单源失败不中断 |
| 研究层 | Asia | 亚太指数、A股19只、链桶、轮动、资金 | 不写美债/商品结论,不写账本判断 |
| 研究层 | Macro | 美股、汇率、美债、商品、情绪、压力指标 | 不写个股账本判断 |
| 研究层 | Book | 账本权重、链桶贡献、Q3门槛对照 | 不改权重、不写加减仓;只认底稿和公告 |
| 合成层 | Slime | 核数(与底稿逐项对齐)、处理冲突、写给用户 | 底稿外的新数须标来源并补登记 |
顺序:取数 → Asia → Macro → Book → Slime。周五周报直接用本周底稿合成,不临时重取。
二、核对规则
- 每个数标来源和收盘/盘中(底稿字段
source、close_or_intraday)。 - 两源冲突:并列写出,不取平均;正文用优先级高的源,另一源入「冲突与弃用」。
- 百分比、价格统一两位小数(汇率四位)。
- 周涨跌固定对上周五收盘(上周五休市则对最近一个收盘日,并注明)。
- 验数须与底稿一致:研究层和合成层引用的数必须与当日底稿相同;不同即视为冲突处理。
- A股19只每日新浪 vs 腾讯自动核对(底稿
核对.新浪vs腾讯,差>0.01pp 标不一致)。
三、三个固定指标(每个收盘都算)
(a) 轮动(v2.4 主口径,覆盖 v2.1 的说明)
- 口径:申万二级行业指数(已发布,IS_PUB=1)共 124 个,数据来自星耀
get_industry_daily。用户 10/11 16:52 最终定申万二级(16:49 定二级,16:50 改一级,16:52 最终定二级),口径切换日 2026-10-12;10/9 底稿只作试跑。 - 取数:和 A 股行情在同一次星耀登录里完成,只取前一交易日到目标日的数据,不拉全部历史。涨跌幅 = 收盘 / 前收(PRE_CLOSE)。不足 124/124,字段标不可用,并整体回落同花顺二级 90 个(字段注明回落原因)。申万可用时不取同花顺,参考字段标「不采集」,以加快速度。
- 指标:
- Spearman ρ:124 个行业今日涨幅排名 vs 前一交易日排名。
- 前十更换数(0–10):今日涨幅前十中,不在前日前十的个数。
- 另外列出今日前十和今日后五。
- 判读阈值建议(推断,不是事实;按实际数据积累后再校准):
- 124 个样本时,ρ 的 5% 显著临界值约 ±0.18(同花顺 90 个时约 ±0.21)。|ρ| < 0.18 视为与前日排名无显著关系。
- 「轮动加快」:ρ 连续 3 个交易日 < 0,且前十更换数 ≥ 6(沿用原阈值;124 个行业比 90 个更细,前十更换天然偏多,可能要上调到 ≥ 7)。
- 「趋势延续」:ρ > 0.18 且前十更换数 ≤ 3。
- 单日不下结论。阈值从 10/12 起用 20 个交易日的分布复核,复核前只写「读数」,不写「加快 / 放缓」的结论。
- 旧口径(同花顺二级 90 个,v2.1 说明见下)只作为回落。
(a-旧) 轮动(v2.1,2026-10-10 修订)
- 口径:同花顺二级行业指数,固定全集 90 个(代码 881101–881284,清单写死在
snapshot.py的 THS_INDUSTRIES)。申万一级官方源(swsresearch)被 Cloudflare 拦截,东财行业板块日 K 被限流,均不用。不同口径不比较。 - 行业排名相关:当日涨幅排名 vs 前一交易日排名的 Spearman 秩相关 ρ(ρ 低或为负 = 轮动快)。涨跌幅由同花顺日 K 收盘价计算。
- 前十更换数:当日涨幅前十里,不在前日前十的个数(0–10)。
- 取数方式:串行,每个请求间隔 0.25 秒,每 30 个暂停 3 秒;覆盖不全时自动补取,最多 3 轮。最终不足 90/90,字段写「覆盖 x/90,不可用」,不给数值。
- AI 硬件资金净流出连续天数:账本 19 只主力净流入合计,从目标日往前数连续为负的天数。串行,每个请求间隔 0.4 秒,最多重试 3 轮。主源东财 fflow(超大单+大单);东财不足 19/19 时整体换新浪 MoneyFlow(特大单+大单)。必须单一来源 19/19,不跨源拼接,因为两源口径不同(10/9 新易盛:东财 −8.83 亿,新浪 +5.62 亿)。两源都不足 19/19 则写「不可用」和各源覆盖只数。底稿里写明用的是哪个源,跨日比较要用同一个源。
- AI 概念板块资金(东财 f62,只有最新交易日):参考项。
- 判读参考(推断,不是事实):ρ 连续 3 日 < 0 且前十更换数 ≥ 6,可称「轮动加快」;单日不下结论。
(b) 资金
- 两融余额(东财 RPTA_RZRQ_LSHJ,T+1 公布,滞后须注明)。
- 北向成交额(沪股通/深股通,东财 RPT_MUTUAL_DEAL_HISTORY;净买额 2024-08 起不披露 → UNKNOWN)。
- 龙虎榜:上榜只数、机构净买(东财机构统计口径)、机构净买/卖前三、账本是否上榜;沪深股通席位与游资方向需逐股席位明细(v2 半自动,由 Asia 补)。
(c) 压力
- HY OAS(FRED BAMLH0A0HYM2)、IG OAS(FRED BAMLC0A0CM),FRED 滞后约 1 个交易日。
- 美债拍卖:最近 5 场 Note/Bond 中标利率、认购倍数(TreasuryDirect FiscalData)。
- VIX 期限结构:VIX9D/VIX、VIX/VIX3M;VIX9D<VIX<VIX3M=正常(contango),反之=倒挂(压力)。
- 已登记的改判线:HY>3.24% 且 IG>0.90% 连续 5 个交易日。
成功判定(v2.1)
底稿每个字段带 ok。只有有值且覆盖达标才算成功:轮动行业 90/90、AI 硬件资金 19/19;步骤失败或 UNKNOWN 为否。成功率 = ok 字段数 / 总字段数。研究层只能引用 ok=是 的字段,ok=否 的照写「不可用」。
SKEW:CNBC 没有这个品种,CBOE 官方 CSV 被 Cloudflare 拦截,改用 Yahoo ^SKEW(正文标明不是交易所原文)。
v2.2 底稿增补(不改已有字段口径)
- 周基准:指数、个股、汇率、商品、美债字段增加
week_base(上周五收盘的值、日期、来源;上周五休市时写明实际基准日)和week_chg(%;美债收益率单位为 bp)。A 股用新浪日 K,腾讯日 K 备用;其他用 Yahoo chart。汇总字段覆盖.周基准只有全覆盖才 ok。 - 结算价:商品和汇率增加
settle,与新浪最新价并存,不替换。商品取 CNBC settlePrice(交易所结算价)。外汇没有结算价,取 CNBC 纽约 17:00 收盘,并标明类型。汇总字段覆盖.结算价。 - 亚太个股和指数:TOPIX、ASX200(CNBC);东京电子 8035、爱德万 6857、三星 005930、海力士 000660、台积电 2330、鸿海 2317(Yahoo 收盘,休市标注)。
- 当日事件:账本 19 只当日公告标题(东财公告接口,巨潮备用;只列标题,不解读)、沪深涨跌家数(东财,只有最新交易日)、涨跌停数(东财涨停池/跌停池)。
- 修正:CNBC 报价时间晚于目标日(例如 RBOB 显示的是周六电子盘时间)时,改用目标日结算价,并标 settle;美债拍卖固定取最近 5 场 Note/Bond。
- 周基准的 USDCNH:Yahoo 只有 1 天历史,改用新浪外汇日 K。SKEW 改用 Yahoo(带浏览器长 UA 会被限流返回 429,脚本里用简单 UA)。AI 硬件资金:东财首轮缺口超过 3 只,或连续失败 4 次,直接整体换新浪源。
- 每项单源失败不中断,取不到写 UNKNOWN,ok 标记独立;
meta.elapsed_s记录单次耗时。
四、全市场覆盖清单(每份收盘稿必须覆盖,缺则 UNKNOWN)
- 股指:上证、深成、创业板、沪深300、科创50、上证50、中证500、恒指、恒生科技、日经225、台湾加权、KOSPI、海峡时报、标普500、纳指、道指、费城半导体
- AI链个股:账本19只;美股 NVDA AVGO AMD TSM MU ANET COHR LITE AAOI CIEN DELL SMCI ORCL VRT TTMI APH CRWV MSFT META AMZN GOOGL
- 期货:标普、纳指、日经225、富时A50
- 汇率:DXY、EUR、GBP、JPY、CNH、KRW、TWD、HKD、AUD
- 美债:2Y、10Y、30Y,及拍卖
- 贵金属:金、银、铂
- 能源:WTI、布伦特、汽油(RBOB)、天然气
- 其他:铜、BTC
- 情绪:CNN Fear & Greed 及 7 个分项;VIX、VIX9D、VIX3M、VVIX、VXN、SKEW、MOVE、OVX、GVZ
五、数据源优先顺序(v2.3)
A 股主数据源:星耀数智(中国银河证券 AmazingData),用户 10/11 同意。口径切换日 2026-10-11,从 10/9 底稿起生效。
- 星耀提供:指数和账本 19 只的日 K、收盘、前收、成交额(日 K 和快照),周基准,两融汇总(沪、深、北合计,与东财口径一致),涨跌家数(全 A 日 K),涨跌停数(规则法),账本公告标题。
- 星耀不提供:主力资金流、港股指数(含恒生科技)、同花顺行业。这几项继续用原来的源。行业轮动仍按用户确认的同花顺二级 90 个,口径不变。
- 交叉核对:星耀的值进正文;新浪和腾讯作为参考字段保留(ref_sina、核对.星耀vs新浪vs腾讯)。涨跌幅差超过 0.01pp,或价格差超过 0.005,标「冲突」,并列,不取平均。东财的两融、涨跌停、公告保留为 ref_东财。
- 资金流单一口径:星耀没有主力资金接口,所以继续只用新浪(东财在封这个 box)。以后星耀如果有接口并能覆盖 19/19,就切到星耀,新浪留作参考字段,并写明切换日。
- 回落:星耀分两段子进程调用,超时后强制结束整个进程组。
- 核心段(日 K、快照、两融、公告),超时 120 秒。失败时 源.星耀数智 标不可用,全部 A 股字段回落新浪/腾讯/东财。
- 非核心段(涨跌家数、涨跌停,要拉全 A 约 5200 只日 K,耗时约 50 秒),超时 120 秒。失败时这两个字段回落东财。
- 两段都不会中断主流程。
- 同一个星耀账号不能并发登录(10/11 再次复现:强制结束一个子进程后马上重新登录,「all」段没有输出,自动回落到 core 段,涨跌家数和涨跌停改由东财提供):后登录的会话会把先登录的挤掉,实测导致子进程没有输出。定时任务和临时调试不要同时跑。
- 运行:snapshot.py 用系统 python 运行;星耀部分通过子进程 xysz_worker.py 调用 /workspace/xysz/.venv/bin/python。账号从 /home/box/.config/xysz/ad.env 读取,不写进底稿。
- 已知口径差异:
- 星耀公告的 PUBLISH_TIME 只有日期,盘后公告记为次日,所以取「目标日至下一交易日前」的公告。
- 星耀公告的日期约定:交易日白天的公告记为当天,盘后公告记为次日,所以「目标日」那一条可能是前一晚的盘后公告。研究层引用时以东财 ref 的披露时间为准。
- 星耀涨跌停数用规则法(主板 10%,创业板和科创 20%),ST(5%)和新股不计,与东财涨跌停池会有差异,并列写出。
行业口径:用户 10/11 指定「银河行业分类 → 万得 → 同花顺 90 个作参考」(未切换)
- 用户 10/11 指定的顺序:先用星耀里的银河证券行业分类和指数,没有再用万得,同花顺 90 个保留为参考。
- 查过星耀:
get_industry_base_info只返回申万行业指数(代码后缀 .SI),一级 31 个、二级 134 个、三级 346 个,共 511 个,其中 IS_PUB=1 的 414 个。有日行情(get_industry_daily,含开高收、前收、流通市值),可以从 2000 年回溯。 - 星耀里没有银河自己的行业分类,也没有万得、中信或证监会分类;个股基础信息里也没有行业字段。
- 耗时对比(10/9 实测):同花顺二级 90 个约 130–155 秒(串行);星耀申万二级 IS_PUB=1 的 124 个全部覆盖,
get_industry_daily耗时 202 秒,因为会拉 2000 年以来的全部历史,同源并不更快。 - v2.4 更新:用户 10/11 16:52 最终定申万二级(已发布 124 个),见第三节 (a)。
- 结论:银河分类和万得口径都接不了,
轮动.行业排名继续用同花顺二级 90 个。可选方案是改用星耀的申万二级 134 个(官方指数,有前收,数据稳定),需要用户确认后再切换。
v2.3 提速(10/11)
- AI 概念资金:停用。底稿里标「不采集」,不计入成功率分母。
- 事件步骤:星耀有公告、涨跌家数时,不再请求东财的涨跌家数和巨潮;东财公告和涨跌停池只请求一次(超时 8 秒,不重试),作为 ref。整个步骤总超时 60 秒。
- 资金流:东财 fflow 单次 6 秒、不重试,连续失败 4 次就换新浪。
- 同花顺轮动:分批每批 30 个,批内 3 线程,批与批之间停 2 秒;补取规则和「不足 90/90 不给数值」的规则都不变。
v2.4.1 修补(10/12)
- 涨跌家数 / 涨跌停的回落顺序:星耀 → Tushare → 东财。
- Tushare 用
daily(沪深全 A 的涨跌幅)计算涨跌家数,用daily收盘价对照stk_limit的涨跌停价,精确判定涨跌停(含 ST)。账号没有limit_list_d权限。 - 请求走 https,http 的 80 端口在 box 上不通;每次请求重试 3 次,失败不中断。
- 10/9 核对:Tushare 涨跌家数 2989/2108/113(样本 5210),星耀 2987/2108/114(样本 5209),只差 1–2 只。涨跌停 Tushare 72/11,与星耀规则法一致;东财涨跌停池是 69/8,口径不同,差异来自东财。
- 恒生科技周基准:Yahoo → Tushare
index_globalHKTECH。10/9 收盘 4197.84,基准 10/02 收盘 4157.94,周涨跌 +0.96%。 - 两融单日变化的比较日:统一为前一个完整披露日(沪、深两市都已披露)。底稿同时给出两个变化:
chg_vs_prev_yi是融资余额变化,rzrq_chg_vs_prev_yi是融资融券余额变化,并写明比较日。 -
10/8 对 9/30:融资余额 +41.39 亿,融资融券余额 +43.07 亿。两个数都对,只是口径不同;Tushare 的 +43.07 是融资融券余额的变化。
-
资金流总预算 120 秒:10/12 试跑中有一次新浪资金流因重试拖到 360 秒。现在新浪单次请求 8 秒超时、最多试 2 次,总预算 120 秒,超时就标不可用(不跨源拼接的规则不变)。
v2.3 待办
- 星耀主力资金流:目前没有对应接口。以后有接口并能覆盖 19/19 再切换。
- AI 概念资金:东财概念板块接口一直 502,星耀没有概念板块,仍 UNKNOWN。
- 恒生科技周基准:已于 v2.4.1 用 Tushare index_global 补上。
- 星耀涨跌停改用快照的 high_limited/low_limited 精确判定:逐只拉快照太慢,暂时不做。
五-旧、其他数据源顺序
- 新浪 hq(A股、港股、外盘期货、外汇、美股)
- 腾讯 qt(A股备源核对)
- CNBC(美股指数、美债收益率、VIX系、亚太指数备源)
- FRED(HY/IG OAS)
- CNN graphdata(Fear & Greed)
- 东财 datacenter / push2(两融、北向、龙虎榜、个股资金流主源);同花顺 d.10jqka(行业轮动);新浪 MoneyFlow(个股资金流备源);Yahoo(只用于 SKEW)
- 巨潮(公告原文,三季报唯一认可来源)
- SGX(富时A50、日经期货结算价核对) 另:TreasuryDirect FiscalData(拍卖)。Yahoo/Investing 只作指数周涨跌兜底并标明。
六、账本锚点(勿改)
19只合计 87% + 现金 13%,HBM 0%,不含 688。
新易盛 9、中际旭创 8、天孚通信 5、工业富联 7、浪潮信息 4、沪电股份 6、深南电路 5、胜宏科技 4、生益科技 5、德福科技 2、兴森科技 3、三环集团 5、长电科技 3、通富微电 2、立讯精密 5、中航光电 3、英维克 5、申菱环境 2、欧陆通 4。
链桶:光模块 22、服务器 11、PCB 25、封测 5、连接器 13、液冷/电源 11。
Q3 门槛:Q3 单季归母 ≥ Q2 单季(见 Q3门槛_环比Q2口径_20261009.md)。
- 容易:立讯、工业富联、中际、沪电、英维克
- 中等:新易盛、天孚、深南、三环、浪潮、兴森、长电、欧陆通
- 难:胜宏、生益、德福、中航光电、申菱
- 最难:通富
七、三季报核对流程(10/23–10/31)
- 每只披露当天,从巨潮下载公告原文(PDF),只认公告原文;媒体、研报、数据终端只作线索。
- 计算 Q3 单季归母 = 前三季度累计归母 − 半年报累计归母;扣非同法计算,并列参考。
- 对照环比 Q2 门槛:主口径归母 Q3 ≥ Q2 → 达标;< Q2 → 证伪。扣非与归母方向不同时并列写明原因(一次性收益、公允价值变动等)。
- 记录:公告编号、披露日期时间、Q3 归母、Q2 归母、差额%、扣非两项、所属档位、结论(达标/证伪),写入
Q3核对_YYYYMMDD.md和验证回测_三步.md第 3 步。 - 达标不是加仓,证伪才进入下一份账本段;不改权重。
- 业绩预告先出的,按预告区间下限对照,正式报告出后覆盖。