我的计算思路是沪深300成分股的成交金额之和/沪深300成分股的流通市值。然后问了一下supermind的AI小助手,给出的代码如下:
- 获取沪深300成分股列表
hs300_stocks = get_index_stocks('000300.SH')
- 获取成分股的成交额和流通市值
q = query(
valuation.symbol, # 股票代码
valuation.date, # 查询日期
valuation.turnover, # 成交金额
valuation.circulating_market_cap # 流通市值
).filter(
valuation.symbol.in_(hs300_stocks),
)
获取基本面数据
df = get_fundamentals(q)
- 计算整体换手率:总成交额 / 总流通市值
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整体的换手率?

