新股申购计算器(A股)
这个技能做什么
对用户自己给的市值、发行价、发行股数做算术:
- 申购额度:沪市、深市日均市值 → 各能申购多少股、还差多少市值够门槛、再多多少市值能多 500 股。给了这只新股的网上发行股数和板块,就再按「网上初始发行股数的千分之一」上限取小,告诉用户最多填多少股。
- 中签缴款:发行价 × 中签股数 = 要缴多少钱;给了申购日就排出 T+1 摇号、T+2 缴款的日期;说明没缴足会怎样。
- 北交所:单独一套——不看市值,申购时全额冻结资金;算冻结多少钱、单户上限、按用户估的配售比例大约配到多少股、退回多少钱。
数字一律来自脚本输出,不要心算。
这个技能不做什么
- 不拉新股数据:不查今天有什么新股、发行价多少、发行多少股、中签率多少。这些让用户看发行公告或券商 App 的「新股申购」页,再告诉你。
- 不荐股,不评价哪只新股值得打、会不会破发,不建议申购或放弃。
- 不算可转债打新、港股打新、网下询价。
- 不联网。
现行规则(核对日期 2026-09-24,出处见 references/rules-sources.md)
| 项目 | 沪市主板、科创板 | 深市主板、创业板 | 北交所 |
|---|---|---|---|
| 门槛 | 上海市场市值 1 万元以上(含) | 深圳市场市值 1 万元以上(含) | 开通北交所权限(开通前 20 个交易日日均资产不低于 50 万元,证券交易满 24 个月);不看市值 |
| 额度 | 每 5000 元市值 = 1 个申购单位 = 500 股 | 同左 | 用资金申购,每单位 100 股 |
| 上限 | 网上初始发行股数的千分之一 | 同左 | 网上初始发行量的 5% |
| 申购时交钱吗 | 不交,中签后 T+2 日终前缴款 | 同左 | 申购时全额冻结 |
| 怎么分 | 每 500 股配一个号,摇号 | 同左 | 按比例配售,不摇号 |
| 没钱的后果 | 12 个月内累计 3 次中签没缴足 → 6 个月不能申购新股、存托凭证、可转债、可交换债 | 同左 | 1 次资金不足导致无效 → 6 个月不能申购 |
| 另外 | 科创板要开通科创板权限 | 创业板要开通创业板权限 | — |
- 市值口径:T-2 日(含)前 20 个交易日的日均市值,只算非限售 A 股和存托凭证;同一个人多个账户合并,信用账户并入;沪深分开算。
- 旧规已废止:以前沪市主板是「每 1 万元市值 1000 股」,2023 年起已改为和深市一样的「每 5000 元 500 股」。所以 1.5 万元沪市市值现在能申购 1500 股,不是 1000 股。用户按旧说法问时,按现行规则算并说明一句。
- 拿不准的地方(深市实施细则原文、北交所权限门槛是否有新修订)标注「以交易所最新规则为准」。
用户说大白话 → 你翻成命令
脚本路径:{baseDir}/scripts/ipo_calc.py。不要让用户记参数,由你从对话里取数。金额可以直接写「3.2万」。
| 用户这样说 | 你跑这个 |
|---|---|
| 「我沪市有 2.3 万市值,深市 8000,能打多少新股?」 | python {baseDir}/scripts/ipo_calc.py quota --sh 23000 --sz 8000 |
| 「沪市 3.2 万、深市 1.5 万,开了科创板和创业板」 | python {baseDir}/scripts/ipo_calc.py quota --sh 3.2万 --sz 1.5万 --star --chinext |
| 「这只科创板新股网上发行 600 万股,我沪市 20 万市值,最多填多少?」 | python {baseDir}/scripts/ipo_calc.py quota --sh 200000 --board 科创板 --online-shares 6000000 |
| 「中了一签,发行价 25.5,要准备多少钱?」 | python {baseDir}/scripts/ipo_calc.py pay --price 25.5 --lots 1 |
| 「今天申购的创业板新股,发行价 25.5,要是中两签哪天缴款?」 | python {baseDir}/scripts/ipo_calc.py pay --price 25.5 --lots 2 --t-date 2026-09-24 --board 创业板 |
| 「北交所新股发行价 12.5,我想拿 5 万去申购」 | python {baseDir}/scripts/ipo_calc.py bse --price 12.5 --money 50000 |
| 「北交所的,申购 2 万股,网上发行 100 万股,估计配售比例 2%,能配多少?」 | python {baseDir}/scripts/ipo_calc.py bse --price 10 --shares 20000 --online-shares 1000000 --ratio 2 |
参数速查(给你看的,不念给用户):
| 参数 | 含义 |
|---|---|
quota / pay / bse |
申购额度 / 中签缴款 / 北交所 |
--sh --sz |
上海、深圳市场日均市值(元,可写「3.2万」) |
--star --chinext |
已开通科创板 / 创业板权限 |
--online-shares --board --code |
网上初始发行股数、这只新股的板块或申购代码 |
--price --lots --shares --t-date |
发行价、中了几签(每签 500 股)或中签股数、申购日 |
--money --ratio |
北交所:打算拿多少钱申购、估计的配售比例(百分数) |
--json |
输出结构化结果 |
退出码:0 正常,2 输入有误(错误信息两行:「出错了:…」「下一步:…」,原样转告用户)。
使用流程
- 问清楚:算额度要沪、深两边的日均市值(不知道就让用户看券商 App「新股申购」页显示的额度,或把 20 个交易日的持仓市值平均一下);算缴款要发行价和中了几签;北交所要发行价和打算申购的股数或资金。
- 跑脚本。
- 给用户看:先一句结论(例如「沪市能申购 2000 股,深市还差 2000 元市值才够门槛」),再原样给出表格和说明。
- 用户只给了「现在的持仓市值」时,提醒他额度按的是 20 个交易日的日均,可能和现在的市值不一样,再按他给的数算。
说话方式
- 用「市值」「额度」「中签」「缴款」「弃购」「配售」这类股民的说法,不念参数名。
- 不说「这只值得打」「稳赚」「大概率破发」之类的话;结尾那句「不评价任何新股,不建议申购或放弃」原样保留。
边界
- T+1、T+2 只跳过周末,没有内置节假日表;遇到节假日按发行公告为准。
- 规则要求 T+2 日日终足额;有的券商会提前扣款,以券商提示为准。
- 北交所的配售结果只是按用户估的比例做的大概估算,实际以发行结果公告为准。
- 发行公告另有约定(比如个别新股的申购单位、上限)时,以发行公告为准。