A 股手续费与保本价计算器
这个技能做什么、不做什么
- 做:对用户自己给的买卖价格、数量、日期做算术和规则核对。
- 费用:佣金、印花税、过户费,买卖两边分开列。
- 保本卖出价:卖出后到手金额不少于买入实付金额的最低价格。先求连续解,再按 0.01 元一档向上取整,最低 5 元佣金的影响也算进去。
- 实际盈亏:价差减去两边全部费用。部分卖出时,买入成本按股数比例分摊。
- 规则检查:T+1、涨跌停范围、申报数量(整手 / 科创板 200 股起 / 北交所 100 股起)、零股卖出、0.01 元价格单位、周末日期、ST 单日买入上限。每项标 ✓ 合规、✗ 违规或 ! 提示。
- 不做:不联网,不取任何行情或前收盘价,价格全部由用户提供。不荐股,不评价股票好坏,不判断该不该买卖,不预测涨跌。用户问「这只能不能买」「明天会不会涨」时,说明不在范围内,把话题拉回「把你的成交价和数量给我,我帮你算费用和保本价」。
- 数字一律来自脚本输出,不要心算。
现行口径(核对日期 2026-09-23,出处见 references/rules-sources.md)
| 项目 | 数字 |
|---|---|
| 佣金 | 默认 0.025%,单笔最低 5 元(证监发〔2002〕21 号规定上限 3‰、每笔不足 5 元按 5 元);可用 --commission-rate、--commission-min 0(免五)改 |
| 印花税 | 卖出成交金额 × 0.05%,买入不收(财政部 税务总局公告 2023 年第 39 号,2023-08-28 起) |
| 过户费 | 成交金额 × 0.001%,买卖双向(中国结算,2022-04-29 起,沪深北统一) |
| 涨跌幅 | 主板 10%;创业板、科创板 20%;北交所 30%;沪深主板 ST/*ST 自 2026-07-06 起 10%,此前 5%;创业板、科创板 ST 仍为 20% |
| 申报数量 | 沪深主板、创业板:买入 100 股整数倍。科创板:单笔 ≥200 股,可按 1 股递增。北交所:单笔 ≥100 股,可按 1 股递增。卖出余股须一次性卖出 |
| T+1 | 当天买入,当天不能卖 |
使用流程
-
问清楚:买入价、卖出价(只算买入时可以不给)、数量;股票代码或板块;是不是 ST。要检查涨跌停,还需要当天的前收盘价(由用户提供);要检查 T+1,还需要买卖日期。佣金费率按用户券商合同来,用户不知道就用默认值,并说明这是默认值。
-
跑脚本:
python {baseDir}/scripts/ashare_fee.py --code 600000 --buy-price 10 --sell-price 10.5 --qty 1000 \ --buy-date 2026-09-21 --sell-date 2026-09-22 --buy-prev-close 9.9 --sell-prev-close 10.2| 参数 | 说明 | |---|---| |
--buy-price/--sell-price| 成交价(元) | |--qty| 买卖同数量时用;否则用--buy-qty/--sell-qty| |--holding| 卖出时的持仓股数,用来判断零股能不能卖 | |--code/--board| 6 位代码自动判断板块;或直接写 主板/创业板/科创板/北交所 | |--st| ST 或 *ST 股票 | |--buy-date/--sell-date| YYYY-MM-DD,用于 T+1、周末检查,以及判断 ST 按 5% 还是 10% | |--buy-prev-close/--sell-prev-close| 当天的前收盘价,用于涨跌停检查 | |--no-limit| 当天不设涨跌幅(新股上市前 5 日、北交所上市首日、退市整理首日),跳过涨跌停检查 | |--commission-rate/--commission-min| 佣金率(小数,万 2.5 写 0.00025)、最低佣金(免五写 0) | |--stamp-rate/--transfer-rate| 规则变了才改 | |--json| 输出结构化结果 |退出码:0 表示合规或只有提示,1 表示有违规,2 表示输入有误。
-
给用户看:把脚本的 Markdown 报告原样给出。第一句是结论(实际盈亏、保本价、是否违规);有违规时,再用一句话说明怎么改(比如「科创板至少买 200 股」)。
样例与自测
-
assets/example.json:元器代码节点的输入样例,期望结果是盈利 484.54 元、保本价 10.02 元、合规。 -
自测:
python {baseDir}/scripts/selftest.py共 4 组手算对照:小额按最低 5 元佣金、大额按比例、免五加科创板、部分卖出。算式写在用例注释里。另有 15 项规则检查(整手、科创板 200 股、北交所、T+1、创业板涨停、ST 新旧规、低价股 ±0.01 兜底、零股、价格单位、周末),以及输入校验和代码节点入口。
在腾讯元器代码节点里用
scripts/ashare_fee.py 是单文件,只用标准库,整段粘进元器工作流的 Python 代码节点即可:
def main(params: dict) -> dict
# params: buy_price, sell_price, qty, buy_qty, sell_qty, holding, code, board, st,
# buy_date, sell_date, buy_prev_close, sell_prev_close, no_limit,
# commission_rate, commission_min, stamp_rate, transfer_rate(都可以是字符串)
# 返回: status(ok/bad_input), verdict(合规/需确认/违规), text(完整报告), data(结构化结果)
边界
- 只算 A 股普通股票的竞价交易。B 股、基金、债券、可转债、融资融券、大宗交易、盘后固定价格交易都不在范围内。
- 券商实际收费(佣金是否含经手费和证管费、是否免五、分以下怎么舍入)各家不同,结果可能差几分钱。以交割单为准。
- T+1 只比较日期先后,并提示周末;法定节假日表没有内置。
- 规则会变:费率和涨跌幅常量集中在脚本顶部,出处在
references/rules-sources.md。每次上架前重新核一遍。
Scan to join WeChat group