list怎么取数据_债券成交和报价数据的处理

前段时间一直忙于日常择券工作,也在建一个方便快速感知现券市场的债券网站,断更了两个多月,今天分享很早之前做的一个小部分,尽量用最简洁的代码和最易懂的方式讲述出来。 债券市场的智能化实在是太落后了,连最简单的成交数据和报价数据都无法很轻松的以Excel格式获得,更别说基于这些数据的分析工作。本篇第一部分先介绍一下对成交数据TXT转换成Excel格式的处理,第二部分介绍如何利用python里的wind函数获取所需要的数据,第三部分讲怎么结合自己投资需求选券。 一、处理成交TXT数据为Excel格式 list怎么取数据_债券成交和报价数据的处理_第1张图片 一般我们得到的数据是这样的TXT格式,如何把他转变成非常好看且实用的Excel数据,其实非常简单,只需要几句核心代码就够了。代码如下,1-4句都是导入相关模块,第5句是读取成交数据TXT文件的代码,第6句是将成交数据分成一条一条的list格式,这样每条数据就都放在一个list里(如果报错可以修改decode里的内容,这个和每个人TXT的默认编码格式相关)。第7-8句是处理重复的空格行问题,无实质意义。第9-13句就是将每天成交数据按照空格去分开,这样得到的格式就是我们想要的dataframe格式,然后第14句输出到Excel就可以了 。 list怎么取数据_债券成交和报价数据的处理_第2张图片 最后处理完的格式就是下图,再改下列名就可以了。 list怎么取数据_债券成交和报价数据的处理_第3张图片 二、利用python中的wind函数模块处理上述数据 上面得到的数据其实还比较粗糙,有时候还需要加工成我们想要的数据,比如上述数据没有发行人名称,我想看同一个主体的成交情况或者报价情况,无法筛选。又比如上述数据虽然有期限,但是没办法进行降序或者升序排列,我想看某个期限内的成交有点困难,或者我想看偏离中债估值的幅度情况对比,也实现不了。当然我们也可以先把他们导出到Excel,再用Excel中的wind函数,但我仍然觉得很麻烦而且不够智能,python里的wind模块其实都可以解决这个问题,只要Excel里的wind能解决,python里的wind函数也基本都能想法设法去解决。 b8f56d27bb05b22cb61e89087d405643.png 接上面代码,首先python里的wind函数也是以债券代码作为唯一参数(和Excel一样),15句取出债券代码,先去重再转变成list格式,之所以要去重,是因为每天的成交数据可能有一个券发生多笔成交,同时wind函数对重复的代码参数会报错,所以用个drop_duplicates去重,也不影响我们想要的结果,此段代码都是为了获取该债券的相关信息。16-19句都是处理时间格式,python里的时间格式特别讨厌,这段都是为了将前一个交易日的时间格式处理成wind能识别的格式,16句是产生今天的日期格式,同时处理成wind能识别的格式,为了17句能取出前一个交易日的日期格式,18和19句就是再次处理成wind能识别的格式(多用几次wind函数就明白了这里的用途,python里的wind函数是需要带日期参数,比如我想取估值,最晚只能取到昨日的,所以需要变换一下),20句是核心,就是利用债券代码作为参数,取出该债券的相关信息,我这里只是取了几个我自己需要的信息,这里可以取条款等基本信息也可以取财务信息。 实际上第20句的内涵非常丰富,功能很强大,需要多想妙招去挖掘,毕竟很多功能不能一部到位,需要灵活处理。这里举几个巧妙的例子,比如我们想按债券剩余期限排序,由于有含权债的存在,而wind函数取出的剩余期限是到期期限,而非行权期限,但是我们在买卖券的时候,期限较长的券实际上是按照行权进行谈价格的,比如2.8+2年的实际上是按照2.8年去谈价格,而我们刚才取出的数据里时间格式如果是短融,又会以D(如263D)和休1这种呈现,当然有好几种方式可以将他们处理成可以排序的格式,比如用正则把无关信息去掉,再除以365转换成年数,比较麻烦,我目前找到的比较简便的是,取出他的termnote(特殊条款说明),再取字符串前6位就正好能把剩余年限取分离出来。 再比如我要求出成交偏离幅度,碰见行权债,一个成交价格到底是行权价还是到期价,TXT数据并不会指明,这实际需要来自日常的经验,一般的规则是,看这个价格离哪个估值更近,就是按哪个成交的,比如18粤科02周五是按照3.85%成交的,行权估值和到期估值分别是3.87/4.21,那么这个3.85%就是按照行权成交的。我们知道这个判断方法后,如何计算机实现,就需要自己设计方法,这里不再细讲,代码如下(修改了部分列名,可根据习惯命名): list怎么取数据_债券成交和报价数据的处理_第4张图片 这里用到了正则和列表推导式,可以细学下这两个特别强大的知识,几乎可以解决很多复杂的问题,最后一句就是求偏离的幅度,考虑了行权债的问题。 三、如何结合自己的投资需求 成交数据可用来观测历史的情况,报价数据用来择券,虽然XX软件可以很方便的按照各种期限、品种、收益率和估值筛选出报价数据,但仍然需要查看自家公司的内部评级来匹配,一来二去,券一多就会非常耗时耗力,可以考虑将所有报价数据定时收集起来,匹配内部评级和投资策略,直接筛选可买卖的券,这块不再细讲了。

你可能感兴趣的:(list怎么取数据)