基于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()


如需代码里面用到的指数估值数据或者有疑问,大家可以留言,欢迎拍砖^_^

课程参考:网易云课堂  基于Python的量化指数基金投资

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容