卖股会移走已售股份分摊的历史成本,不能直接把卖出回款从所有剩余股份成本里扣掉。
先说明采用什么计算口径
DividenNote 的分析账本使用移动加权平均成本:买入把“价格 × 股数+录入费用”加入成本;卖出按卖前持仓比例移走成本,再以卖出净回款减这部分成本,得到已实现盈亏。这是工具的分析口径,不是所有券商显示或税务批次规则。
Investor.gov 的结单指南可帮助理解成本基础、已实现及未实现结果。真实券商可能采用不同批次、公司行动调整或报告口径;申报应核对正式券商及适用税务文件。本练习不计算税款,也不指定允许采用的税务方法。
背景参考:Investor.gov: cost basis and realized/unrealized account information
两次买入,费用只计一次
2026 年 1 月 2 日,虚构 NBRDEMO 买 100 股,单价 USD10、费用 USD2,成本 USD1,002;2 月 2 日再买 100 股,单价 USD12、费用 USD2,新增成本 USD1,202。合计 200 股、成本 USD2,204,平均每股 USD11.02。
这个名称只是虚构练习标识,不是实时报价或股票推荐。JSON 没有另放期初持仓,因为两次买入已经建立股数;若又添加 200 股期初余额,会算两次。费用也只在自己的价格或成本口径尚未包含时另填。
先移走成本,再看卖出赚多少
3 月 2 日以 USD15 卖 50 股,卖出费用 USD1。毛回款 USD750、净现金 USD749。卖出移走总成本 USD2,204 的 50 ÷ 200,即 USD551,已实现盈余为 USD749-USD551=USD198。
剩余 150 股成本为 USD2,204-USD551=USD1,653,除以 150 仍是每股 USD11.02。按比例部分卖出,本身不会改变余下股份的移动平均;之后以其他价格买入,才可能再次改变平均值。
| 步骤 | 之后股数 | 成本或结果 USD |
|---|---|---|
| 首次买入,含费 | 100 | 1,002.00 |
| 第二次买入,累计成本 | 200 | 2,204.00 |
| 卖 50 股,剩余成本 | 150 | 1,653.00 |
| 剩余平均成本 | 150 | 11.02 |
| 此次卖出已实现盈余 | 50 | 198.00 |
为什么用回款去减,会看到 USD9.70?
若把全部卖出现金从全部历史买入支出扣掉,USD2,204-USD749=USD1,455,再除以 150,得到 USD9.70。在这个范围受限的练习里,它是尚未回收净现金的计算,不是剩余账面持仓成本。已实现的 USD198,正好解释 USD1,653 成本与 USD1,455 未回收现金的差别。
两者不能互换名称。入金、股息、提款、换汇及其他股票,会进一步改变整个账户的现金计算。本例故意排除这些项目,方便看清部分卖出的区别,不把现金流数字误称为税务成本或持仓成本。
用备份或买卖 CSV 二选一复算
先备份自己的账本。最简单是在练习账本完整恢复 average-cost-practice.json,它包含三笔交易、USD 基础币种,以及日期为 2026 年 10 月 1 日的明确假设价格 USD13。应核对剩余 150 股、成本 USD1,653、均价 USD11.02、已实现盈余 USD198。
另一条路是在空练习账本通过买卖导入器导入 average-cost-practice-trades.csv,映射已成交交易字段,不要又把 JSON 当作额外一组交易加进去。CSV 不含报价,若要复算下方估值,应另外输入假设价格 USD13。这些是通用练习文件,不是经过认证的 Moomoo 导出格式。
把已实现与未实现分开核对
按假设价格 USD13,剩余市值 150 × 13=USD1,950,未实现盈余 USD1,950-USD1,653=USD297,加已实现 USD198,得这个封闭算例的交易加估值盈余 USD495。另一条核对式为卖出现金 USD749+剩余市值 USD1,950-买入总成本 USD2,204,也等于 USD495。
持仓页面显示的是未实现 USD297,不自动等于整个账户的总回报报告。USD13 也不是刷新后的市场价。真实结单还可能因报价时间、汇率、缺失交易、批次、费用或公司行动而不同,应保留原记录并先查清差异,再判断某个显示是否错误。
下载练习与核对文件
把知识用到自己的记录
先备份,再用完整 JSON 恢复练习账本,或在空账本导入 CSV。先核对成本及卖出计算,再看假设报价。
打开 DividenNote