Strasmore Research
学习 Matt Connor作者: Matt Connor · 更新于 2026-09-28

共同基金何时交易?下午4点NAV定价

共同基金每天只按一次NAV定价,通常为美东时间下午4点,无盘中价格、限价单或止损单。了解订单成交、券商截止时间和T+1结算。

共同基金在交易时段内完全不交易。对于传统共同基金,无论何时提交买入或卖出订单,每笔订单每天只执行一次,成交价为美东时间下午4:00收盘后计算的基金资产净值(NAV)。您在上午9:31或下午3:59提交订单,获得的价格完全相同,而且要到数小时后才能确定。本页将介绍相关机制:截止时间、一个演算示例、每次计算NAV所依据的实际市场事件,以及例外情况。

每日一次的交易周期如何运作

共同基金订单是向基金公司发出的指令,而不是交易所订单,例如“买入500美元的这只基金”。美东时间下午4点,基金按每项持仓的收盘价进行估值,扣除负债后再除以流通股数,所得即为基金净值(NAV)。所有在截止时间前收到的订单都按该净值成交。在截止时间后到达的订单,则要等到明天的净值。由此产生三个结果:基金没有盘中价格(两个净值之间不存在其他价格),不能使用限价单或止损单(没有可供触发的价格序列),而且不存在买卖价差,因为买方和卖方都按净值成交。

这项截止时间并非券商惯例,而是联邦法律要求。SEC Rule 22c-1(即“远期定价”规则)要求每笔订单按其到达后计算的下一个净值成交。用当天已经知道的价格处理前一天的订单(即“延迟交易”)明确属于违法行为。2003年的执法行动使这一问题受到切实重视(下文详述)。但有一点需要注意:美东时间下午4点是基金的截止时间。券商和退休计划记录管理机构需要时间转交订单,因此它们的截止时间会更早。在401(k)平台上,美东时间下午1点至3点的当日截止时间很常见。对投资者而言,真正的截止时间是平台公布的截止时间,而不是收盘钟声。

示例:上午11点投入1,000美元

假设您在上午11:04提交了一笔1,000美元的买入订单。11:04没有成交,订单进入排队状态,届时的成交价格也尚未确定。下午4:00,基金管理人按官方收盘价对所有持仓进行估值。假设组合估值为50,762,500美元,已计提费用及应付款项为500,000美元,基金在外流通份额为2,000,000份:

  • 净资产:50,762,500美元 − 500,000美元 = 50,262,500美元
  • NAV:50,262,500美元 ÷ 2,000,000份 = 每份25.13美元(NAV四舍五入至美分)
  • 您的订单:1,000美元 ÷ 25.13美元 = 39.793份(基金份额精确到小数点后三位)

以上数字是假设值,但流程完全准确。资金在上午确定,价格在晚间确定,三位小数的份额数量则在当晚或次日上午记入账户。远期定价意味着,在下单时没人知道成交价格,这是制度设计的一部分:交易者无法针对尚未计算出的价格进行交易。

下午4点收盘是一个真实发生的实体事件

NAV的意义取决于其采用的收盘价,而这些价格来自收盘竞价。收盘竞价是每个交易日流动性最大的时点。它可以在逐笔成交记录中看到:

查询SPY日内交易在最后时刻的集中度:2026年7月10日常规交易时段
最后半小时占比最后一分钟占比交易时段股数(百万)
24.65.135.9
每个数字背后的完整 SQL
WITH
    (
        SELECT toFloat64(maxIf(size, has(conditions, 8)))
        FROM global_markets.stocks_trades
        WHERE ticker = 'SPY'
          AND sip_timestamp >= toDateTime('2026-07-10 16:00:00', 'America/New_York')
          AND sip_timestamp <  toDateTime('2026-07-10 16:10:00', 'America/New_York')
    ) AS closing_print
SELECT
    round(100.0 * (sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '15:30') + closing_print) / (sum(toFloat64(volume)) + closing_print), 1) AS final_half_hour_pct,
    round(100.0 * (sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') = '15:59') + closing_print) / (sum(toFloat64(volume)) + closing_print), 1) AS final_minute_pct,
    round((sum(toFloat64(volume)) + closing_print) / 1e6, 1) AS session_shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= '2026-07-10 13:30:00' AND window_start < '2026-07-10 20:00:00'
自己运行这个查询

在该交易日,SPY全天成交量的24.6%集中在最后半小时,最后一分钟加上收盘竞价成交本身则占5.1%。这两个数字都从逐笔成交记录中加回了该笔收盘竞价成交。该成交在记录中带有独立的成交条件,因为这份记录中的一分钟K线不包含它。资金集中交易中有相当一部分来自共同基金体系:指数基金按照当日净申购赎回资金流,在NAV计价所依据的相同价格上执行交易。

进一步放大来看,NAV所依赖的“收盘价”就是一笔实际成交。上市交易所会将日终所有订单撮合成一次交叉交易,并在逐笔成交记录中以独立的成交条件代码标记:

查询NAV打印价取自:AAPL收盘竞价交叉成交,2026年7月10日
集合竞价股数(百万)集合竞价时间(ET)16:00成交集合竞价价格单笔交易股数中位数集合竞价成交量占比
5.4716:00:001315.32516
每个数字背后的完整 SQL
SELECT
    round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
    formatDateTime(toTimeZone(argMaxIf(sip_timestamp, (size, sip_timestamp), has(conditions, 8)), 'America/New_York'), '%H:%i:%S') AS auction_time_et,
    toUInt8(formatDateTime(toTimeZone(argMaxIf(sip_timestamp, (size, sip_timestamp), has(conditions, 8)), 'America/New_York'), '%H:%i:%S') = '16:00:00') AS printed_at_1600,
    round(argMaxIf(price, (size, sip_timestamp), has(conditions, 8)), 2) AS auction_price,
    round(quantileDeterministicIf(0.5)(toFloat64(size), toUInt64(sip_timestamp), NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) AS median_trade_shares,
    round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_volume
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
  AND sip_timestamp >= toDateTime('2026-07-10 04:00:00', 'America/New_York')
  AND sip_timestamp < toDateTime('2026-07-10 20:00:00', 'America/New_York')
自己运行这个查询

苹果的全部收盘竞价在16:00:00 ET准时以一笔成交完成,成交量为5.47百万股,成交价为$315.32,即官方收盘价;相比之下,连续交易的成交量中位数为5股。这笔成交占苹果合并成交量的16%。基金在下午4点对AAPL持仓进行估值时,采用的就是这个价格。

不是某一天恰好如此,而是每个交易日都如此,且月末最为明显

单个样本说明不了太多。采用同一口径,观察最近十五个完整交易日:

查询SPY最后30分钟和最后1分钟的成交量占比:截至2026年7月10日的最近15个交易日
日期最后半小时占比最后一分钟占比
2026-06-1822.17.9
2026-06-2226.38.3
2026-06-2331.68.6
2026-06-2421.86.2
2026-06-2520.67.1
2026-06-2627.913.9
2026-06-2923.97.4
2026-06-3033.312
2026-07-0124.47.3
2026-07-0227.310.1
2026-07-0627.87.6
2026-07-0720.46.5
2026-07-0817.76.7
2026-07-0921.76.3
2026-07-1024.65.1
每个数字背后的完整 SQL
SELECT
    formatDateTime(b.session_date, '%Y-%m-%d') AS date,
    round(100.0 * (b.half_hour_bars + p.closing_print) / (b.session_bars + p.closing_print), 1) AS final_half_hour_pct,
    round(100.0 * (b.minute_bars + p.closing_print) / (b.session_bars + p.closing_print), 1)    AS final_minute_pct
FROM (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '15:30') AS half_hour_bars,
        sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') = '15:59') AS minute_bars,
        sum(toFloat64(volume)) AS session_bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
      AND window_start < toDateTime('2026-07-10 16:00:00', 'America/New_York')
      AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') BETWEEN '09:30' AND '15:59'
    GROUP BY session_date
) AS b
INNER JOIN (
    SELECT
        toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
        toFloat64(maxIf(size, has(conditions, 8))) AS closing_print
    FROM global_markets.stocks_trades
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
      AND sip_timestamp < toDateTime('2026-07-10 16:10:00', 'America/New_York')
      AND toHour(sip_timestamp, 'America/New_York') IN (13, 16)
      AND toMinute(sip_timestamp, 'America/New_York') < 10
    GROUP BY session_date
    HAVING countIf(has(conditions, 8)) > 0
) AS p ON p.session_date = b.session_date
ORDER BY b.session_date
自己运行这个查询
查询同一15个交易日汇总:收盘时段的最低值、平均值和峰值
半小时占比最小值半小时占比平均值半小时占比最大值成交量最大的交易时段
17.724.833.32026-06-30
每个数字背后的完整 SQL
SELECT
    round(min(final_half_hour_pct), 1) AS min_half_hour_pct,
    round(avg(final_half_hour_pct), 1) AS avg_half_hour_pct,
    round(max(final_half_hour_pct), 1) AS max_half_hour_pct,
    formatDateTime(argMax(session_date, (final_half_hour_pct, session_date)), '%Y-%m-%d') AS heaviest_session
FROM (
    SELECT
        b.session_date AS session_date,
        100.0 * (b.half_hour_bars + p.closing_print) / (b.session_bars + p.closing_print) AS final_half_hour_pct
    FROM (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
            sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '15:30') AS half_hour_bars,
            sum(toFloat64(volume)) AS session_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
          AND window_start < toDateTime('2026-07-10 16:00:00', 'America/New_York')
          AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') BETWEEN '09:30' AND '15:59'
        GROUP BY session_date
    ) AS b
    INNER JOIN (
        SELECT
            toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
            toFloat64(maxIf(size, has(conditions, 8))) AS closing_print
        FROM global_markets.stocks_trades
        WHERE ticker = 'SPY'
          AND sip_timestamp >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
          AND sip_timestamp < toDateTime('2026-07-10 16:10:00', 'America/New_York')
          AND toHour(sip_timestamp, 'America/New_York') IN (13, 16)
          AND toMinute(sip_timestamp, 'America/New_York') < 10
        GROUP BY session_date
        HAVING countIf(has(conditions, 8)) > 0
    ) AS p ON p.session_date = b.session_date
)
自己运行这个查询

在从2026-06-18至2026-07-10的全部15个交易日中,最后半小时占SPY日成交量的比例从未低于17.7%,平均为24.8%。这段时间只占390分钟交易时段的不到8%。最高读数为33.3%,出现在2026-06-30,即6月及该季度的最后一个交易日。

日历因素会反映在成交记录中。月末是基金资金流集中处理、工资缴款入市、指数基金再平衡、基金经理校准跟踪误差的时点,而这些订单会在收盘时执行。将2026年上半年的每个交易日分为两组:

查询月末交易日与其他交易日对比:SPY收盘集中度,2026年1月至6月
月末交易时段其他交易时段月末最后半小时占比其他时段最后半小时占比差距(百分点)月末最后一分钟占比其他时段最后一分钟占比
611728.120.189.15.4
每个数字背后的完整 SQL
SELECT
    countIf(is_month_end) AS month_end_sessions,
    countIf(NOT is_month_end) AS other_sessions,
    round(avgIf(final_half_hour_pct, is_month_end), 1) AS month_end_final_half_pct,
    round(avgIf(final_half_hour_pct, NOT is_month_end), 1) AS other_final_half_pct,
    round(avgIf(final_half_hour_pct, is_month_end) - avgIf(final_half_hour_pct, NOT is_month_end), 1) AS gap_pp,
    round(avgIf(final_minute_pct, is_month_end), 1) AS month_end_final_min_pct,
    round(avgIf(final_minute_pct, NOT is_month_end), 1) AS other_final_min_pct
FROM (
    SELECT
        session_date,
        final_half_hour_pct,
        final_minute_pct,
        session_date = max(session_date) OVER (PARTITION BY toStartOfMonth(session_date)) AS is_month_end
    FROM (
        SELECT
            b.session_date AS session_date,
            100.0 * (b.half_hour_bars + p.closing_print) / (b.session_bars + p.closing_print) AS final_half_hour_pct,
            100.0 * (b.minute_bars + p.closing_print) / (b.session_bars + p.closing_print) AS final_minute_pct
        FROM (
            SELECT
                toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
                sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '15:30') AS half_hour_bars,
                sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') = '15:59') AS minute_bars,
                sum(toFloat64(volume)) AS session_bars
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND toDate(toTimeZone(window_start, 'America/New_York')) >= '2026-01-01'
              AND toDate(toTimeZone(window_start, 'America/New_York')) < '2026-07-01'
              AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') BETWEEN '09:30' AND '15:59'
            GROUP BY session_date
        ) AS b
        INNER JOIN (
            SELECT
                toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
                toFloat64(maxIf(size, has(conditions, 8))) AS closing_print
            FROM global_markets.stocks_trades
            WHERE ticker = 'SPY'
              AND sip_timestamp >= toDateTime('2026-01-01 00:00:00', 'America/New_York')
              AND sip_timestamp < toDateTime('2026-07-01 00:00:00', 'America/New_York')
              AND toHour(sip_timestamp, 'America/New_York') IN (13, 16)
              AND toMinute(sip_timestamp, 'America/New_York') < 10
            GROUP BY session_date
            HAVING countIf(has(conditions, 8)) > 0
        ) AS p ON p.session_date = b.session_date
    )
)
自己运行这个查询

在2026年上半年的6个月末交易日中,SPY最后半小时的成交量占当日成交量的平均比例为28.1%;其他117个交易日为20.1%,两者相差8个百分点。仅最后一分钟和收盘成交的占比,就分别为9.1%和5.4%。本文所述的基金运作机制,在全市场范围内都清晰可见。

共同基金与ETF:相同的投资组合,不同的交易时钟

真正需要比较的是这一点:一只标普500指数共同基金和一只标普500指数ETF持有相同的股票,但ETF在交易所全时段交易,实时价格、限价单、spread、盘中误操作等因素一应俱全;而共同基金每天仅按一次净资产值(NAV)执行交易,不受这些因素影响。两者没有绝对的优劣之分:ETF让投资者能够控制交易时点和价格,但代价是要支付spread,也可能在上午9:31因恐慌而卖出;共同基金则以当日公平的收盘价值成交,但投资者完全无法进行盘中操作。共同基金还有一个容易被忽视的优势:类似2010年式的流动性真空不会导致你的订单成交,因为你的订单只会按下午4点的NAV成交。

“没有spread”这一特性可以通过其不存在来衡量。ETF或股票买方需要支付买卖价差:按卖价买入、按买价卖出,中间的差额就是交易成本。共同基金买方不会触及这一成本。以下是7月10日交易时段、根据合并报价数据计算的交易成本:

查询基金买方永远无需支付的价差:2026年7月10日常规交易时段的中位报价价差
ticker价差中位数(美分)每10,000美元双向交易成本
SPY20.27
KO11.2
NATH1918.83
每个数字背后的完整 SQL
SELECT
    ticker,
    round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents,
    round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), toUInt64(sip_timestamp)) * 10000, 2) AS round_trip_cost_per_10k_usd
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'KO', 'NATH')
  AND sip_timestamp >= toDateTime('2026-07-10 09:30:00', 'America/New_York')
  AND sip_timestamp < toDateTime('2026-07-10 16:00:00', 'America/New_York')
  AND bid_price > 0
  AND ask_price > bid_price
GROUP BY ticker
ORDER BY indexOf(['SPY', 'KO', 'NATH'], ticker)
自己运行这个查询

对SPY而言,这项成本几乎只是理论上的:中位spread为2美分,按每次往返交易1万美元计算,约为$0.27。可口可乐约为$1.2。沿着流动性曲线向下观察,spread会扩大:成交清淡的小盘股Nathan's Famous的中位spread为19美分,按每次往返交易1万美元计算,约为$18.83。共同基金结构也有自身的成本,包括费用率,有时还包括申购费和赎回费;但spread确实不属于其中之一。

结算:何时真正收到份额和现金

交易执行和结算遵循不同的时间表。净值在傍晚早些时候确定并公布,基金会在美国东部时间下午6点左右将其报送至行情系统。您的份额数量会在当晚或次日上午记入账户。交易随后在一个工作日后完成结算,现金也在此时实际划转,即T+1。美国股票和ETF于2024年5月转为这一结算周期。

如果您在周二上午买入,周二晚间即可知道价格,现金会在周三划出。如果您在周二截止时间前卖出,现金将在周三完成结算。

基金与ETF的真正差异不在结算日期。ETF卖方在上午10:15即可知道成交价,而基金卖方要到收盘后才能知道价格。基金的回报按净值到净值计算,这是现实中最清晰的收盘到收盘计价案例,详见回报如何计量。

值得了解的例外情况

货币市场基金。 每日一次定价的规则在这里有所不同。政府货币市场基金通常按稳定的1.00美元净值交易,并通常提供当日现金使用;部分机构货币市场基金会在日内设定的时间窗口内,一天数次计算净值。如果您所说的“共同基金”属于货币市场基金扫单账户,下午4点的交易机制通常并不适用。

债券基金采用更早的收盘价。 美国国债现货市场建议的收盘时间为美东时间下午3点,比股票市场停止交易早一小时。债券基金仍会在下午4点后计算一次净值,但基金内债券的价格是在更早的收盘时间确定的。

国际基金与公允价值。 国际股票基金根据数小时前已经收盘的市场计算净值。例如,东京市场的交易时段在美东时间凌晨2点结束。许多基金会进行公允价值调整,根据本国市场收盘后发生的全部信息,将滞后的海外收盘价调整至这些股票当时可能交易的水平。这也是2003年改革直接应对的问题之一:快速交易者正是利用滞后价格获利。

退休计划。 401(k)或IRA中的基金交易同样遵循远期定价规则,按下午4点的净值执行,不提供日内成交。不同之处在于多了一层中介:账户记录机构会批量处理并转交订单,其截止时间更早,晚于截止时间提交的交易会顺延至下一次净值。

短期赎回费。 部分基金会对在规定期限内卖出的份额收取赎回费,常见费率为0.25%至2%,规定期限可能为30天、60天或90天;对于免交易费基金,券商还可能收取自有费用。每日一次定价在机制上允许投资者快速进行净值间的买卖;设置这些费用,是为了降低这种操作的吸引力。

具体而言,2003年的丑闻

下午4点这一时间点的法律刚性并非抽象概念。2003年9月,纽约州总检察长宣布与对冲基金 Canary Capital Partners 达成4,000万美元和解,涉及两种行为:延迟交易,即在下午4点后下达或确认基金订单,却按当日已经计算出的净资产值成交,这违反了第22c-1条规则;以及市场择时,即快速买入和卖出基金份额。多家基金公司暗中允许受偏爱客户进行这类交易,但其自身的招募说明书却不鼓励这种做法。随后展开的调查波及业内最大的基金集团,和解金额累计达到数十亿美元。真正持久的整改措施,就是本页介绍的这些:对中介机构实施严格的截止时间、采用公允价值定价,以及收取短期赎回费。

共同基金交易常见问题

共同基金交易在什么时间执行?

在美东时间下午4:00截止时间前收到的订单,按当日净资产值(NAV)执行。NAV在市场收盘后计算。截止时间后收到的订单,按下一个交易日的NAV执行。共同基金不会在盘中按任何价格执行交易。

为什么我的共同基金订单要到第二天才执行?

订单可能错过了截止时间。也可能错过了基金美东时间下午4点的截止时间,或错过了您的经纪商或登记机构更早设置的内部截止时间。订单随后会按下一交易日的NAV执行,这是正常流程。

我可以为共同基金订单设置限价吗?

不可以。共同基金没有盘中价格流,限价没有可供参考的价格;所有订单都按NAV执行。如果您希望获得类似基金的敞口并使用限价单,ETF才是合适的工具。

共同基金交易需要多长时间结算?

大多数股票型和债券型基金按T+1结算:资金在交易日后一个工作日划转,与ETF和股票采用相同的结算周期。交易价格在交易日当晚发布NAV时确定。许多货币市场基金当天结算。

共同基金周末或节假日交易吗?

不交易。只有在标的市场开市的交易日才会确定NAV(市场日历)。周末提交的订单会排队,按周一的NAV执行。


上面的每个面板都是经过存储和版本控制的查询。您可以展开任意数字背后的SQL,也可以在Strasmore终端上自行衡量收盘价的影响。