稳健性日内小市值+生肖题材择时,特色是不用收盘市值,而是用日内时刻的市值,用到下面函数:
```
def get_marketcap_attime(codes, dt, is_flo=True):
"""
获取股票在指定时刻的市值。
dt参数:指定时刻
is_flo参数:True获取流通市值,False获取总市值
返回:索引为code,值为市值(亿元)的Series数据
"""
# 获取成交价(元)
dt = pd.Timestamp(dt)
date = dt.date()
a = get_price(codes, dt, dt, '1m', 'close', panel=False)
a = a.set_index('code')['close']
# 获取股本(万股)
field = 'circulating_cap' if is_flo else 'capitalization'
b = get_valuation(codes, date, date, field)
b = b.set_index('code', drop=True)[field]
return (a*b)/10000
code
```
这个函数会触发set_option('avoid_future_data', True)防未来函数,实际并没有未来,无论是否存在分红等情况,公司股本在当日开盘就一定确定了,日内不会变化,所以为了计算日内时刻的市值只能关闭上面设置。
2025-09-18