🚀 AI 一键生成 joinquant 策略代码

JoinQuant 平台 get_valuation 取 T 日市值是盘前还是盘后?拆股怎么算?

joinquant | 发布时间: 2026/5/22
以下内容由 EasyQuant 生成。

问题描述

get_valuation取数日期问题

get_valuation如果指定enddata为T日,那么取到的市值是T日收盘后的,还是T日开盘前的?此外,如果T日有拆股,那么流动股本,取到的是拆股前还是后的?

解决方案

在 JoinQuant(聚宽)平台上使用 get_valuation 函数获取市值表数据时,关于取数日期和拆股股本的具体规则如下:

1. 取到的市值是 T 日收盘后的还是开盘前的?

是 T 日收盘后的数据。

当您指定 end_date 为 T 日时,get_valuation 返回的是 T 日收盘后的市值数据。市值(market_cap)和流通市值(circulating_market_cap)是根据 T 日的收盘价乘以 T 日的总股本/流通股本计算得出的。

⚠️ 避免未来函数的注意事项:
在回测环境中,如果您在 T 日的盘前(如 before_trading_start)或盘中(如 handle_data)调用财务数据 API,为了避免引入未来函数,系统默认(例如不传 dateend_date 时)会返回 T-1 日(前一个交易日)的收盘数据。如果您强制指定 end_date 为 T 日,您获取到的将是 T 日收盘后的数据,这在盘中逻辑里属于未来数据。建议在盘中决策时,使用 T-1 日的市值数据。

2. 如果 T 日有拆股,流通股本取到的是拆股前还是拆股后的?

是拆股后的数据。

如果 T 日是该股票的除权除息日(即发生拆股、送转股的生效日),那么 T 日收盘后的总股本(capitalization)和流通股本(circulating_cap)反映的都是拆股后的最新股本数量。

因为交易所会在除权除息日当天对股本进行更新,聚宽的市值表数据会同步记录这一变化。因此,T 日的市值 = T 日除权后的收盘价 × T 日拆股后的总股本。

总结

  • 市值时间点end_date=T日 获取的是 T 日收盘后的市值。
  • 拆股股本:T 日若发生拆股,获取到的股本是拆股后的实际股本。
  • 实战建议:在策略编写中,若需根据市值选股,请务必使用前一交易日(T-1)的市值数据以防止未来函数导致回测结果失真。