12行代码获取可转债历史数据

发布于: iPhone转发:1回复:22喜欢:10

今天又是一篇教大家写代码的文章,不过不用担心,这个系列的代码量都不会很多,争取控制在20行以内(主要是太长的我也不会,狗头)。

好了,进入正题。如何用12行代码获取到所有可转债的历史数据呢?

老实说,我之前为了拿到可转债的历史数据可以说是翻遍了全网,居然都没有看到一个讲具体操作的,也罢,求人不如求己,就自己来吧。

1、分析过程

编写代码首先要理清楚思路。获取可转债历史数据其实可以分为以下几个步骤,这里又要安利一波优矿,每个步骤都有对应的api可以直接拿来用。

1,获取历史上的每个交易日;

cal=DataAPI.TradeCalGet(exchangeCD=u"XSHG",beginDate=start_date,endDate=end_date,isOpen=u"1",field=u"calendarDate",pandas="1")['calendarDate']


2,获取每个交易日的可转债指数组成,也就是每个可转债的名称;

bond=DataAPI.IdxConsGet(ticker=u"000832",intoDate=date,field=u"",pandas="1")['consID']


3,根据可转债名称获得对应的信息。

cb=DataAPI.MktConsBondPerfGet(beginDate=date,endDate=date,secID=tmp_ID,tickerBond=u"",tickerEqu=u"",field=u"",pandas="1")


然后把这三部分组合起来就好了,是不是很简单。

2、上代码

为了方便大家学习,还是把完整代码列出来,其实写出来一共也就12行,我已经写了注释,很简单易懂。

import pandas as pd# 引入pandas包def get_bond(date):# 获取某日可转债指数000832所有成分 bond=DataAPI.IdxConsGet(ticker=u"000832",intoDate=date,field=u"",pandas="1")['consID'] tmp_ID=list(bond.values) cb=DataAPI.MktConsBondPerfGet(beginDate=date,endDate=date,secID=tmp_ID,tickerBond=u"",tickerEqu=u"",field=u"",pandas="1") print(cb) def get_tradeDate(start_date,end_date):# 获取开始和结束日期中的交易日 cal=DataAPI.TradeCalGet(exchangeCD=u"XSHG",beginDate=start_date,endDate=end_date,isOpen=u"1",field=u"calendarDate",pandas="1")['calendarDate'] for date in cal: print(date) get_bond(date) cal=get_tradeDate('20220101','20220722')# 输入开始和结束日期


今年的数据2分钟就能跑完,想获取其他时间的数据只需要更改最后一行的日期就可以了。运行效果如下,太多了只能截取部分。

3、完整数据

优矿可以拿到的数据包括以上部分,拿到数据之后可以做的事情就多了,可以拿来随心所欲搭建各种策略并回测。比如五因子策略,有很多人说根本拿不住然后卖飞了,这就是因为对策略不了解。总是抄作业,肯定不如自己写来,万一哪天没有作业抄呢是不是?

精彩讨论

全部讨论

kasenbit2023-02-20 23:30

好的,已经关注了哈,我先看下你的文章学习下

Goon滚雪球2023-02-20 15:08

集思录实时数据很好拿的,我写了一篇文章,雪球还没转过来,可以直接去工众号里去看

kasenbit2023-02-20 11:52

集思录的数据爬下来不是图片么?你这边是通过ocr识别图片?精度有点不可控。还是通过js拿前台数据?方便加个好友请教下么?

kasenbit2023-02-20 11:51

这样么,我还打算直接去买宁稳网的数据就好

Goon滚雪球2023-02-20 06:50

Akshare也能拿到历史数据,比优矿多一些字段

kasenbit2023-02-19 18:52

我看了下,还是优矿上面的接口齐全...也方便,就是不知道后续收费使用不...都是云服务在上面直接运行的,策略和数据啥的都不能保存到自己电脑本地。

kasenbit2023-02-19 18:28

请教下,我看Akshareku库bond_cb_index_jsl接口只能拿到当天的可转债数据,有历史的可转债数据?

Goon滚雪球2023-01-10 19:52

不是会员,我从去年年初才开始有意识的保存集思录每天的数据

韭菜翻生2023-01-09 23:06

有,冲会员。查看历史数据快照。我现在在用paddlepaddle识别出图片 转成表格

Goon滚雪球2022-12-10 23:54

集思录有历史数据看吗?我都没找到