12行代码在优矿上获取所有可转债历史数据

如何用12行代码获取到所有可转债的历史数据呢?

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

分析过程
编写代码首先要理清楚思路。获取可转债历史数据其实可以分为以下几个步骤,这里又要安利一波优矿,每个步骤都有对应的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")

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

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

import pandas as pd
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('20220722','20220722')# 开始和结束日期 


但是很可惜,优矿的可转债历史数据项目不如集思录的数据丰富,有些正股相关的数据需要进一步编写代码才能获得。
以下是优矿可以直接得到的数据字段:
可转债通用交易代码
可转债简称
正般通用交易代码
正股简称
交易日期
发行额(亿元)
剩余规模(亿元)
转债价格
转股价格
正股价格
赎回价格
可转债今日涨跌
可转债最近一周涨幅
转股溢价率
纯债价值
纯债溢价率
特别向下修正条款
到期赎回条款
有条件赎回条款

今年的数据2分钟就能跑完,想获取其他时间的数据只需要更改最后一行的起始日期就可以了。
拿到数据之后可以做的事情就多了,可以拿来随心所欲搭建各种策略并回测。
0

guangqq

赞同来自:

@dhzwcnm1000c
感谢分享,用 cal.to_csv('archive') 保存数据,会显示AttributeError: 'NoneType' object has no attribute 'to_csv' 请问要怎么解决,万分感谢
cal.to_csv('archive.csv')
2023-03-24 15:41 来自广东 引用
0

dhzwcnm1000c

赞同来自:

感谢分享,用 cal.to_csv('archive') 保存数据,会显示AttributeError: 'NoneType' object has no attribute 'to_csv' 请问要怎么解决,万分感谢
2023-03-23 16:32 来自浙江 引用
1

guangqq

赞同来自: 风灯

@JavaCrab
优矿收费吗?
有收费的数据源,大部分免费的
2022-07-27 07:39 来自广东 引用
0

guangqq

赞同来自:

@huxj2015
牛人...................
小白一个,继续学习
2022-07-27 07:38 来自广东 引用
0

guangqq

赞同来自:

@小白啊小白
优矿有历史1m数据么,免费么,正好现在JQ越来越不方便了。
免费,但是只有按天的数据
2022-07-27 07:38 来自广东 引用
0

guangqq

赞同来自:

@梦星河
优矿数据准吗?以前核对过数据,感觉不太准诶
有缺的值,能拿到的基本没啥问题
2022-07-27 07:37 来自广东 引用
0

guangqq

赞同来自:

@斧利复厉
请楼主解惑,怎样用集思录上转债的数据构建策略和回测?我只知道果仁网有这个功能,可惜没有转债的数据。
集思录没有历史数据吧,那就没法回测了,我构建策略和回测都是在优矿上进行的
2022-07-27 07:36 来自广东 引用
0

guangqq

赞同来自:

@shengweixp
哪家的api,收费吗
优矿,不收费
2022-07-27 07:35 来自广东 引用
0

shengweixp

赞同来自:

哪家的api,收费吗
2022-07-26 21:24 来自安徽 引用
0

斧利复厉

赞同来自:

请楼主解惑,怎样用集思录上转债的数据构建策略和回测?我只知道果仁网有这个功能,可惜没有转债的数据。
2022-07-26 21:22 来自广东 引用
0

梦星河

赞同来自:

优矿数据准吗?以前核对过数据,感觉不太准诶
2022-07-26 21:20 来自江苏 引用
0

huxj2015

赞同来自:

牛人...................
2022-07-26 21:17 来自四川 引用
0

小白啊小白

赞同来自:

优矿有历史1m数据么,免费么,正好现在JQ越来越不方便了。
2022-07-26 21:09 来自北京 引用
0

JavaCrab

赞同来自:

优矿收费吗?
2022-07-26 20:07 来自江苏 引用
0

guangqq

赞同来自:

@luxdgy
ga哦哦
ladygaga
2022-07-26 10:45 来自广东 引用
0

guangqq

赞同来自:

@百战百胜心法
集思录大师呀 太厉害了
我是小白一个。。。
2022-07-26 10:45 来自广东 引用
0

guangqq

赞同来自:

@大狗的猴哥
我想问下,这个代码只能在优矿运行么
是的,api返回的是优矿数据库里的信息,本地是运行不了的。
2022-07-26 10:44 来自广东 引用
0

大狗的猴哥

赞同来自:

我想问下,这个代码只能在优矿运行么
2022-07-26 10:39 来自浙江 引用
0

guangqq

赞同来自:

@乌镇的梧桐树
高手!让我这个文科生,在看来真的像天书!
其实代码真的很简单。。
2022-07-26 10:28 来自广东 引用
0

guangqq

赞同来自:

@大宝爱打新
优矿上的数据太少了,不如集思录丰富
像正股相关的数据也可以获取,但是要多写几行代码
2022-07-26 10:18 来自广东 引用
0

百战百胜心法

赞同来自:

集思录大师呀 太厉害了
2022-07-26 09:12 来自湖北 引用
0

大宝爱打新

赞同来自:

优矿上的数据太少了,不如集思录丰富
2022-07-26 09:11 来自江苏 引用
1

乌镇的梧桐树

赞同来自:

高手!让我这个文科生,在看来真的像天书!
2022-07-26 09:01 来自浙江 引用
0

大狗的猴哥

赞同来自:

老哥厉害了
2022-07-26 08:59 来自浙江 引用
0

luxdgy

赞同来自:

ga哦哦
2022-07-26 08:58 来自黑龙江 引用

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2023-03-24 15:41
  • 浏览: 5726
  • 关注: 47