AI给老码农的小小震撼:PB/PE分位计算

今天按照旧套路折腾,从网页复制粘贴,数据清理,处理,抓取数据源,vba中的网页下载报错,xls的公式,等等,逐个解决,直到山穷水尽。

不得已回到聚宽,但也好久没写了,干脆给ds安排。就这么几个问题:

1.使用聚宽获取不复权的数据

2.聚宽可以获得历史PE和pb吗

3.写一段聚宽的代码,从2005-01-01年开始,隔30天取一条日PE和PB数据,统一存放在df中

4.针对上报的df,计算所有PE的平均值,给定一个现有的pe值,计算其分位点

ai直接给出代码,基本上不用太大的调整就能跑通了,半个小时不到,就搞定了!!!

image

image

这是集思录上的,因为数据周期、密度不一样,结果有差异,但可以看出,均值、分位完全能够和集思录等效。

image

今天这个经历,刚好能够对比一下,AI对程序员的影响。前面的开发,可以看作是常规模式,尽管其中部分工作如vba的代码,基本上都是让AI写的了,但在开发过程中,需要处理大量的细节:

1.不同的财报数据源选择

2.针对选定的数据源的采集方法,我选择的是从雪球复制粘贴,尽管雪球的财报数据一页只有四条,但选中后翻页仍然处于选中状态,只需不停翻页粘贴即可

3.excel数据的转秩,是用软件自身功能,还是用vba

4.得到的数据的整理,包括无用的数据列删除,新增列,用替换的方式,写入四个财报的时间,作为提取价格的依据

5.找价格的数据源,搜到的有搜狐的api,可以按照时间段返回数据,浏览器中验证

6.第一个问题,就是sohu的接口中,如果指定一天但没有交易,则不返回数据。因此对原来已有的vba网页抓取函数改写,对传入的日期参数,往前往后各延展7天,查询这个时间段数据,在其中找指定日期的数据,未找到的话向前查找。vba中的DateAdd、Format这些函数的用法,我是不可能直接写出来的,免不了查询一下,看看参数定义,再写,再检验。

7.发现生成的url,在浏览器正常,在vba中返回503号错误,怀疑web对访问有限制,在网上搜索,有个解决方案是把microsoft.xmlhttp对象换为WinHttp.WinHttpRequest.5.1,我换了后,原来的xmlobject.readystate = 4返回状态不能用,又尝试发现可以用status跟踪返回代码,200为正常,但仍然返回503。

8.无奈放弃sohu的接口,继续寻找,找到新浪的接口,能够返回股票历史上所有的收盘价。于是总逻辑变了,一次提取后,逐条寻找并填入。下载比较顺利,但是解析字符串的方式,(数据类似:_2025_07_31:"1.462737")我决定用查找日期,找到后从该位置往后找2个双引号,再用mid提取数据,试验后调整长度的参数,因为两个索引相减后到底再加减几我也懒得算,基本上都是设置断点看差多少,然后直接写数字。

9.仍然需要解决提取日期为空的问题,方法是把上面的查找改为循环,没找到就把日期往前提,直到找到为止。

10.终于把价格列得到了,在excel中新建一列,先算一个最简单的pb,就用年报的数据算。但是我判断年报行时又遇到问题,在excel的公式里面,字符串比较居然不支持instr,又试substr,也不行,查帮助,要用find或search,但老是报无效数据,最后发现,没找到就会报错,faint,一番折腾,把公式改为=IF(IFERROR(FIND("年报",A3),0)>0,C3/I3,"")

11.可以算出来了,结果发现,价格有问题,上市第一天是1块,最新的居然高3.7倍。用的是前复权,改为后复权,更不对。再取几个不同阶段的数据对比,发现前复权数据在短期内和真实数据比例稳定,长期看又是不断拉大。我在纠结是否要搞一个线性变换,但是实在太折腾了。

12.现在问题变为,哪儿可以找不复权的行情数据,tushare就算了,各种收费的也免了。在deepseek中问了一下,聚宽有没有不复权的数据,结果说有。继续问有没有历史pe和pb,也说有。干脆回到聚宽。在研究环境下,让ds先写,改改就好了。

整个过程,只是替换了一下股票代码,python的语法、pandas的各种变化、聚宽的api,我基本都不用操心,我甚至连文本提示、输出文字都不用改,太牛了!

今天正好在抖音刷一个程序员的连载,好像叫“让编程继续伟大”,上来就提到UML的坑让我深有同感。作为一个从dos时代走过来的程序员,我自己经历了Turbo Pascal,TC,VB,VC,CB,PB,C#,JS,CSS,PYTHON的深度纠缠,接触了不多不少的各种行业,深感程序员的痛点在于工具不断升级,相比之下,开发经验、业务理解等这些东西反而显得没那么有价值,所以才会给人老程序员无法与年轻人竞争的刻板印象。

但如果像今天这样,具体的东西都由AI代劳了,我们需要关注的是宏观的目标,业务的达成,“老人”往往更有优势。

希望有一天,我们也能像霍元甲一样,一拳砸出,冲着年轻人来上一句,“这一拳二十年的功夫,你们挡得住吗?”image

posted @ 2025-08-03 18:58  jetz  阅读(0)  评论(0)    收藏  举报