栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于Python的指数基金量化投资——指数数据获取

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于Python的指数基金量化投资——指数数据获取

做基金的量化,最最重要的是要有数据,所以指数的数据是所有分析的源头。

Baostock就提供比较全面的指数数据,具体可以参考《基于Python的指数基金量化投资 - 股票数据源baostock》。

指数数据也提供了相应的接口可供调取,通过API接口获取指数(综合指数、规模指数、一级行业指数、二级行业指数、策略指数、成长指数、价值指数、主题指数)K线数据,用户可以指定起始日期和截至日期。

调用的参数包含5个参数,code, fields, start, end, frequency,分别表示股票代码、返回包含的数据列、开始日期、结束日期和k线更新频率。

code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;

fields:指示简称,支持多指标输入,以半角逗号分隔,填写内容作为返回类型的列。详细指标列表见历史行情指标参数章节。此参数不可为空;

start:开始日期(包含),格式“YYYY-MM-DD”,为空时取2015-01-01;

end:结束日期(不包含),格式“YYYY-MM-DD”,为空时取最近一个交易日;

frequency:数据类型,默认为d,日k线;d=日k线、w=周、m=月、5=5分钟、15=15分钟、30=30分钟、60=60分钟k线数据,不区分大小写;指数没有分钟线数据;周线每周最后一个交易日才可以获取,月线第月最后一个交易日才可以获取。

调用的方式很简单:

rs=bs.query_history_k_data_plus("sh.000001","date,code,open,high,low,close,preclose,volume,amount,pctChg",start_date='2017-01-01',end_date='2017-06-30',frequency="d")

上面这段代码就是表示查看sh.000001指数的数据,开始日期为2017-01-01,结束日期为2017-06-30,k先数据按日进行输出,返回数据包含date, code, open, high, low, close, preclose, volume, amount, pctChg

返回数据分别表示:

返回的具体形式如下:

通过获得指数后画出来的指数走势如下:

下面是具体的代码实现过程。

import baostock as bs
import pandas as pd
import datetime
import matplotlib.pyplot as plt

time_end = (datetime.datetime.now()).strftime('%Y-%m-%d')
print(time_end)
# 登陆系统
lg = bs.login()
# 显示登陆返回信息

time_end = '2021-10-30'
name_index = 'sh.000933'
rs = bs.query_history_k_data_plus(name_index,
    "date,code,open,high,low,close,preclose,volume,amount,pctChg",
    start_date='2000-01-01', end_date=time_end, frequency="d")

# 打印结果集
data_list = []
while (rs.error_code == '0') & rs.next():
    # 获取一条记录,将记录合并在一起
    data_list.append(rs.get_row_data())
result = pd.Dataframe(data_list, columns=rs.fields)
# 结果集输出到csv文件
result.to_csv("./exportfile/indexDataAll/" + name_index + ".csv", index=False)
# index_info = pd.read_csv('./exportfile/indexDataAll/' + view_name + '.csv')

all_data_index = pd.read_csv('./exportfile/indexDataAll/' + name_index + '.csv')
data_index_p = all_data_index['close'].values[0:len(all_data_index['close']):1]
plt.figure()
plt.rcParams["axes.grid"] = True
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams["grid.linestyle"] = (3, 5)
plt.plot(data_index_p, color='tomato', linewidth=3)
plt.show()

# 登出系统
bs.logout()

程序中用到的指数估值信息大家可以留言获取也可以添加小将前行的微信xjqx_666进行获取,欢迎大家一起交流。
课程参考:基于Python的量化指数基金投资

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/487628.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号