@纳什康斯坦丁 你说的对,是有个计算过程的。下面是完整代码,上次只裁了一段:
’‘’
def get_mkt_eps(C, stock_list_x):
cap = 'circulating_capital' # 流通股本 total_capital 总股本
eps = 's_fa_eps_basic' # 基本每股收益
G.pool_len = [len(stock_list_x)]
data = C.get_market_data_ex(['close'], stock_code=stock_list_x, period='1d', \
end_time=C.trade_day, count=2, \
dividend_type='none', fill_data=False)
stock_prices = [(s, get_market_priceX(C, s, data)) for s in stock_list_x]
stock_list = [sp[0] for sp in stock_prices if sp[1]] # 会过滤掉停牌取不到价格的
df = pd.DataFrame(index=stock_list, columns=['MktValue', cap, 'price'])
factor = [f'CAPITALSTRUCTURE.{cap}', f'PERSHAREINDEX.{eps}']
fin = C.get_financial_data(factor, stock_list, C.trade_day, C.trade_day, 'report_time')
df[cap] = fin[cap] # 打印出来跟announce_time取到的值一样,古怪
df[eps] = fin[eps]
df['price'] = [sp[1] for sp in stock_prices if sp[1]]
df['MktValue'] = df[cap] * df['price']
‘’‘
2023-11-09