@Hugo2046 谢谢您的回复。
# 从聚宽获取指数的信息
index_code = '000001.XSHG' # 指数 code
index_info = get_security_info(index_code) # 指数信息
start_date = index_info.start_date # 开始时间
end_date = '2019-11-20'
index_name = index_info.display_name # 指数全称
def get_turnover(index_code, start_date, end_date):
def iter_turnover():
trade_date = get_trade_days(start_date=start_date, end_date=end_date)
for date in trade_date:
stocks = get_index_stocks(index_code, date)
q = query(valuation.code,
valuation.turnover_ratio, #流通换手率
valuation.capitalization, #总股本
valuation.circulating_cap, #流通股本
).filter(valuation.code.in_(stocks) ,
)
df = get_fundamentals(q, date)
df_turnover = (df.turnover_ratio * df.circulating_cap).sum() #总成交量
df_capitalization = df.capitalization.sum() #总流通股本
df_circulating_cap= df.circulating_cap.sum() #总自由流通股本
turnover_ratio = df_turnover / df_capitalization #换手率
turnover_ratio_f = df_turnover / df_circulating_cap #自由流通换手率
yield date, turnover_ratio, turnover_ratio_f
dict_result = [{'date': value[0], 'turnover_ratio': value[1], 'turnover_ratio_f':value[2]} for value in iter_turnover()]
df_result = pd.DataFrame(dict_result)
df_result.set_index('date', inplace=True)
return df_result
df_turnover = get_turnover(index_code, start_date, end_date)
print(df_turnover.head())
df_turnover.tail()
这是我写的程序,请您看看问题出的哪儿?
2019-11-25