Strasmore Research
学习 Matt Connor作者: Matt Connor

亏损卖出共同基金:成本基础如何计算

了解共同基金亏损卖出的成本基础,包括再投资分配、平均成本法、特定份额识别法及洗售规则,避免低估亏损或错报1099-B。

亏损卖出共同基金,会把账面下跌转化为已实现资本损失。亏损金额取决于您的成本基础,而不是您记忆中的买入价格。成本基础包括基金代表您再投资的所有分配。账户采用的跟踪方法——平均成本法或特定份额识别法——会改变最终列入 Form 1099-B 的金额。以下内容介绍截至 2026 年 8 月美国联邦规则下的具体处理机制,也包括自动再投资可能触发的洗售规则陷阱,即使您根本没有下单。

亏损卖出共同基金时会发生什么

共同基金订单在下单时不会以您能看到的价格成交。基金每天收盘后计算一次净资产值,并以之后的下一净资产值定价。您卖出时采用的价格,要在作出决定数小时后才能确定(共同基金订单实际交易的时间介绍了这一时间安排)。

份额离开账户后,亏损即实现。计算方式是卖出所得减去成本基础。账面下跌不会影响报税。已实现亏损会先抵减资本利得。对于美国联邦纳税人,当年还可抵减最多3,000美元的普通收入。剩余亏损可结转以后年度。

持有期决定亏损的性质。持有超过一年属于长期亏损,持有一年或更短时间属于短期亏损。共同基金还有一项股票投资者很少遇到的额外规则:对于持有六个月或更短时间的份额,如果投资者收到这些份额产生的长期资本利得分配,则相当于该分配金额的亏损将被视为长期亏损。该规则依据《美国国内税收法典》第852(b)(4)条。

您的成本基础实际包含什么?

成本基础是您投入的资金,加上基金为您再投资的每一美元。每笔再投资分配都构成一次购买:按照当日价格买入新份额,并拥有各自的成本基础和持有期起算时间。只计算实际汇入的现金,会低估成本基础,从而高估收益、低估亏损。

计入金额取决于基金的分配频率。以下是截至2026年6月30日的12个月内,一组指数基金和收益型基金的每笔现金分配记录:

查询分配频率:指数基金和收益基金,截至2026年6月30日的12个月
每个数字背后的完整 SQL
SELECT ticker,
       count() AS distributions,
       round((max(ex_dividend_date) - min(ex_dividend_date)) / (count() - 1), 0) AS avg_days_between,
       round(sum(cash_amount), 3) AS total_per_share_usd
FROM global_markets.stocks_dividends
WHERE ticker IN ('JEPI', 'QYLD', 'BND', 'AGG', 'SCHD', 'VNQ', 'VTI', 'VOO', 'SPY')
  AND ex_dividend_date >= toDate('2025-07-01')
  AND ex_dividend_date <= toDate('2026-06-30')
  AND cash_amount > 0
GROUP BY ticker
HAVING count() > 1
ORDER BY avg_days_between ASC
Run this yourself

AGG全年进行了12次分配,平均相隔30天,共计每股$3.928。在样本另一端,SPY进行了4次分配,每次相隔91天,每股$7.525。公开记录涵盖的是交易所交易基金(ETF)。共同基金的分配安排记录在其对账单和1099-DIV表格中,成本基础的计算方式相同。主动管理型基金还会分配已实现资本利得,通常在12月进行。再投资的资本利得分配与股息一样,也会增加成本基础。

连续十年对季度分配进行再投资,就构成40次独立购买。每次购买都有自己的成本和持有期起算时间。8-4-3法则是基金投资者规划投资期限时常用的概括之一。每多再投资一年,持仓批次梯队就会增加一层。

平均成本还是特定份额识别?

假设一名投资者在一年半内每个月最后一个交易日,将相同金额投入一只美国全市场基金。该表将这段期间固定为2021年和2022年,因此数字不会变动。每个月的收盘价代表一批份额,旁边列出截至当时所有买入份额的累计平均成本。

查询每月买入者的批次价格和滚动平均成本:VTI,2021年7月至2022年12月
每个数字背后的完整 SQL
WITH monthly AS (
    SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
           argMax(close, window_start) AS close_price
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'VTI'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-07-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2022-12-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY month_start
)
SELECT formatDateTime(month_start, '%Y-%m') AS month,
       formatDateTimeInJodaSyntax(month_start, 'MMMM yyyy') AS month_label,
       round(close_price, 2) AS lot_price_usd,
       round(avg(close_price) OVER (ORDER BY month_start
             ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 2) AS average_cost_usd
FROM monthly
ORDER BY month_start
Run this yourself

截至December 2022,该持仓包含18批份额,买入价格各不相同,共有18个价格。最后一行列出决定出售结果的两个数字:市场价格为$191.25,平均成本为$213.64。第一批份额于July 2021以$226.72买入。

平均成本将整个持仓合并计算:包括再投资在内的投资总额,除以总份额数。出售的每一股都使用相同的成本基础。许多基金公司默认采用这种方法,而且管理起来最省事。

特定份额识别则将各批份额分别保留。卖方须在结算前以书面形式指定要出售的批次,并保留确认记录。以下是相同批次,按各批次在最后一个月价格下产生的结果排序:

查询按2022年12月价格计算的每股结果,对相同每月批次的排名
每个数字背后的完整 SQL
WITH monthly AS (
    SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
           argMax(close, window_start) AS close_price
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'VTI'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-07-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2022-12-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY month_start
),
sale AS (
    SELECT argMax(close_price, month_start) AS sale_price
    FROM monthly
)
SELECT formatDateTimeInJodaSyntax(m.month_start, 'MMM yyyy') AS label,
       round(m.close_price, 2) AS cost_per_share_usd,
       round(s.sale_price - m.close_price, 2) AS per_share_result_usd
FROM monthly AS m
CROSS JOIN sale AS s
ORDER BY per_share_result_usd ASC
Run this yourself

差异正是关键。Dec 2021批次的成本为每股$241.48,按出售价格计算后为每股-50.23Sep 2022批次的成本为$179.37,按出售价格计算后为11.88。从这份记录的一端出售100股,与从另一端出售100股,申报的数字不同;而平均成本两者都不是。平均成本反映的是整体混合结果。基金和出售日期完全相同,但申报的成本基础不同。

这是账户层面的选择,而不是报税时的选择。更改通常只适用于之后买入的份额;基金公司的文件规定具体流程;1099-B会说明申报数字采用了哪种方法。

适用于基金的洗售陷阱

洗售规则规定,如果在卖出前30天或卖出后30天内买入实质相同的证券,相关亏损不得扣除。这构成一个以卖出日为中点的61天窗口。不得扣除的金额会计入替代股份的成本基础,原持有期也会接续计算。因此,扣除只是递延,并非永久消失。

基金会增加一个复杂因素。再投资通常是自动且无提示的。当基金分配在这61天窗口内除息时(除息日决定谁有权获得分配),如果账户已启用再投资,新增股份就属于替代股份,与其对应的那部分亏损不得扣除。期间没有人下单。

结合61天重新查看派息节奏面板。平均每30天分配一次的基金,几乎会在任何这么长的窗口内发生一次再投资。每次派息间隔为91天的季度派息基金会留下实际空档,但窗口仍足够宽,很多时候仍会覆盖一次派息。

  • 部分替代只会使部分亏损不得扣除。500股卖出对应40美元再投资时,只有与这40美元买入股份对应的亏损不得扣除。
  • 在IRA内买入的替代股份属于更严格的情形。Revenue Ruling 2008-5规定,该亏损不得扣除,任何地方都不会进行成本基础调整;这项扣除会永久消失,而不是递延。应税账户卖出基金,同时在持有同一基金的IRA中自动再投资,是投资者事后才发现的典型情形。

两只指数基金是否实质上相同?

法规使用了“实质上相同”这一表述,但对于追踪同一基准的两只指数基金,目前尚无明确界线。可以衡量的是它们走势的接近程度。下表比较了2026年上半年每个交易日一组美国宽基股票基金相对于SPY的日百分比变动,单位为差异基点。一个基点是一个百分点的百分之一。

查询相对于SPY的每日跟踪差异:美国大盘股票基金,2026年上半年
每个数字背后的完整 SQL
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           argMax(close, window_start) AS close_price
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'VOO', 'IVV', 'SPLG', 'VTI', 'RSP')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session_date
),
with_prior AS (
    SELECT ticker,
           session_date,
           close_price,
           lagInFrame(close_price) OVER (PARTITION BY ticker ORDER BY session_date) AS prior_close
    FROM daily
),
moves AS (
    SELECT ticker, session_date, close_price / prior_close - 1 AS daily_move
    FROM with_prior
    WHERE prior_close > 0
),
benchmark AS (
    SELECT session_date, daily_move
    FROM moves
    WHERE ticker = 'SPY'
)
SELECT m.ticker AS ticker,
       round(avg(abs(m.daily_move - b.daily_move)) * 10000, 2) AS avg_daily_gap_bps,
       round(max(abs(m.daily_move - b.daily_move)) * 10000, 2) AS max_daily_gap_bps
FROM moves AS m
INNER JOIN benchmark AS b ON m.session_date = b.session_date
WHERE m.ticker != 'SPY'
GROUP BY m.ticker
ORDER BY avg_daily_gap_bps ASC
Run this yourself

VOO与SPY在普通交易日的平均差异为1.44个基点,单日最大差异为32。在表中另一端,RSP的日均差异为40.88个基点。4只基金均持有美国宽基股票组合。追踪同一指数与追踪同一市场不同细分部分之间的差异,会体现在其中一列数据中。

但这些数据无法解决税务问题。有些ETF本身就是共同基金的不同份额类别:VOO和Admiral份额VFIAX是同一只Vanguard 500 Index Fund的两个份额类别,只是同一个投资组合使用了两个名称。另一些基金则由不同发起机构追踪完全相同的指数。具体判断取决于事实和情况,应由税务专业人士根据您自己的账户文件作出。月度回报如何衡量介绍了衡量方法,定投解释了定期买入者最初如何形成一系列批次。

亏损出售共同基金:常见问题

亏损出售共同基金会减少我的税款吗?

已实现的资本损失首先用于抵销资本利得。对于美国联邦税申报人,当年剩余损失中最多有 $3,000 可用于抵销普通收入,其余部分结转以后年度。损失金额为出售所得减去成本基础,基金公司提供的 1099-B 是申报记录。

再投资的股息会增加我的成本基础吗?

会。每次再投资分配都会按当日价格买入份额,这些金额属于成本基础。遗漏这些金额会高估资本利得并低估资本损失,这是长期持有基金头寸时最常见的成本基础错误。

自动股息再投资会触发洗售吗?

会。在 61 天窗口内进行再投资,属于买入同一基金。相应部分的损失将不予确认,即使您没有下达买入订单。基金公司允许您改为领取现金分配,上方的派息频率面板显示付款到账的频率。

平均成本法与指定具体份额有什么区别?

平均成本法为账户中的所有份额报告一个混合成本基础。指定具体份额则报告结算前指定的确切批次的成本基础。在上方的 18 个批次中,每份额结果从 -50.2311.88 不等,这一范围会被平均成本法合并为一个数值。

共同基金的洗售窗口有多长?

出售前 30 天和出售后 30 天,共计 61 天,其中包括出售日。如果您在该窗口内于 IRA 中买入,损失将根据《收入裁定 2008-5》永久不予确认。该规则适用于您的所有账户。

数据说明与适用司法管辖区

分配和价格面板读取交易所交易基金的数据,其中每笔付款和每个交易日的价格都有公开记录。共同基金的历史价格和分配计划由基金公司保存。本文所述的机制,包括成本基础、持有期和 61 天窗口,同样适用于两者。价格为美国东部时间正常交易时段收盘价。2021 年和 2022 年面板固定使用过去的日期,因此重新生成时这些数据不会变化。所引用的税务规则为截至 2026 年 8 月的美国联邦规则,且可能发生变化。本页面仅供教育参考,不构成税务建议。关于您的具体情况,应以您自己的 1099-B 和税务专业人士的意见为准。


以上每个数字都来自对已提交的分配记录和真实交易时段价格执行的存储查询。打开任一面板即可查看 SQL,或在 Strasmore terminal 上对您持有的基金执行相同的批次计算。

#共同基金#cost basis#wash sale#capital losses#tax basics