This commit is contained in:
GitHub
2026-09-02 13:16:41 +08:00
21 changed files with 1378 additions and 55 deletions
+50
View File
@@ -206,6 +206,56 @@ u1 范围与价格非线性质相关(茅台价格 140x → u1 范围 300x
`commands/transaction.py:73,97``unknown_last`pytdx 原来直接丢弃。
### 3.4 市场异动(0x1237)异动类型与数据区(已确认,Issue #62)
`mac/commands/unusual.py`:每条 32 字节记录 = `<H6sBBBHH>` 头(15B+ 13B 类型数据区
`<B2fI`v1, v2, v3, v4+ offset 28 保留字节(全类型实测恒 0x00)+ `<BH>` 时间。
**2026-09-01 全天跟踪实测**09:25~15:05 每 10 分钟一轮全量拉取 SH/SZ/BJ,收盘 17848 条)
补齐 4 个缺失类型:
| 类型 | 语义 | 数据区语义 | 证据 |
|------|------|-----------|------|
| 0x13 | 竞价试盘(试买/试卖) | v1=0x00 试买(申报价高于昨收)/ 0x01 试卖(低于昨收);v2=申报价;v3=竞价量(手) | 2026-09-02 全量 552 条对照昨收:v1 方向规律 549 条一致(2 条恰等于昨收 + 1 条异常);触发窗口 09:15~09:20。旧实现一律显示「竞价试买」,试卖方向描述错误 |
| 0x15 | 竞价/尾盘异动(拉升/下跌/平稳),**双时刻信号** | v1=0x02/0x03/0x01 方向档(±0.5% 分档);v2=时段尾段价格变动(相对昨收 pp);v3=该时段成交量(手) | 开盘竞价:早间 1191 条全部落在 09:25:00~09:25:02;收盘:86 条全部落在 15:00:01~15:00:04SH 52 / SZ 29 / BJ 5),v1 分档规律与早间一致、幅度更小(±0.5%~±2.6%)。v2 参考时刻扫描收敛于 09:23:30~09:24:0060 样本 MAE 0.11pp,受竞价 3 秒采样粒度限制);v3 略小于最终撮合量(如 600551 v3=40254 vs 终值 44865)。desc 按记录小时区分「竞价/尾盘」前缀 |
| 0x16 | 盘中强势/弱势 | v2=触发时涨跌幅;v1=带符号强弱等级(0x01~0x03 强势 1~3 级,0xFD~0xFF 弱势 1~3 级,补码);v3≈v2(差值 mean 0.83pp,语义未定) | 09:25 的 49 条样本 v2 与当日开盘涨幅(open/pre_close-1**49/49 精确一致**;全时段与收盘涨跌幅符号一致率 97%~100%;v1 六组对应 v2 区间互不重叠且单调(0x03: +7.1%~+245.9%、0xFD: -10.0%~-9.0% 等) |
| 0x1D | 急速拉升 | v1 恒 0x00(方向);v2=短窗涨幅(阈值下限 +0.6%);v3 恒 0 | 全天 1127 条,v2 恒正(+0.6%~+3.9% |
| 0x1E | 急速下跌 | v1 恒 0x01(方向);v2 恒负(-0.6%~-4.0%);v3 恒 0 | 全天 586 条 |
**0x14 的竞价试盘子族**09:15:00~09:25 期间撮合参考价触板/近板即触发(SH 早间 531 条),
与 PC 客户端推送协议的「涨停试盘/跌停试盘」对应。数据区布局与盘中 0x14 相同
v1 方向、data[1] sub_type、float 价/量),现有解析器无需改动——如 600551 09:15:00
竞价参考价 9.08(+10.06%,恰在涨停价)→「封涨停板」;600127 09:15:00 参考价 10.84
-9.97%)→「逼近跌停」。
**全天类型普查结论**:收盘全量 17848 条中类型集恒为 17 种(0x03~0x0B、0x10、0x11、
0x13~0x16、0x1D、0x1E),午间、下午、收盘竞价各窗口均无新类型码出现;2026-09-02
盘中(10:27)复查亦为同一 17 种。已知但两个交易日零触发的 2 种:0x0C 区间缩量、
0x12 大单锁盘(语义仍承自 pytdx2 一系,待采样验证)。PC 推送协议特有的「大笔买入/卖出、
主力急入/急出、急速上涨/猛烈下跌、强势封涨停/跌停、涨幅超 10% 整数倍」等信号
PigQuant 逆向的 0x40080cd1+ 消息 ID 体系)在 0x1237 拉取协议中**无对应类型码**,
两套协议的信号空间不同构:PC 端「逼近/封/打开涨跌停」对应 0x14 子类型、「买一/卖一
剩余大」对应 0x10/0x11、「急速拉升/猛烈打压」对应 0x1D/0x1E。
**排除项**
- pytdx2QuantJia/pytdx2 `parser/stock.py`)把 0x15 标作"尾盘(对倒/拉升)"——只对了一半:
0x15 在开盘竞价(09:25)与收盘(15:00)双时刻触发,他们大概只观测过下午的记录;
其 0x16"盘中弱势/强势"方向语义(v2 符号)与实测一致。
- 0x00~0x02、0x0D、0x0E、0x0F、0x17~0x1C、0x1F+ 全天零出现(未实现或极罕见)。
- 0x16 的 v1 等级公式未完全破解:等级与 v2 非纯函数关系(L2/L3 区间在 +7.1%~+9.0% 重叠),
疑与涨停幅度(ST/创业/科创)相关,待后续验证。
**请求监控参数**`<HH2xH2xH5H` 尾部 6×H,默认 1,200,30,40,50,200)单维扫描
(每位置 15 个候选值):位置 1~4 完全惰性;位置 0 仅低字节有效(≥0x400 返回空);
位置 5 在 1~127 区间致命(bit7 或 0 才有效)。所有有效变体返回类型集完全一致——
**这 6 个参数不是信号类型开关**,真实字段划分可能并非 6 个独立 H。
**其他观察**
- 北交所(Market.BJ=2)同样支持 0x1237(当日 1030 条,类型集相同)。
- 异动列表非静态快照:午间休市期间计数仍在漂移(0x07: 499→604),服务端持续重算/改写记录。
- 数据区第 4 槽(offset 25~28)本库按 uint32 解(`<B2fI`),pytdx2 按 float 解
`<Bfff`);对既有类型仅 0x10 大单托盘使用该槽,两种解法在该场景下显示等价,语义归属待定。
## 四、硬跳过的字节块
### 4.1 xdxr_info 9字节响应头部(已确认:请求回显)