python动态选择多因子转债,筛选配债标的

发布于: 修改于:雪球转发:0回复:0喜欢:1

9.3继续更新,遇到了各种坑,akshare这个库虽然是开源免费的吧,但是有个问题就是需要不停的更新,因为本质上底层还是一堆爬虫,数据提供方可不会欢迎这些。

之前更新库老在cmd里运行pip,但是写代码是在pycharm里面,这就造成了一个问题,两边的库不在一个路径下,每次还得手动拷贝,偶尔变化一下还行,akshare这个不停的变,每次都要手动拷贝简直令人头秃,查了一下,直接在pycharm的terminal里面运行pip命令即可,这样就会更新到pycharm这个工程使用的目录里面。

额外说一句,GPT4是真的好用,如果放开了,估计百度要凉,虽然现在搜索引擎也已经换到bing了。

——————————————-

2023.9.3更新

最近又上了新策略,配债策略,就是潜伏配债股,等到公告确权之前卖出。

经过回测,在配债后三阶段都是有超额的。主要有效的因子是高含权和小规模。

21年转债减持新规,5%以上股东限售半年,这个政策减少了新债的流通盘,提高了新债的价格。

集思录有配债数据,但是没有十大股东数据,十大股东数据用来计算流通比例,叠加集思录的数据,就可以算出一个配债收益的数学期望,当然也只是一个估算,因为小规模债会被炒作到什么程度全看市场。但是统计来看,小规模相对大规模还是有超额的,尤其是极低流通盘的。

之前获取可转债的数据是给代码的大佬写好的,这次要用到的获取待发转债页面数据的代码就得自己改了,本来以为很简单,就是换个链接的事,但实际操作起来,还有一点区别。

集思录转债的链接:

待发转债的链接:

本来以为换成这个链接就可以,但是试了试发现是不对的。

实际上应该是在Chrome中F12,选到网络页签,然后点击一个页签,才能看到对应的地址。如下图所示:

我理解可能一个是浏览器中显示的,F12里看到的是实际上JS代码发送的数据吧。

用这个方式获取到待发转债页签的链接,替换进行获取数据就可以拿到了。

——————————-

以下是之前的记录,主要是从集思录获取可转债数据,用来做一个多因子选债的功能,已经用了一段时间,相比手动调仓,还是方便不少的。

底下这部分看着没头没尾的,实际上是一个大佬给的代码,拿来改了改。

pycharm里面有两个python文件,一个是jsl.py,这个是用来获取session的。

还有一个main.py,这个是用来获取数据的。

2023.3.18测试是可以使用的。

用法:

1.在jsl.py里面填写编码后的用户名和密码,这个好像不是必须的,看了一下上次是2022.8填的,今天抓了一下登录过程,发现还是一样的。

这里要注意一下抓登录过程的方法。之前研究这个研究了半天,记得写过个文章,但是找不到了,就再写一个吧。

找到集思录登录页面,如果之前保存的有数据就退出登录。

然后F12调出控制台,选择网络页签。

记得要勾选保留日志,之前就是没勾这个折腾了半天。

其实这里也可以勾选全部右侧的那个fetch/XHR,这样过滤一下找起来更简单。

然后找到那个login_process,点开查看表单数据,里面就有编码过的用户名和密码。

更进一步研究一下,这其实就是个AES加密。

从表单底下的aes:1也可以看出。

有个大神的文章分析了这个AES加密:

网页链接

实际上就是调用cryptoJS组件,写死了一个秘钥。

找了个在线解码网站:网页链接

想试试正向编码,结果发现不对,然后反向解码对了。

集思录用户名的key用的是手机号,之前拿用户名作为key,所以编码出来的不对。

然后把编码后的用户名和密码填到json里面,模拟一个表单请求,就能获取到一个session,然后把这个session写入到一个文件后续使用。

2.这边session获取好以后,就只需要运行main.py就可以了。

这个文章没代码,代码在本地。只是自己记录一下流程,怕下次忘了。