求助:如何获取沪深300成分股的整体换手率?

用户头像芝麻开花515
2026-01-25 发布

我的计算思路是沪深300成分股的成交金额之和/沪深300成分股的流通市值。然后问了一下supermind的AI小助手,给出的代码如下:

  1. 获取沪深300成分股列表

hs300_stocks = get_index_stocks('000300.SH')

  1. 获取成分股的成交额和流通市值

q = query(
valuation.symbol, # 股票代码
valuation.date, # 查询日期
valuation.turnover, # 成交金额
valuation.circulating_market_cap # 流通市值
).filter(
valuation.symbol.in_(hs300_stocks),
)

获取基本面数据

df = get_fundamentals(q)

  1. 计算整体换手率:总成交额 / 总流通市值

total_turnover = df['valuation_turnover'].sum()
total_circulating_market_cap = df['valuation_circulating_market_cap'].sum()

hs300_turnover = total_turnover / total_circulating_market_cap

log.info(f"沪深300换手率计算:成分股数量={len(df)}, 平均换手率={hs300_turnover:.4%}")

但是实际运行下来,提示:

AttributeError: type object 'valuation' has no attribute 'turnover'

AttributeError: type object 'valuation' has no attribute 'circulating_market_cap'

求大神,按照目前的思路,如何获取沪深300整体的换手率?

评论