diff --git a/.agents/skills/hk-ipo-analyst/SKILL.md b/.agents/skills/hk-ipo-analyst/SKILL.md index 309a47f..7a04434 100644 --- a/.agents/skills/hk-ipo-analyst/SKILL.md +++ b/.agents/skills/hk-ipo-analyst/SKILL.md @@ -93,14 +93,15 @@ Do not lead broad candidate reports with post-listing reviews; keep those after ## Report Name Display Rules -For all analyst-generated Markdown reports, prediction cards, review cards, and broad candidate tables, display IPO names in Chinese by default. +For all analyst-generated Markdown reports, prediction cards, review cards, and broad candidate tables, display the market-facing stock name rather than the issuer's full legal name. -- In every table that identifies IPOs, keep the stock-code column as ticker/code only and add a dedicated `中文名` column immediately after it. -- Do not put English company names in the stock-code column, and do not use English company names as the primary display label in report tables. -- Treat `中文名` as the stock-app-style Chinese display name, not the issuer's full legal name. Prefer `stock_short_name` first, then an official or archived Chinese short name from HKEX Chinese pages, broker pages, or prospectus/allotment text. Examples: use `圣邦股份`, not `圣邦微电子(北京)股份有限公司`; use `领益智造`, not `广东领益智造股份有限公司`. +- In every table that identifies IPOs, keep the stock-code column as ticker/code only and add a dedicated `股票名` column immediately after it. +- Do not put company names in the stock-code column, and do not use legal company names as the primary display label in report tables. +- Treat `股票名` as the stock-app-style display name. Prefer `stock_short_name` first, then an official or archived Chinese short name from HKEX Chinese pages, broker pages, or prospectus/allotment text. Examples: use `圣邦股份`, not `圣邦微电子(北京)股份有限公司`; use `领益智造`, not `广东领益智造股份有限公司`. +- If no sourced Chinese short stock name is available but an archived source gives an English stock/display name, use that English stock name as-is. Example: use `MERDEKAGOLD-DRS` for `06228` instead of leaving the report display name blank. - Keep the full legal Chinese issuer name in `company_name_zh` for archival/source disambiguation, and mention it only in prose when the legal entity identity matters. -- If no sourced short Chinese display name is available, use `hk-ipo-archivist` to refresh or backfill it before writing the report. If it still cannot be sourced, write `data_gap` in the `中文名` column and state the gap; do not substitute an English name or invent a machine-translated short name. -- English legal names may remain in source paths, URLs, raw source titles, quoted source context, or narrow notes where needed for disambiguation, but they should not replace Chinese display names in the report body. +- If no sourced stock/display name is available in any language, use `hk-ipo-archivist` to refresh or backfill it before writing the report. If it still cannot be sourced, write `data_gap` in the `股票名` column and state the gap; do not invent a machine-translated short name. +- English legal names may remain in source paths, URLs, raw source titles, quoted source context, or narrow notes where needed for disambiguation, but they should not replace sourced stock/display names in the report body. - Apply this rule consistently to the actionable ranking, fundamentals table, closed/waiting list, A/H overlay, recent 30-day review, and generated single-ticker reports. ## Latest Candidate Report Refresh diff --git a/data/snapshots/analysis_model_v0_dataset.csv b/data/snapshots/analysis_model_v0_dataset.csv index b0a061f..0793702 100644 --- a/data/snapshots/analysis_model_v0_dataset.csv +++ b/data/snapshots/analysis_model_v0_dataset.csv @@ -301,7 +301,7 @@ ipo_score_v0,2026-06-23T10:59:36Z,01688,LINGYI iTECH (GUANGDONG) COMPANY,广东 ipo_score_v0,2026-06-23T10:59:36Z,01956,"Beijing Zhongke WengeAI Science and Technology Co., Ltd",北京中科闻歌科技股份有限公司,中科闻歌,Main Board,new_listing_information,2026-06-26,2026-06-23,2026-06-23,2026-06-25,,,,60.7,900.46,900.46,,,200,12262.4,0.05,2225190,,,2026-06-22T23:00:18Z,T0_95_final_heat,VBKR/Jieli,1828.39,01956_t0_95_final_heat_vbkr_20260622T230018Z,6,17,t0_5_gte_12,,,,,,0,11,,11,t0_gte_8,,strong_watch,0.76,,,,,,0,0,,,,,,,data/raw/01956/prospectus_2026-06-17_2026061700025.pdf,,offer_size:4:800m_to_2000m|public_pct:3:lte_5pct|min_subscription:1:gte_10000|offer_price:2:30_to_100|over_allotment:1:present,margin_subscription:6:1000x_to_5000x, ipo_score_v0,2026-06-23T10:59:36Z,02272,Keytop Parking Inc.,厦门科拓通讯技术股份有限公司,科拓股份,Main Board,new_listing_information,2026-06-26,2026-06-17,2026-06-23,2026-06-25,,,,39.55,399.941,399.941,,,60,2396.92,0.1,1516842,,,2026-06-22T23:00:18Z,T0_95_final_heat,VBKR/Jieli,255.32,02272_t0_95_final_heat_vbkr_20260622T230018Z,3,7,t0_5_5_to_7,,,,,,0,4,,4,t0_1_to_4,,neutral,0.633333,,,,,,0,0,,,,,,,data/raw/02272/prospectus_2026-06-17_2026061700071.pdf,,offer_size:1:300m_to_800m|public_pct:1:5pct_to_10pct|min_subscription:-1:lt_3500|offer_price:2:30_to_100|over_allotment:1:present,margin_subscription:3:100x_to_1000x, ipo_score_v0,2026-06-23T10:59:36Z,03661,SG Micro Corp,圣邦微电子(北京)股份有限公司,圣邦股份,Main Board,new_listing_information,2026-06-26,2026-06-23,2026-06-23,2026-06-25,,,,85.2,4600.9,4600.9,,,100,8605.92,0.1,8100180,,,2026-06-22T23:00:18Z,T0_95_final_heat,VBKR/Jieli,40.01,03661_t0_95_final_heat_vbkr_20260622T230018Z,0,9,t0_5_8_to_11,,,,,,0,9,,9,t0_gte_8,,strong_watch,0.76,,,,,,0,0,,,,,,,data/raw/03661/prospectus_2026-06-17_2026061700041.pdf,,offer_size:3:2000m_to_5000m|public_pct:1:5pct_to_10pct|min_subscription:2:3500_to_10000|offer_price:2:30_to_100|over_allotment:1:present,margin_subscription:0:10x_to_100x, -ipo_score_v0,2026-06-23T10:59:36Z,06228,PT Merdeka Gold Resources Tbk,,,Main Board,new_listing_information,2026-06-26,2026-06-17,2026-06-23,2026-06-25,,,,26.6,2385.18,2385.18,,,100,2686.82,0.1,13450290,,,2026-06-22T23:00:18Z,T0_95_final_heat,VBKR/Jieli,2.37,06228_t0_95_final_heat_vbkr_20260622T230018Z,-3,2,t0_5_lt_5,,,,,,0,5,,5,t0_5_to_7,,positive_watch,0.738318,,,,,,0,0,,,,,,,data/raw/06228/prospectus_2026-06-17_2026061700075.pdf,,offer_size:3:2000m_to_5000m|public_pct:1:5pct_to_10pct|min_subscription:-1:lt_3500|offer_price:1:5_to_30|over_allotment:1:present,margin_subscription:-3:lt_10x, +ipo_score_v0,2026-06-23T10:59:36Z,06228,PT Merdeka Gold Resources Tbk,,MERDEKAGOLD-DRS,Main Board,new_listing_information,2026-06-26,2026-06-17,2026-06-23,2026-06-25,,,,26.6,2385.18,2385.18,,,100,2686.82,0.1,13450290,,,2026-06-22T23:00:18Z,T0_95_final_heat,VBKR/Jieli,2.37,06228_t0_95_final_heat_vbkr_20260622T230018Z,-3,2,t0_5_lt_5,,,,,,0,5,,5,t0_5_to_7,,positive_watch,0.738318,,,,,,0,0,,,,,,,data/raw/06228/prospectus_2026-06-17_2026061700075.pdf,,offer_size:3:2000m_to_5000m|public_pct:1:5pct_to_10pct|min_subscription:-1:lt_3500|offer_price:1:5_to_30|over_allotment:1:present,margin_subscription:-3:lt_10x, ipo_score_v0,2026-06-23T10:59:36Z,09630,"CIRCUIT FABOLOGY MICROELECTRONICS EQUIPMENT CO., LTD.",合肥芯碁微电子装备股份有限公司,芯碁微装,Main Board,new_listing_information,2026-06-26,2026-06-17,2026-06-23,2026-06-25,,,,252.73,3244.71,3244.71,,,50,12763.9,0.1,1925798,,,2026-06-22T23:00:18Z,T0_95_final_heat,VBKR/Jieli,233.32,09630_t0_95_final_heat_vbkr_20260622T230018Z,3,10,t0_5_8_to_11,,,,,,0,7,,7,t0_5_to_7,,positive_watch,0.738318,,,,,,0,0,,,,,,,data/raw/09630/prospectus_2026-06-17_2026061700039.pdf,,offer_size:3:2000m_to_5000m|public_pct:1:5pct_to_10pct|min_subscription:1:gte_10000|offer_price:1:gte_100|over_allotment:1:present,margin_subscription:3:100x_to_1000x, ipo_score_v0,2026-06-23T10:59:36Z,01191,"Crealights Technology Co., Ltd.",北京海光芯正科技股份有限公司,海光芯正,Main Board,new_listing_information,2026-06-29,2026-06-18,2026-06-24,2026-06-26,,,,114,1531.19,1531.19,,,50,5757.48,0.1,0,,,2026-06-23T10:59:36Z,T0_95_final_heat,VBKR/Jieli,474.27,01191_t0_95_final_heat_vbkr_20260623T105936Z,3,11,t0_5_8_to_11,,,,,,0,8,,8,t0_gte_8,,strong_watch,0.76,,,,,,0,0,,,,,,,data/raw/01191/prospectus_2026-06-18_2026061800079.pdf,,offer_size:4:800m_to_2000m|public_pct:1:5pct_to_10pct|min_subscription:2:3500_to_10000|offer_price:1:gte_100|over_allotment:0:missing_or_zero,margin_subscription:3:100x_to_1000x, ipo_score_v0,2026-06-23T10:59:36Z,02672,"Baige Online Digital Technology Co., Ltd.",白鸽在线(厦门)数字科技股份有限公司,白鸽在线,Main Board,new_listing_information,2026-06-29,2026-06-18,2026-06-24,2026-06-26,,,,20.28,676.224,676.224,,,200,4096.91,0.1,5001660,,,2026-06-23T10:59:36Z,T0_95_final_heat,VBKR/Jieli,40.96,02672_t0_95_final_heat_vbkr_20260623T105936Z,0,6,t0_5_5_to_7,,,,,,0,6,,6,t0_5_to_7,,positive_watch,0.738318,,,,,,0,0,,,,,,,data/raw/02672/prospectus_2026-06-18_2026061800045.pdf,,offer_size:1:300m_to_800m|public_pct:1:5pct_to_10pct|min_subscription:2:3500_to_10000|offer_price:1:5_to_30|over_allotment:1:present,margin_subscription:0:10x_to_100x, diff --git a/reports/2026-06-23_latest_ipo_candidates_analysis.md b/reports/2026-06-23_latest_ipo_candidates_analysis.md index 10dae7a..9b66e0a 100644 --- a/reports/2026-06-23_latest_ipo_candidates_analysis.md +++ b/reports/2026-06-23_latest_ipo_candidates_analysis.md @@ -4,14 +4,14 @@ - `rule_version`: `ipo_score_v0` + `T0_95_final_heat` 市场热度覆盖层 + `ipo_break_risk_reward_v0` - HKEX 当前页标注:`Updated: 23 Jun 2026` - HKEX 当前页结构化代码:`00668`、`02697`、`06915`、`03952`、`06715`、`02672`、`01191`、`09637`、`09630`、`06228`、`03661`、`01956`、`02272`、`01688`、`02335`、`06106`、`06067`、`06132`、`01392`、`02667` -- 本轮新增事实:HKEX 英文当前页和中文当前页已按 2026-06-23T10:59:36Z 重刷;中文页和 VBKR/Jieli 短名已用于回填 `company_name_zh` / `stock_short_name`,报告 `中文名` 列改用股票 App 风格简称;`06228` 官方中文页仍只列境外发行人英文主体名,中文名保留 `data_gap`;VBKR/Jieli 2026-06-23T10:59:36Z 非官方热度快照已归档,仍可操作的 `T0_95_final_heat` 为 8 条;`02335`、`06106` 本轮仍未出现可解析官方 T1 需求;`03661`、`01688` 的 A 股 Yahoo chart 和 HKD/CNY 汇率原始 JSON 已按本轮时间重新归档。 +- 本轮新增事实:HKEX 英文当前页和中文当前页已按 2026-06-23T10:59:36Z 重刷;中文页和 VBKR/Jieli 短名已用于回填 `company_name_zh` / `stock_short_name`,报告 `股票名` 列改用股票 App 风格简称(中文简称优先,无中文简称时用英文股票名);`06228` 官方中文页仍只列境外发行人英文主体名,`股票名` 使用 VBKR/Jieli 归档英文简称 `MERDEKAGOLD-DRS`;VBKR/Jieli 2026-06-23T10:59:36Z 非官方热度快照已归档,仍可操作的 `T0_95_final_heat` 为 8 条;`02335`、`06106` 本轮仍未出现可解析官方 T1 需求;`03661`、`01688` 的 A 股 Yahoo chart 和 HKD/CNY 汇率原始 JSON 已按本轮时间重新归档。 - 阶段护栏:下表“申购倍数”只指 `ipo_market_heat` 中 VBKR/Jieli 的非官方实时保证金/申购热度,不能等同于 HKEX `ipo_demand.public_oversubscription_times`。官方 T1 数据只在“已截止 / T1 / D1”部分使用。T2 灰市只在有可复现来源时写入;当前多数 6 月中下旬新股仍是 `T2_grey_market` 缺口。 ## 可申购名单排序 截至香港时间 2026-06-23 18:59:36,VBKR/Jieli 解析的 6 月 23 日截止组最早券商截止时间已经过去,因此 `01956`、`09630`、`03661`、`01688`、`02272`、`06228` 不再进入“当前可申购”排序。当前仍可操作的 8 只候选均使用本轮 `T0_95_final_heat` 行,排序先看可执行性和热度,再看 T0 结构、基本面防守、资金效率和题材弹性。参考 D1 正收益率来自当前 `analysis_model_v0_dataset.csv` 的历史校准分桶,不是单票承诺。 -| 排名 | 股票 | 中文名 | 截止 / T1 / T2 / D1 | T0 分 | VBKR/Jieli 热度 | 加分 | T0+热度 | 参考 D1 正收益率 | PM 判断 | +| 排名 | 股票 | 股票名 | 截止 / T1 / T2 / D1 | T0 分 | VBKR/Jieli 热度 | 加分 | T0+热度 | 参考 D1 正收益率 | PM 判断 | |---:|---|---|---|---:|---:|---:|---:|---:|---| | 1 | `01191` | 海光芯正 | 06-24 / 06-26 / 06-26 / 06-29 | 8 | 474.27x | +3 | 11 | 76.0% | 当前唯一主动优先候选;光模块/AI 数据中心叙事强,热度接近 500x,但亏损和现金流压力要求小额。 | | 2 | `09637` | 礼邦医药-B | 06-24 / 06-26 / 06-26 / 06-29 | 6 | 251.50x | +3 | 9 | 73.8% | 热度继续升温,一手资金低;但 18A-B 管线资产,适合作为高风险小额进攻,不适合防守仓位。 | @@ -28,7 +28,7 @@ 短线申购不能改成纯基本面排序,但基本面决定破发尾部和 D1 承接质量。当前仍可操作批次可分成四层: -| 层级 | 股票 | 中文名 | 基本面判断 | 对申购排序的影响 | +| 层级 | 股票 | 股票名 | 基本面判断 | 对申购排序的影响 | |---|---|---|---|---| | 成熟盈利/全球品牌 | `00668` | 安克创新 | 2025 年收入 RMB305.1 亿元、毛利率 43.9%、净利润 RMB26.2 亿元;全球化品牌和产品线最强,但 2025 年经营现金流降至 RMB4.8 亿元,且亚马逊渠道占比仍高。 | 破发尾部较低,但 0.73x 热度显示当前申购需求不足。先观察,等热度确认。 | | 盈利或接近盈利的设备/零部件 | `03952`、`06715`、`06915` | 来福谐波;鲟龙科技;江西生物 | `03952` 有机器人零部件题材和强 T0 结构;`06715`、`06915` 规模较小但质量好于低分 18A 票。 | 基本面提供防守,但当前热度不足,不能排到 `01191` 前。 | @@ -43,7 +43,7 @@ 这些历史数值只用于校准。当前可申购候选还没有官方 T1,只有非官方 `T0_95_final_heat`,所以不能把 VBKR/Jieli 倍数直接当最终公开认购倍数。 -| 防守排序 | 股票 | 中文名 | 破发保护 | 资金效率 | 上行弹性 | 防守型分 | PM 判断 | +| 防守排序 | 股票 | 股票名 | 破发保护 | 资金效率 | 上行弹性 | 防守型分 | PM 判断 | |---:|---|---|---:|---:|---:|---:|---| | 1 | `01191` | 海光芯正 | 6.8 / 中低风险 | 3.0 | 4.3 | 68.8 | 热度、题材和 T0 结构共振,是当前最均衡的可申购候选。 | | 2 | `06715` | 鲟龙科技 | 6.7 / 中低风险 | 3.5 | 2.3 | 63.7 | 防守质量不错,但 7.78x 热度不足,等待确认。 | @@ -71,14 +71,14 @@ 这些股票不再作为“当前可申购”排序对象。官方 T1 数据只在已发布分配结果后使用;未发布时明确标记 `data_gap`。 -| 股票 | 中文名 | 当前阶段 | 最新归档事实 | PM 判断 | +| 股票 | 股票名 | 当前阶段 | 最新归档事实 | PM 判断 | |---|---|---|---|---| | `01956` | 中科闻歌 | 6 月 23 日截止,等 T1/T2 | 最新可执行热度仍是 2026-06-22T23:00:18Z 的 1828.39x;本轮 18:59 HKT 快照因已过券商截止未写入 `T0_95`。 | 若早盘已下单,保留等 T1;现在不追单。 | | `09630` | 芯碁微装 | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 233.32x,T0+热度 10;T1 预计 2026-06-25。 | 半导体设备弹性仍可观察,但当前不新增申购。 | | `03661` | 圣邦股份 | 6 月 23 日截止,等 T1/T2;A/H 特殊定价 | 最新可执行热度为 40.01x,T0 9;A 股为 `300661.SZ`,2026-06-23 收 RMB137.16,H 最大发行价 HK$85.20 折 RMB73.72,较 A 股约折价 46.3%。 | 高质量防守票,A/H 折价和 A 股动量提供估值锚,但不是套利;等待官方 T1 和 T2。 | | `01688` | 领益智造 | 6 月 23 日截止,等 T1/T2;A/H 特殊定价 | 最新可执行热度为 19.89x,T0 7;A 股为 `002600.SZ`,2026-06-23 收 RMB16.05,H 最大发行价 HK$10.18 折 RMB8.81,较 A 股约折价 45.1%。 | 成熟盈利但热度中性、发行体量大;A/H 折价要结合港股流动性和 T1,不单独构成强申购。 | | `02272` | 科拓股份 | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 255.32x,但 T0 只有 4。 | 热度强但结构弱,等 T1 不追。 | -| `06228` | `data_gap` | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 2.37x,T0+热度 2;HKEX 中文页只列境外发行人主体名,中文名未归档。 | 项目型资源资产且需求冷,回避;中文名不得用机器翻译替代。 | +| `06228` | MERDEKAGOLD-DRS | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 2.37x,T0+热度 2;HKEX 中文页只列境外发行人英文主体名;VBKR/Jieli 来源页股票名为 `MERDEKAGOLD-DRS`。 | 项目型资源资产且需求冷,回避;股票名使用来源英文简称,不做机器翻译。 | | `02335` | 麦科医药-B | 已截止,等 T1/D1 | 截至 2026-06-23T10:59:36Z,项目库没有官方 `ipo_demand` 行,也没有归档 allotment-results 来源;HKEX 当前页仍只显示公告和招股书列链接。 | `data_gap`: 等官方 T1;不得用 2026-06-17 34.84x 旧热度替代最终公开认购。 | | `06106` | 仙工智能 | 已截止,等 T1/D1 | 截至 2026-06-23T10:59:36Z,项目库没有官方 `ipo_demand` 行,也没有归档 allotment-results 来源;HKEX 当前页仍只显示公告和招股书列链接。 | `data_gap`: 等官方 T1;旧 326.58x 热度只能作为 T0.5 观察,不是最终需求。 | | `06067` | 星源材质 | 已上市,D1 复盘 | 官方 T1:公开认购 1563.16x,国际配售 14.34x,209,580 份有效申请,22,263 份成功申请;D1 收盘相对发行价 +29.96%,成交约 HK$698.8m。2026-06-23 官方澄清 PDF 已归档,文本显示其他信息保持不变。 | 需求验证强且 D1 正收益,但涨幅低于近期极端 AI/半导体票;T2 灰市仍无可复现归档。 | @@ -90,7 +90,7 @@ `03661` 和 `01688` 已有内地 A 股,定价逻辑不同于纯港股首发。两份招股书都说明 H 股发行价会参考定价日前或之前最后一个交易日的 A 股收盘价,并只披露最高 H 股发行价;同时明确 A 股和 H 股通常不可互换、不可互通,价格可以长期存在差异。因此,A 股锚能降低估值不确定性,但不能机械视为套利空间。 -| 股票 | 中文名 | A 股锚 | A 股最新走势 | H 股最高发行价折价 | 定价/流通护栏 | 短线含义 | +| 股票 | 股票名 | A 股锚 | A 股最新走势 | H 股最高发行价折价 | 定价/流通护栏 | 短线含义 | |---|---|---|---|---|---|---| | `03661` | 圣邦股份 | 同一发行人,深交所创业板 `300661.SZ`;621,014,624 股 A 股,全球发售 54,001,200 股 H 股,约占发行后 8%。 | 2026-06-23 收 RMB137.16;较 5 个交易日前 +17.4%,较 20 个交易日前 +15.6%。 | HK$85.20 × HKDCNY 0.8652 = RMB73.72,较 A 股收盘约折价 46.3%。若最终 H 价低于最高价,折价会进一步扩大。 | 招股书披露 H 股价格参考 A 股收盘价,且 A/H 不可互换或直接结算。 | 折价和 A 股强势是估值支撑,但 40.01x 非官方热度只算中性;等 T1/T2 决定是否兑现。 | | `01688` | 领益智造 | 同一发行人,深交所 `002600.SZ`;7,308,198,680 股 A 股,全球发售 811,811,880 股 H 股,约占发行后 10%。 | 2026-06-23 收 RMB16.05;较 5 个交易日前 +6.7%,较 20 个交易日前 -0.2%。 | HK$10.18 × HKDCNY 0.8652 = RMB8.81,较 A 股收盘约折价 45.1%。若最终 H 价低于最高价,折价会进一步扩大。 | 招股书披露 H 股价格参考 A 股收盘价,H 股公众持股和发行市值满足 19A 规则,但 A/H 不可互换。 | 折价很大,但发行体量约 HK$82.64 亿且热度仅 19.89x;需要官方 T1 和港股承接确认。 | @@ -105,7 +105,7 @@ T2 灰市口径:本轮可复现的 ipohk 历史源是 Tier 3 第三方摘要 内部 12 只 D1 样本中,10 只非负、2 只破发,平均 D1 约 +82.0%。`high_conviction_subscribe` 的 9 只中有 8 只 D1 正收益,平均约 +109.5%,但 `06132` 是显著反例。最终官方公开认购 `>=5000x` 的 4 只全部上涨,平均约 +213.8%;`100x 至 1000x` 的 2 只为 1 正 1 负,平均约 -22.9%,说明“有一定倍数”不等于安全。 -| 股票 | 中文名 | 上市日 | 结构 | T1 表现 | T2 灰市 | D1 表现 | 复盘判断 | +| 股票 | 股票名 | 上市日 | 结构 | T1 表现 | T2 灰市 | D1 表现 | 复盘判断 | |---|---|---|---|---|---|---|---| | `00901` | `data_gap` | 2026-05-27 | T0 4;智能家居硬件/软件 | 公开 1971.99x;国际 2.23x;总分 23 | ipohk Tier 3:+93.6%,一手约 +HK$3,070;非执行摘要 | 内部 `data_gap`;ipohk 第三方 +86.59% | 内部价格源仍缺口;T2 和第三方 D1 都强,但不能写入项目内 D1 行。 | | `02723` | `data_gap` | 2026-05-27 | T0 7;AI 营销和企业销售工具 | 公开 5480.23x;国际 3.41x;总分 28 | ipohk Tier 3:+168.5%,一手约 +HK$9,350 | +265.8%;成交约 HK$702.4m | AI 题材叠加极强公开认购,D1 比 T2 更强。 | @@ -126,7 +126,7 @@ T2 灰市口径:本轮可复现的 ipohk 历史源是 Tier 3 第三方摘要 ## 数据缺口与护栏 - `02335`、`06106`:截至 2026-06-23T10:59:36Z,项目库没有官方 `ipo_demand` 行,也没有归档 allotment-results 来源;标记为 T1 `data_gap`,不得用旧 VBKR/Jieli 热度替代官方公开认购。 -- `06228`:HKEX 中文当前页仍只列境外发行人主体名,项目库保留中文名 `data_gap`,报告不得使用机器翻译或英文名替代中文名。 +- `06228`:HKEX 中文当前页仍只列境外发行人英文主体名,项目库保留法定中文名 `data_gap`;报告 `股票名` 使用 VBKR/Jieli 归档英文简称 `MERDEKAGOLD-DRS`,不做机器翻译。 - `06067`:2026-06-23 HKEX 当前页的 allotment-results PDF 已归档为 `data/raw/06067/allotment_results_2026-06-23_2026062300141.pdf`。提取文本显示它是对中文分配结果的澄清/更新,且说明其他信息保持不变;结构化 T1 需求仍来自 `data/raw/06067/allotment_results_2026-06-22_2026062202141.pdf`。 - `00901`:内部 D1 价格源仍失败;ipohk 外部历史值仅作交叉检查,不能写入项目内 `price_performance`。 - `T2_grey_market`:项目政策要求可复现且可存储来源。当前可用的 ipohk 字段是 Tier 3 历史摘要,最多用于复盘;6 月中下旬新股和当前候选没有可靠 T2 灰市归档,不用 D1 倒推、不用未授权灰市页面补数。 diff --git a/reports/README.md b/reports/README.md index 10dae7a..9b66e0a 100644 --- a/reports/README.md +++ b/reports/README.md @@ -4,14 +4,14 @@ - `rule_version`: `ipo_score_v0` + `T0_95_final_heat` 市场热度覆盖层 + `ipo_break_risk_reward_v0` - HKEX 当前页标注:`Updated: 23 Jun 2026` - HKEX 当前页结构化代码:`00668`、`02697`、`06915`、`03952`、`06715`、`02672`、`01191`、`09637`、`09630`、`06228`、`03661`、`01956`、`02272`、`01688`、`02335`、`06106`、`06067`、`06132`、`01392`、`02667` -- 本轮新增事实:HKEX 英文当前页和中文当前页已按 2026-06-23T10:59:36Z 重刷;中文页和 VBKR/Jieli 短名已用于回填 `company_name_zh` / `stock_short_name`,报告 `中文名` 列改用股票 App 风格简称;`06228` 官方中文页仍只列境外发行人英文主体名,中文名保留 `data_gap`;VBKR/Jieli 2026-06-23T10:59:36Z 非官方热度快照已归档,仍可操作的 `T0_95_final_heat` 为 8 条;`02335`、`06106` 本轮仍未出现可解析官方 T1 需求;`03661`、`01688` 的 A 股 Yahoo chart 和 HKD/CNY 汇率原始 JSON 已按本轮时间重新归档。 +- 本轮新增事实:HKEX 英文当前页和中文当前页已按 2026-06-23T10:59:36Z 重刷;中文页和 VBKR/Jieli 短名已用于回填 `company_name_zh` / `stock_short_name`,报告 `股票名` 列改用股票 App 风格简称(中文简称优先,无中文简称时用英文股票名);`06228` 官方中文页仍只列境外发行人英文主体名,`股票名` 使用 VBKR/Jieli 归档英文简称 `MERDEKAGOLD-DRS`;VBKR/Jieli 2026-06-23T10:59:36Z 非官方热度快照已归档,仍可操作的 `T0_95_final_heat` 为 8 条;`02335`、`06106` 本轮仍未出现可解析官方 T1 需求;`03661`、`01688` 的 A 股 Yahoo chart 和 HKD/CNY 汇率原始 JSON 已按本轮时间重新归档。 - 阶段护栏:下表“申购倍数”只指 `ipo_market_heat` 中 VBKR/Jieli 的非官方实时保证金/申购热度,不能等同于 HKEX `ipo_demand.public_oversubscription_times`。官方 T1 数据只在“已截止 / T1 / D1”部分使用。T2 灰市只在有可复现来源时写入;当前多数 6 月中下旬新股仍是 `T2_grey_market` 缺口。 ## 可申购名单排序 截至香港时间 2026-06-23 18:59:36,VBKR/Jieli 解析的 6 月 23 日截止组最早券商截止时间已经过去,因此 `01956`、`09630`、`03661`、`01688`、`02272`、`06228` 不再进入“当前可申购”排序。当前仍可操作的 8 只候选均使用本轮 `T0_95_final_heat` 行,排序先看可执行性和热度,再看 T0 结构、基本面防守、资金效率和题材弹性。参考 D1 正收益率来自当前 `analysis_model_v0_dataset.csv` 的历史校准分桶,不是单票承诺。 -| 排名 | 股票 | 中文名 | 截止 / T1 / T2 / D1 | T0 分 | VBKR/Jieli 热度 | 加分 | T0+热度 | 参考 D1 正收益率 | PM 判断 | +| 排名 | 股票 | 股票名 | 截止 / T1 / T2 / D1 | T0 分 | VBKR/Jieli 热度 | 加分 | T0+热度 | 参考 D1 正收益率 | PM 判断 | |---:|---|---|---|---:|---:|---:|---:|---:|---| | 1 | `01191` | 海光芯正 | 06-24 / 06-26 / 06-26 / 06-29 | 8 | 474.27x | +3 | 11 | 76.0% | 当前唯一主动优先候选;光模块/AI 数据中心叙事强,热度接近 500x,但亏损和现金流压力要求小额。 | | 2 | `09637` | 礼邦医药-B | 06-24 / 06-26 / 06-26 / 06-29 | 6 | 251.50x | +3 | 9 | 73.8% | 热度继续升温,一手资金低;但 18A-B 管线资产,适合作为高风险小额进攻,不适合防守仓位。 | @@ -28,7 +28,7 @@ 短线申购不能改成纯基本面排序,但基本面决定破发尾部和 D1 承接质量。当前仍可操作批次可分成四层: -| 层级 | 股票 | 中文名 | 基本面判断 | 对申购排序的影响 | +| 层级 | 股票 | 股票名 | 基本面判断 | 对申购排序的影响 | |---|---|---|---|---| | 成熟盈利/全球品牌 | `00668` | 安克创新 | 2025 年收入 RMB305.1 亿元、毛利率 43.9%、净利润 RMB26.2 亿元;全球化品牌和产品线最强,但 2025 年经营现金流降至 RMB4.8 亿元,且亚马逊渠道占比仍高。 | 破发尾部较低,但 0.73x 热度显示当前申购需求不足。先观察,等热度确认。 | | 盈利或接近盈利的设备/零部件 | `03952`、`06715`、`06915` | 来福谐波;鲟龙科技;江西生物 | `03952` 有机器人零部件题材和强 T0 结构;`06715`、`06915` 规模较小但质量好于低分 18A 票。 | 基本面提供防守,但当前热度不足,不能排到 `01191` 前。 | @@ -43,7 +43,7 @@ 这些历史数值只用于校准。当前可申购候选还没有官方 T1,只有非官方 `T0_95_final_heat`,所以不能把 VBKR/Jieli 倍数直接当最终公开认购倍数。 -| 防守排序 | 股票 | 中文名 | 破发保护 | 资金效率 | 上行弹性 | 防守型分 | PM 判断 | +| 防守排序 | 股票 | 股票名 | 破发保护 | 资金效率 | 上行弹性 | 防守型分 | PM 判断 | |---:|---|---|---:|---:|---:|---:|---| | 1 | `01191` | 海光芯正 | 6.8 / 中低风险 | 3.0 | 4.3 | 68.8 | 热度、题材和 T0 结构共振,是当前最均衡的可申购候选。 | | 2 | `06715` | 鲟龙科技 | 6.7 / 中低风险 | 3.5 | 2.3 | 63.7 | 防守质量不错,但 7.78x 热度不足,等待确认。 | @@ -71,14 +71,14 @@ 这些股票不再作为“当前可申购”排序对象。官方 T1 数据只在已发布分配结果后使用;未发布时明确标记 `data_gap`。 -| 股票 | 中文名 | 当前阶段 | 最新归档事实 | PM 判断 | +| 股票 | 股票名 | 当前阶段 | 最新归档事实 | PM 判断 | |---|---|---|---|---| | `01956` | 中科闻歌 | 6 月 23 日截止,等 T1/T2 | 最新可执行热度仍是 2026-06-22T23:00:18Z 的 1828.39x;本轮 18:59 HKT 快照因已过券商截止未写入 `T0_95`。 | 若早盘已下单,保留等 T1;现在不追单。 | | `09630` | 芯碁微装 | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 233.32x,T0+热度 10;T1 预计 2026-06-25。 | 半导体设备弹性仍可观察,但当前不新增申购。 | | `03661` | 圣邦股份 | 6 月 23 日截止,等 T1/T2;A/H 特殊定价 | 最新可执行热度为 40.01x,T0 9;A 股为 `300661.SZ`,2026-06-23 收 RMB137.16,H 最大发行价 HK$85.20 折 RMB73.72,较 A 股约折价 46.3%。 | 高质量防守票,A/H 折价和 A 股动量提供估值锚,但不是套利;等待官方 T1 和 T2。 | | `01688` | 领益智造 | 6 月 23 日截止,等 T1/T2;A/H 特殊定价 | 最新可执行热度为 19.89x,T0 7;A 股为 `002600.SZ`,2026-06-23 收 RMB16.05,H 最大发行价 HK$10.18 折 RMB8.81,较 A 股约折价 45.1%。 | 成熟盈利但热度中性、发行体量大;A/H 折价要结合港股流动性和 T1,不单独构成强申购。 | | `02272` | 科拓股份 | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 255.32x,但 T0 只有 4。 | 热度强但结构弱,等 T1 不追。 | -| `06228` | `data_gap` | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 2.37x,T0+热度 2;HKEX 中文页只列境外发行人主体名,中文名未归档。 | 项目型资源资产且需求冷,回避;中文名不得用机器翻译替代。 | +| `06228` | MERDEKAGOLD-DRS | 6 月 23 日截止,等 T1/T2 | 最新可执行热度为 2.37x,T0+热度 2;HKEX 中文页只列境外发行人英文主体名;VBKR/Jieli 来源页股票名为 `MERDEKAGOLD-DRS`。 | 项目型资源资产且需求冷,回避;股票名使用来源英文简称,不做机器翻译。 | | `02335` | 麦科医药-B | 已截止,等 T1/D1 | 截至 2026-06-23T10:59:36Z,项目库没有官方 `ipo_demand` 行,也没有归档 allotment-results 来源;HKEX 当前页仍只显示公告和招股书列链接。 | `data_gap`: 等官方 T1;不得用 2026-06-17 34.84x 旧热度替代最终公开认购。 | | `06106` | 仙工智能 | 已截止,等 T1/D1 | 截至 2026-06-23T10:59:36Z,项目库没有官方 `ipo_demand` 行,也没有归档 allotment-results 来源;HKEX 当前页仍只显示公告和招股书列链接。 | `data_gap`: 等官方 T1;旧 326.58x 热度只能作为 T0.5 观察,不是最终需求。 | | `06067` | 星源材质 | 已上市,D1 复盘 | 官方 T1:公开认购 1563.16x,国际配售 14.34x,209,580 份有效申请,22,263 份成功申请;D1 收盘相对发行价 +29.96%,成交约 HK$698.8m。2026-06-23 官方澄清 PDF 已归档,文本显示其他信息保持不变。 | 需求验证强且 D1 正收益,但涨幅低于近期极端 AI/半导体票;T2 灰市仍无可复现归档。 | @@ -90,7 +90,7 @@ `03661` 和 `01688` 已有内地 A 股,定价逻辑不同于纯港股首发。两份招股书都说明 H 股发行价会参考定价日前或之前最后一个交易日的 A 股收盘价,并只披露最高 H 股发行价;同时明确 A 股和 H 股通常不可互换、不可互通,价格可以长期存在差异。因此,A 股锚能降低估值不确定性,但不能机械视为套利空间。 -| 股票 | 中文名 | A 股锚 | A 股最新走势 | H 股最高发行价折价 | 定价/流通护栏 | 短线含义 | +| 股票 | 股票名 | A 股锚 | A 股最新走势 | H 股最高发行价折价 | 定价/流通护栏 | 短线含义 | |---|---|---|---|---|---|---| | `03661` | 圣邦股份 | 同一发行人,深交所创业板 `300661.SZ`;621,014,624 股 A 股,全球发售 54,001,200 股 H 股,约占发行后 8%。 | 2026-06-23 收 RMB137.16;较 5 个交易日前 +17.4%,较 20 个交易日前 +15.6%。 | HK$85.20 × HKDCNY 0.8652 = RMB73.72,较 A 股收盘约折价 46.3%。若最终 H 价低于最高价,折价会进一步扩大。 | 招股书披露 H 股价格参考 A 股收盘价,且 A/H 不可互换或直接结算。 | 折价和 A 股强势是估值支撑,但 40.01x 非官方热度只算中性;等 T1/T2 决定是否兑现。 | | `01688` | 领益智造 | 同一发行人,深交所 `002600.SZ`;7,308,198,680 股 A 股,全球发售 811,811,880 股 H 股,约占发行后 10%。 | 2026-06-23 收 RMB16.05;较 5 个交易日前 +6.7%,较 20 个交易日前 -0.2%。 | HK$10.18 × HKDCNY 0.8652 = RMB8.81,较 A 股收盘约折价 45.1%。若最终 H 价低于最高价,折价会进一步扩大。 | 招股书披露 H 股价格参考 A 股收盘价,H 股公众持股和发行市值满足 19A 规则,但 A/H 不可互换。 | 折价很大,但发行体量约 HK$82.64 亿且热度仅 19.89x;需要官方 T1 和港股承接确认。 | @@ -105,7 +105,7 @@ T2 灰市口径:本轮可复现的 ipohk 历史源是 Tier 3 第三方摘要 内部 12 只 D1 样本中,10 只非负、2 只破发,平均 D1 约 +82.0%。`high_conviction_subscribe` 的 9 只中有 8 只 D1 正收益,平均约 +109.5%,但 `06132` 是显著反例。最终官方公开认购 `>=5000x` 的 4 只全部上涨,平均约 +213.8%;`100x 至 1000x` 的 2 只为 1 正 1 负,平均约 -22.9%,说明“有一定倍数”不等于安全。 -| 股票 | 中文名 | 上市日 | 结构 | T1 表现 | T2 灰市 | D1 表现 | 复盘判断 | +| 股票 | 股票名 | 上市日 | 结构 | T1 表现 | T2 灰市 | D1 表现 | 复盘判断 | |---|---|---|---|---|---|---|---| | `00901` | `data_gap` | 2026-05-27 | T0 4;智能家居硬件/软件 | 公开 1971.99x;国际 2.23x;总分 23 | ipohk Tier 3:+93.6%,一手约 +HK$3,070;非执行摘要 | 内部 `data_gap`;ipohk 第三方 +86.59% | 内部价格源仍缺口;T2 和第三方 D1 都强,但不能写入项目内 D1 行。 | | `02723` | `data_gap` | 2026-05-27 | T0 7;AI 营销和企业销售工具 | 公开 5480.23x;国际 3.41x;总分 28 | ipohk Tier 3:+168.5%,一手约 +HK$9,350 | +265.8%;成交约 HK$702.4m | AI 题材叠加极强公开认购,D1 比 T2 更强。 | @@ -126,7 +126,7 @@ T2 灰市口径:本轮可复现的 ipohk 历史源是 Tier 3 第三方摘要 ## 数据缺口与护栏 - `02335`、`06106`:截至 2026-06-23T10:59:36Z,项目库没有官方 `ipo_demand` 行,也没有归档 allotment-results 来源;标记为 T1 `data_gap`,不得用旧 VBKR/Jieli 热度替代官方公开认购。 -- `06228`:HKEX 中文当前页仍只列境外发行人主体名,项目库保留中文名 `data_gap`,报告不得使用机器翻译或英文名替代中文名。 +- `06228`:HKEX 中文当前页仍只列境外发行人英文主体名,项目库保留法定中文名 `data_gap`;报告 `股票名` 使用 VBKR/Jieli 归档英文简称 `MERDEKAGOLD-DRS`,不做机器翻译。 - `06067`:2026-06-23 HKEX 当前页的 allotment-results PDF 已归档为 `data/raw/06067/allotment_results_2026-06-23_2026062300141.pdf`。提取文本显示它是对中文分配结果的澄清/更新,且说明其他信息保持不变;结构化 T1 需求仍来自 `data/raw/06067/allotment_results_2026-06-22_2026062202141.pdf`。 - `00901`:内部 D1 价格源仍失败;ipohk 外部历史值仅作交叉检查,不能写入项目内 `price_performance`。 - `T2_grey_market`:项目政策要求可复现且可存储来源。当前可用的 ipohk 字段是 Tier 3 历史摘要,最多用于复盘;6 月中下旬新股和当前候选没有可靠 T2 灰市归档,不用 D1 倒推、不用未授权灰市页面补数。 diff --git a/scripts/archive_t0_5_market_heat.py b/scripts/archive_t0_5_market_heat.py index 5ec6214..a184d96 100644 --- a/scripts/archive_t0_5_market_heat.py +++ b/scripts/archive_t0_5_market_heat.py @@ -306,6 +306,16 @@ def upsert_rows( f"Stock name on source page: {row.stock_name}. Prospectus URL shown by source: {row.prospectus_url}", ), ) + if row.stock_name: + conn.execute( + """ + UPDATE ipo_master + SET stock_short_name = ?, data_as_of = ? + WHERE ticker = ? + AND (stock_short_name IS NULL OR TRIM(stock_short_name) = '') + """, + (row.stock_name, as_of, row.ticker), + ) written += 1 return written @@ -325,6 +335,7 @@ def main() -> int: selected = selected_tickers(args.tickers, parsed_rows, conn) written = upsert_rows(conn, parsed_rows, selected, local_path, file_sha256, args.url, as_of, args.stage) export_snapshot(conn, "ipo_market_heat", "ticker, observed_at") + export_snapshot(conn, "ipo_master", "ticker") export_snapshot(conn, "source_refs", "source_id") subprocess.run( diff --git a/scripts/build_analysis_dataset.py b/scripts/build_analysis_dataset.py index eaffd04..8651987 100644 --- a/scripts/build_analysis_dataset.py +++ b/scripts/build_analysis_dataset.py @@ -71,6 +71,14 @@ def offer_size_hkd_m(row: sqlite3.Row) -> float | None: return None +def stock_name_from_market_heat_notes(notes: str | None) -> str | None: + if not notes or "Stock name on source page:" not in notes: + return None + value = notes.split("Stock name on source page:", 1)[1].strip() + value = value.split(". Prospectus URL shown by source:", 1)[0].strip() + return value or None + + def success_rate(row: sqlite3.Row) -> float | None: valid = as_int(row["valid_applications"]) successful = as_int(row["successful_applications"]) @@ -420,6 +428,7 @@ def fetch_rows(conn: sqlite3.Connection) -> list[sqlite3.Row]: h.provider AS t0_5_provider, h.margin_subscription_multiple AS t0_5_margin_subscription_multiple, h.source_id AS t0_5_source_id, + h.notes AS market_heat_notes, eh.one_hand_win_rate_pct AS external_one_hand_win_rate_pct, eh.public_oversubscription_times AS external_public_oversubscription_times, eh.grey_market_return_pct AS external_grey_market_return_pct, @@ -461,13 +470,14 @@ def build_records(rows: list[sqlite3.Row], as_of: str) -> list[dict[str, Any]]: total_score = t0_score_value + (t1_score_value if structured_t1 else 0) t0_plus_t0_5_score = t0_score_value + t0_5_score_value if t0_5_score_value is not None else None size = offer_size_hkd_m(row) + stock_short_name = row["stock_short_name"] or stock_name_from_market_heat_notes(row["market_heat_notes"]) record: dict[str, Any] = { "model_version": MODEL_VERSION, "analysis_as_of": as_of, "ticker": row["ticker"], "company_name_en": row["company_name_en"], "company_name_zh": row["company_name_zh"], - "stock_short_name": row["stock_short_name"], + "stock_short_name": stock_short_name, "board": row["board"], "status": row["status"], "listing_date": row["listing_date"], diff --git a/scripts/generate_ipo_report.py b/scripts/generate_ipo_report.py index 9f1d773..c241d3e 100644 --- a/scripts/generate_ipo_report.py +++ b/scripts/generate_ipo_report.py @@ -150,8 +150,8 @@ def fmt_int(value: int | None) -> str: return f"{value:,}" -def chinese_display_name(record: dict[str, str]) -> str: - return record.get("stock_short_name") or record.get("company_name_zh") or "" +def stock_display_name(record: dict[str, str]) -> str: + return record.get("stock_short_name") or record.get("company_name_zh") or record.get("company_name_en") or "" def company_display_name(record: dict[str, str]) -> str: @@ -425,7 +425,7 @@ def build_report(record: dict[str, str], rows: list[dict[str, str]], stage: str, paths = source_paths(record, stage) source_lines = [f"- `{path}`" for path in paths] or ["- 本阶段没有记录来源路径。"] company_name = company_display_name(record) - title_name = chinese_display_name(record) or record.get("company_name_en") or "" + title_name = stock_display_name(record) title_prefix = f"{ticker} {title_name}" if title_name else ticker lines = [