Add IPO break risk reward overlay

Request:
- Analyze the current HK IPO batch from break probability, capital efficiency, and risk/reward.
- Test whether names such as 01688 deserve a higher defensive ranking than their heat score implies.

Changes:
- Added rules/ipo_break_risk_reward_v0.yaml as an experimental defensive overlay.
- Split the new framework into break protection, capital efficiency, and upside optionality.
- Added historical break-rate calibration anchors from analysis_model_v0_dataset.csv.
- Updated the 2026-06-22 IPO report with a defensive risk/reward ranking and dual execution guidance.
- Logged the rule change and its caveats.

Verification:
- Ran git diff --check and git diff --cached --check.
- Parsed the new YAML file with PyYAML.
- Recomputed key historical break-rate anchors from the current model dataset.
This commit is contained in:
2026-06-22 09:38:30 +00:00
parent 4c9cf85f9e
commit 915dabaaa1
3 changed files with 241 additions and 3 deletions
@@ -42,6 +42,30 @@
基本面补充后的执行含义:短线申购仍不应改成纯基本面排序。若目标是 D1/T1 的供需弹性,`01956` 仍是当前首选;若目标是“公司质量优先”,`01688``03661``09630``01956` 更稳,但它们需要更好的临近截止热度来证明短线胜率。`01688` 尤其要分开看:公司质量是强的,IPO 交易属性暂时是弱的。
## 破发概率和资金效率框架
如果目标从“谁最可能大涨”切到“谁的风险收益比更好”,就不能只看申购倍数。低倍数有两面:它提高资金效率和中签确定性,但也可能说明需求承接不强。因此新增 `ipo_break_risk_reward_v0` 防守型覆盖层,把三个维度拆开打分:`破发保护` 看 T0 结构、T0.95 需求、基本面和发行吸收能力;`资金效率` 看一手金额、低倍数带来的预期分配效率和锁资时间;`上行弹性` 看热度、题材和稀缺性。总分公式是 `5 * 破发保护 + 6 * 资金效率 + 4 * 上行弹性`,即约 50% 看破发保护、30% 看资金效率、20% 看上行。
历史校准给这个角度提供了两个重要底线。`analysis_model_v0_dataset.csv` 274 条 D1 标签中,全样本破发率约 29.9%;T0 分数 `>=8` 的破发率约 23.3%T0 `<=4` 的破发率约 38.5%。发行规模也不是越小越安全:HK$50 亿以上发行样本破发率约 23.1%,低于 HK$10 亿样本约 31.9%。真正明显降低破发的是最终公开认购极强,最终公开认购 `>=1000x` 样本破发率约 9.0%;但 `10x 至 100x` 样本破发率反而约 46.0%。当前使用的是 T0.95 非官方热度,不是最终官方公开认购,所以只能当防守型排序,不是单票概率承诺。
| 防守排名 | 股票 | 破发保护 | 资金效率 | 上行弹性 | 防守型分 | PM 判断 |
|---:|---|---:|---:|---:|---:|---|
| 1 | `03661` | 7.8 / 中低风险 | 3.0 | 2.7 | 67.8 | 平衡最好:盈利半导体资产、发行吸收能力尚可,热度不爆但也不冷。 |
| 2 | `01688` | 7.2 / 中低风险 | 4.0 | 1.4 | 65.6 | 防守型申购逻辑成立:基本面和大体量降低破发尾部,但上行弹性弱。 |
| 3 | `01956` | 6.9 / 中低风险 | 2.0 | 4.3 | 63.7 | 不是防守票,是高热度高弹性票;资金效率差,盈利质量还没兑现。 |
| 4 | `01191` | 5.7 / 中风险 | 3.5 | 3.4 | 63.1 | 光模块题材和增长强,但亏损、低毛利、现金流压力使破发保护不够硬。 |
| 5 | `09630` | 7.0 / 中低风险 | 2.5 | 2.8 | 61.2 | 基本面防守强,但一手金额高,资金效率弱于 `01688`。 |
| 6 | `06715` | 6.3 / 中风险 | 3.6 | 1.6 | 59.5 | 基本面强于热度,冷门导致需求保护不足;适合等更近截止复查。 |
| 7 | `02272` | 4.8 / 中高风险 | 4.0 | 2.4 | 57.6 | 一手便宜、热度中性,但 T0 结构和成长性一般,防守分不高。 |
| 8 | `06915` | 5.0 / 中风险 | 4.1 | 1.7 | 56.4 | 高毛利小众医药,资金效率好;当前 1.20x 热度太弱。 |
| 9 | `09637` | 4.2 / 中高风险 | 4.0 | 2.8 | 56.2 | 18A-B 管线资产,资金效率可以,但现有利润无法提供破发保护。 |
| 10 | `03952` | 4.9 / 中高风险 | 3.6 | 2.3 | 55.3 | 机器人链条有题材,但亏损且 1.95x 热度不足。 |
| 11 | `06228` | 3.7 / 中高风险 | 4.8 | 1.2 | 52.1 | 一手低、容易中,但项目型资源资产缺少 D1 防守。 |
| 12 | `02672` | 3.8 / 中高风险 | 4.0 | 2.0 | 51.0 | 收入增长不差,但低毛利和亏损使破发保护弱。 |
| 13 | `02697` | 1.5 / 高风险 | 4.8 | 1.9 | 43.9 | 低倍数只是容易中,不等于安全;极早期商业化仍应回避。 |
用这套体系看,`01688` 的风险收益比确实比原热度排序显示得更好:它不适合当“爆发收益第一”的票,但适合当“破发尾部相对可控、资金效率较好”的防守型候选。若只做一只追弹性,仍是 `01956`;若更重视少占资金、少破发、稳一点的 D1 退出,排序应改看 `03661``01688``09630`,其中 `01688` 可以小额参与,但不能因为 6.54x 低热度就把破发风险视为很低。
## 可申购名单重排
市场热度加分口径:`<10x = -3``10x 至 100x = 0``100x 至 1000x = +3``1000x 至 5000x = +6`。排序先看 `T0 + 热度`,再看截止时间和 PM 判断。
@@ -75,10 +99,10 @@
## 执行建议
- 2026-06-23 截止组:优先`01956``03661` 可小额或等更近截止快照;`09630``02272``01688``06228` 不排前列
- 2026-06-23 截止组:追弹性优先看 `01956`防守/资金效率口径优先看 `03661``01688``09630``01688` 不排在爆发主申购前列,但可作为小额防守型候选
- 2026-06-24 截止组:`01191` 暂列第一;`09637` 次之;`02672` 因低于 10x 热度降级。
- 2026-06-25 截止组:`03952``06715` 结构分高,但当前热度太冷,必须在 2026-06-24 或 2026-06-25 截止前复查。
- 如果只能做一只,当前答案是 `01956`;如果要分散,第二选择也应等 6 月 23 日更近截止的热度确认后再定。
- 如果只能做一只且目标是 D1 弹性,当前答案`01956`;如果目标是少破发、少占资金、稳一点的风险收益比,优先比较 `03661``01688`,并等 6 月 23 日更近截止的热度确认后再定。
## 本次数据接入和护栏
@@ -95,6 +119,6 @@
- VBKR/Jieli 热度页归档:`data/raw/market_heat/vbkr_ipo_hk_index_20260622T085500Z.html`
- VBKR/Jieli 热度页:`https://www.vbkr.com/ipo/hk/v2/ipo-hk-index`
- 模型数据集:`data/snapshots/analysis_model_v0_dataset.csv`
- 评分规则:`rules/ipo_score_v0.yaml``rules/ipo_score_v0_5_market_heat_trial.yaml`
- 评分规则:`rules/ipo_score_v0.yaml``rules/ipo_score_v0_5_market_heat_trial.yaml``rules/ipo_break_risk_reward_v0.yaml`
- 基本面横向对比:上述 13 只候选的 HKEX 招股书抽文本,索引见 `data/snapshots/source_refs.csv`
- 新增招股书:`data/raw/02697/prospectus_2026-06-22_2026062200041.pdf``data/raw/03952/prospectus_2026-06-22_2026062200047.pdf``data/raw/06715/prospectus_2026-06-22_2026062200025.pdf``data/raw/06915/prospectus_2026-06-22_2026062200065.pdf`
+191
View File
@@ -0,0 +1,191 @@
version: ipo_break_risk_reward_v0
effective_date: 2026-06-22
status: experimental_overlay
owner_skill: analyst
base_models:
- ipo_score_v0
- ipo_score_v0_95_final_heat_trial
purpose: >
Add a defensive risk/reward overlay for Hong Kong IPO subscription decisions.
This overlay is designed for investors who care about D1 break avoidance,
cash-lockup efficiency, and expected allocation efficiency, not only headline
first-day upside. It does not replace the heat-adjusted subscription score.
targets:
primary: D1 non-break probability, defined as D1 sell return versus IPO offer price > 0
secondary:
- cash-lockup and expected allocation efficiency
- D1 upside optionality
- trade-off between defensive quality and pop-seeking heat
data_policy:
allowed_live_inputs:
- T0 prospectus structure score
- archived T0.95 market-heat multiple observed before the executable order cutoff
- offer size
- minimum subscription amount
- subscription deadline and expected allotment date
- prospectus-stage fundamentals
calibration_inputs:
- archived historical D1 return labels
- final public oversubscription buckets
- historical offer size and minimum subscription buckets
forbidden_live_inputs:
- official allotment results released after the user's order cutoff
- grey-market return
- D1 price performance
caveat: >
Current T0.95 market heat has no completed D1 labels in the archive yet.
Historical final public oversubscription can guide bucket design but must
not be treated as an input that was visible before a live order.
empirical_calibration_snapshot:
dataset: data/snapshots/analysis_model_v0_dataset.csv
analysis_as_of: 2026-06-22T08:55:00Z
labeled_d1_rows: 274
all_sample_break_rate: 29.9%
reference_break_rates:
T0_score_gte_8: 23.3%
T0_score_5_to_7: 26.7%
T0_score_lte_4: 38.5%
offer_size_gte_5000m_hkd: 23.1%
offer_size_1000m_to_5000m_hkd: 28.0%
offer_size_lt_1000m_hkd: 31.9%
final_public_oversubscription_gte_1000x: 9.0%
final_public_oversubscription_100x_to_1000x: 35.7%
final_public_oversubscription_10x_to_100x: 46.0%
final_public_oversubscription_lt_10x: 35.8%
score_components:
break_protection_score:
range: 0_to_10
interpretation: Higher score means lower estimated break risk.
components:
T0_structure_support:
range: 0_to_2
points:
T0_score_gte_8: 2.0
T0_score_5_to_7: 1.2
T0_score_1_to_4: 0.5
T0_score_lt_1: 0.0
T0_95_demand_support:
range: 0_to_3
points:
margin_heat_lt_1x: 0.0
margin_heat_1x_to_3x: 0.5
margin_heat_3x_to_10x: 1.0
margin_heat_10x_to_100x: 1.5
margin_heat_100x_to_1000x: 2.5
margin_heat_gte_1000x: 3.0
fundamental_support:
range: 0_to_3
points:
mature_profitable_cash_generative: 3.0
profitable_quality_growth: 2.5
stable_profitable_low_growth: 2.0
high_growth_lossmaking: 1.0
early_stage_or_project_asset: 0.0_to_0.5
note: >
This remains analyst-scored until issuer fundamentals are structured
in the dataset. Use prospectus-stage facts only.
supply_absorption_support:
range: 0_to_2
points:
offer_size_gte_5000m_hkd: 2.0
offer_size_2000m_to_5000m_hkd: 1.6
offer_size_800m_to_2000m_hkd: 1.2
offer_size_300m_to_800m_hkd: 0.8
offer_size_lt_300m_hkd: 0.5
note: >
Larger deals can cap upside, but the current archive shows lower
break rates for larger offer-size buckets.
capital_efficiency_score:
range: 0_to_5
interpretation: >
Higher score means a better chance of getting useful allocation with less
cash locked, lower one-lot cost, or shorter lockup.
components:
minimum_subscription_amount:
range: 0_to_2
points:
lt_3000_hkd: 2.0
gte_3000_lt_7000_hkd: 1.5
gte_7000_lt_10000_hkd: 1.0
gte_10000_hkd: 0.5
allocation_efficiency_from_heat:
range: 0_to_2
points:
margin_heat_lt_1x: 2.0
margin_heat_1x_to_3x: 1.8
margin_heat_3x_to_10x: 1.5
margin_heat_10x_to_100x: 1.0
margin_heat_100x_to_1000x: 0.5
margin_heat_gte_1000x: 0.2
note: >
Low heat is positive for allocation efficiency but not for demand
support. Do not confuse easier allocation with lower break risk.
lockup_timing:
range: 0_to_1
points:
standard_two_day_cash_lock: 1.0
longer_weekend_or_holiday_lock: 0.8
unusually_long_or_unclear_lock: 0.5
upside_optionality_score:
range: 0_to_5
interpretation: Higher score means better D1 pop potential, not lower risk.
components:
demand_momentum:
range: 0_to_2.5
points:
margin_heat_lt_1x: 0.0
margin_heat_1x_to_3x: 0.3
margin_heat_3x_to_10x: 0.6
margin_heat_10x_to_100x: 1.2
margin_heat_100x_to_1000x: 2.0
margin_heat_gte_1000x: 2.5
scarcity_from_offer_size:
range: 0_to_1
points:
offer_size_lt_800m_hkd: 1.0
offer_size_800m_to_2000m_hkd: 0.8
offer_size_2000m_to_5000m_hkd: 0.5
offer_size_gte_5000m_hkd: 0.2
theme_and_sponsor_optionality:
range: 0_to_1.5
note: >
Analyst-scored from prospectus-stage sector narrative, sponsor
quality, and current market appetite. Use this as an option value,
not a substitute for demand support.
combined_score:
defensive_risk_reward_score:
range: 0_to_100
formula: >
5 * break_protection_score
+ 6 * capital_efficiency_score
+ 4 * upside_optionality_score
weights:
break_protection: 50%
capital_efficiency: 30%
upside_optionality: 20%
bands:
gte_65: defensive_priority_candidate
gte_60_lt_65: balanced_candidate
gte_55_lt_60: watch_only_or_small
lt_55: avoid_unless_new_evidence
usage:
- Use alongside the heat-adjusted IPO score, not instead of it.
- A low subscription multiple improves allocation efficiency but weakens demand support.
- A mature profitable issuer can have low break risk but low D1 upside.
- A high-heat thematic issuer can have high D1 upside but poor cash efficiency and weaker fundamental downside support.
- Re-score after T1 allotment results; official public oversubscription should replace T0.95 heat once it becomes stage-safe.
known_limitations:
- Fundamentals are still analyst-scored rather than extracted into structured factors.
- T0.95 market-heat snapshots do not yet have completed D1 labels in the archive.
- The score is ordinal and comparative within a batch; it is not a standalone probability forecast.
- Historical bucket rates are not yet industry-neutral or market-regime-neutral.
+23
View File
@@ -1,5 +1,28 @@
# Rule Change Log
## 2026-06-22 - Add defensive IPO break-risk/reward overlay
Request:
- Evaluate the current IPO batch from break probability, cash efficiency, and risk/reward rather than only heat-adjusted upside.
Change:
- Added `rules/ipo_break_risk_reward_v0.yaml` as an experimental overlay.
- Split the new lens into break protection, capital efficiency, and upside optionality.
- Added empirical calibration anchors from `analysis_model_v0_dataset.csv`, including historical D1 break rates by T0 score, offer-size bucket, and final public oversubscription bucket.
- Updated the 2026-06-22 latest IPO report with a defensive risk/reward ranking for the 13 current candidates.
Rationale:
- A low subscription multiple can improve allocation and cash-lockup efficiency, but it does not automatically reduce break risk.
- Mature profitable issuers such as `01688` may have better defensive risk/reward than their heat score implies, while high-heat names such as `01956` remain more pop-driven.
Verification:
- Recomputed the calibration anchors from the current model dataset.
- Checked that the overlay is documented as ordinal and comparative, not as a standalone probability forecast.
## 2026-06-15 - Add T0.95 late-order heat stage
Request: