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:
@@ -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`
|
||||
|
||||
@@ -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.
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user