Akshare 开源财经数据库试用(Python)计算全球指数年收益
文档 Document:AkshareGithub:Akshare3 试用3.1 指数数据效果(沪市指数列表):效果(沪深300历史数据):举例:可以计算各个指数每年的年收益率4.1 中国4.1.1 国债指数 000021
·
1 介绍
文档 Document:Akshare
Github:Akshare
2 安装
2.1 重要提示
- 目前 AKShare 仅支持 64 位版本的操作系统安装和使用;
- 目前 AKShare 仅支持 Python 3.8(64 位) 及以上版本, 这里推荐 Python 3.11.x(64 位) 版本;
- AKShare 推荐安装最新版本的 Anaconda (64 位), 可以解决大部分环境配置问题;
- 对于熟悉容器技术的小伙伴, 可以安装 Docker 使用, 指导教程如下: AKShare Docker 部署.
2.2 安装
pip install akshare --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
3 试用
3.1 指数数据
import akshare as ak
# 单次返回所有指数的实时行情数据
zh_index_spot_em_df = ak.stock_zh_index_spot_em(symbol="上证系列指数")
效果(沪市指数列表):
3.2 指数历史行情
# 单次返回具体指数的所有历史行情数据
index_df = ak.index_zh_a_hist(
symbol="000300", period="daily", start_date="20140101", end_date="20240930")
效果(沪深300历史数据):
4 用途
举例:可以计算各个指数每年的年收益率
def calculate_annual_returns(df:pd.DataFrame):
# 确保传入的DataFrame包含'date'和'close'列
if 'date' not in df.columns or 'close' not in df.columns:
raise ValueError("DataFrame must include 'date' and 'close' columns")
# 将 'date' 列转换为日期格式
df['date'] = pd.to_datetime(df['date'])
# 添加一个 'year' 列,其中包含日期的年份
df['year'] = df['date'].dt.year
# 对每年的数据进行分组,并计算年初和年末的收盘价
annual_data = df.groupby('year').agg({'close': ['first', 'last']})
# 计算年度收益率
annual_data['annual_return'] = round((
annual_data['close']['last'] / annual_data['close']['first'] - 1) * 100)
# 重置索引以方便查看结果
annual_returns = annual_data.reset_index()
# 重命名列以使其更具描述性
annual_returns.columns = [
'year', 'start_of_year_close', 'end_of_year_close', 'annual_return']
# 输出起止日期
start_date = dt.datetime.strftime(df['date'].min(), '%Y%m%d')
end_date = dt.datetime.strftime(df['date'].max(), '%Y%m%d')
return annual_returns, start_date, end_date
4.1 中国
4.1.1 国债指数 000021
4.1.2 上证综指 000001
4.1.3 深证成指 399001
4.1.4 创业板 399006
4.1.5 中小100 399005
4.1.6 上证50 000016
4.1.7 沪深300 000300
4.2 美国
4.2.1 道琼斯工业平均指数 DJIA
4.2.2 纳斯达克综合指数 IXIC
4.2.3 纳斯达克100指数 NDX
4.2.4 标准普尔500 INX
4.3 商品
4.3.1 COMEX 黄金(以人民币央行中间价计价)
4.3.2 COMEX 黄金(以美元计价)
4.3.3 美元人民币汇率中间价
4.4 中国香港
4.4.1 恒生指数 HSI
4.4.2 恒生科技指数 HSTECH
4.4.3 恒生国企指数 HSCEI
更多推荐
已为社区贡献1条内容
所有评论(0)