第236章:第一个“因子”的寻找 (第1/2页)
苦力活:构建A股十年基础数据库
2010年4月5日,星期一,上午九点三十分。
车公庙,三十平米的办公室里,四台电脑同时开着。
陆方坐在最靠里的位置,面前三块屏幕,正在写代码。周寻坐在他对面,手里拿着一本翻旧了的《上市公司信息披露指引》,眉头紧锁。陈默挤在角落里的一张折叠桌旁,面前堆着厚厚一摞打印出来的Excel表格,正一行一行地核对数字。
窗外,泰然工业区的喧嚣一如既往——货车的轰鸣,餐馆的油烟,五金店切割金属的尖啸。但这些声音,在这间三十平米的房间里,像是被一层无形的玻璃隔开了。
没有人说话。
只有键盘敲击声,纸张翻动声,偶尔有人叹一口气。
这是“默石量化研究实验室”成立后的第五天。
五天前,他们挂牌时,陈默说目标是“打造一台在长期能稳定赚钱的机器”。周寻说先要“v0.1”。陆方说服务器只能跑一百个策略。
但所有这些,都建立在一个前提上:
有数据。
没有数据,就没有回测。没有回测,就没有策略。没有策略,就没有机器。
而数据,他们现在一分也没有。
不是完全没有——市面上有卖的数据库,但价格贵得离谱,起步价就要几十万。陈默问了一圈,最便宜的也要三十万,还是只有最近三年的数据,不包含财务指标,不包含宏观数据,不包含任何清洗过的因子。
三十万。
账户里只剩下六十三万现金,每个月还要付房租、发工资、还贷款。
陈默做了个决定:
自己做。
从零开始。
---
陆方的第一个任务:写爬虫。
目标:从公开的财经网站上,把A股过去十年的日线数据全部爬下来。
听起来简单,做起来才知道有多恶心。
那些网站的反爬机制五花八门——有的限制IP访问频率,有的用动态加载,有的在数据里掺假,有的直接封IP。陆方写了三天,被反爬机制封了七次。他不得不写一个代理池,每天从网上找几百个免费代理IP,轮着用。
“这些网站,”他一边敲键盘一边嘟囔,“不让爬就算了,还在数据里掺假。我昨天爬下来的平安银行,有一天的收盘价居然是88.88。明显是故意埋的坑。”
陈默站在他身后,看着屏幕上那些代码。
他不完全懂,但他能看懂陆方脸上的表情——不是烦躁,是专注。
那种“我一定要搞定你”的专注。
“能处理吗?”他问。
陆方点头:
“能。但得加一个清洗层。把所有明显异常的数据标记出来,回头人工核对。”
“需要多少人?”
陆方想了想:
“至少两个。专门干这个。”
陈默看了看房间里的人。
小林在研究周寻给的论文,小吴在整理过去的研究笔记,小周在学Python,王涛在调试那两台服务器。赵姐在算账,老刘在联系便宜的云服务商。
没有人闲着。
但也没有人能专门做数据清洗。
陈默沉默了几秒。
然后他说:
“我来。”
陆方抬起头,看着他。
“您?”
“我。”陈默说,“我干过这个。”
他走到那堆打印出来的Excel表格前,坐下来:
“1992年,我刚入市的时候,没有电脑,没有软件。所有的K线图,都是我手画的。每一根K线,开盘、收盘、最高、最低,一个一个从报纸上抄下来,然后用尺子画在坐标纸上。”
他看着陆方:
“现在有Excel了。比那时候强多了。”
陆方看了他几秒,然后点了点头。
没再说别的。
---
周寻的第一个任务:定标准。
爬虫爬下来的数据,乱七八糟。
同一天,不同网站的开盘价可能差几分钱。同一只股票,不同年份的股本可能变过好几次,不复权、前复权、后复权,根本对不上。财务数据更乱——有的公司用旧会计准则,有的用新会计准则;有的报表里“净利润”是归属于母公司的,有的是合并报表的;有的“每股收益”是摊薄的,有的是加权的。
周寻拿着一份自己整理的《数据清洗标准手册》,对着那一堆原始数据,一条一条核对。
“这里,”他指着屏幕,“2005年6月30日,招商银行。三个来源的数据,两个说收盘价是6.52,一个说是6.55。差三分钱。”
陈默凑过去看。
“三分钱,影响大吗?”
周寻摇头:
“单看一天,不大。但如果用来算年化收益,差之毫厘,谬以千里。”
他顿了顿:
“而且,如果三分钱的误差是系统性的,那整个回测结果都会偏。”
陈默沉默了几秒。
然后他问:
“那怎么办?”
周寻想了想:
“找第四个来源。如果还是对不上,就取中位数。然后把这个问题记下来,以后做敏感性分析。”
他看着陈默:
“所有类似的问题,都要记下来。不能假装不存在。”
陈默点头。
他拿起一支笔,在笔记本上写下第一行:
“数据问题清单”
下面,他写:
1. 2005.6.30 招商银行 收盘价 三个来源不一致 (6.52/6.55) 处理:取中位数6.53
2. ……
这本笔记本,后来成了“默石数据清洗史”的第一页。
整整三年后,他们才真正拥有一套干净的、可用的十年数据库。
而这本笔记本,已经写满了三百多页。
---
下午三点,陈默亲自开始核对数据。
陆方给他分配了第一批任务:2005年到2007年,上证50成分股的日线数据。
一共50只股票,三年,大约750个交易日。每只股票每天有开盘、收盘、最高、最低、成交量、成交额——六个字段。
总共225,000个数据点。
陈默坐在那张折叠桌前,面前摊着三份打印出来的表格——分别来自三个不同的数据源。
他的任务:一行一行比对,把不一致的地方标出来。
第一行,招商银行,2005年1月4日。
来源A:开盘8.52,收盘8.55,最高8.60,最低8.48
(本章未完,请点击下一页继续阅读)