一世书城>都市小说>股海弄潮>第236章:第一个“因子”的寻找
  苦力活:构建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

  来源B:开盘8.52,收盘8.55,最高8.60,最低8.48

  来源C:开盘8.51,收盘8.55,最高8.60,最低8.48

  开盘价差一分钱。

  陈默拿起红笔,在来源C那一列画了个圈。

  然后他翻开笔记本,写下:

  2005.1.4招商银行开盘来源C=8.51其他=8.52差异0.01暂以多数为准

  第二行,2005年1月5日。

  三份来源完全一致。

  第三行,2005年1月6日。

  来源A和C一致,来源B的成交量少了一个零。

  陈默愣了一下。

  他仔细看了看——来源B的成交量是“1,234,500”,来源A和C是“12,345,000”。差十倍。

  他拿起红笔,在来源B那一行画了个大圈。

  然后他站起来,走到陆方身后。

  “这个,”他指着屏幕,“你看。”

  陆方看了看,骂了一句脏话。

  “这些网站,”他说,“有时候为了省空间,会把成交量的单位搞混。有的用‘手’,有的用‘股’,有的直接用省略写法,万、十万、百万混着来。”

  他看着陈默:

  “这种问题,爬虫处理不了。只能人工核对。”

  陈默沉默了几秒。

  然后他走回座位,继续核对。

  一个下午,他核对了3000多个数据点。

  发现了47处不一致的地方。

  每一处,他都用红笔标出来,记在那本笔记本上。

  下班时,他的手指因为一直握着笔,已经有点发僵。

  他站起来,活动了一下手腕。

  周寻走过来,看着他。

  “陈总,”他说,“您今天核对了多少?”

  “三千多个。”

  周寻点了点头,没有说“辛苦了”,也没有说“这活不该您干”。

  他只是说:

  “明天还有两万多个。”

  陈默愣了一下,然后笑了。

  “好。”他说,“明天继续。”

  ---

  傍晚六点,办公室里的人陆续走了。

  赵姐最后一个离开,走之前把电热水壶的电源拔了,把窗户关好。

  陈默还坐在那张折叠桌前。

  桌上摊着那三份表格,红笔圈出来的地方密密麻麻。

  沈清如推门进来。

  她下午去处理别的事了,刚回来。

  她看着陈默,看着他面前那堆表格,看着他手指上沾的红墨水印迹。

  “累吗?”她问。

  陈默想了想:

  “不累。”

  沈清如看着他。

  “真的。”陈默说,“比看K线图轻松。”

  他站起来,走到窗前。

  窗外,车公庙的夜色已经降临。楼下的小餐馆亮起灯,几个人围在门口吃烧烤。远处的深南大道,车流如织,灯火通明。

  “你知道吗,”他说,“我今天想通了一件事。”

  沈清如走到他身边。

  “什么事?”

  陈默指着窗外那些灯火:

  “那些数据,以前对我来说,就是数字。看一眼,涨了,跌了,过了。”

  他顿了顿:

  “但今天,当我一个一个去核对那些数字,去看那些不一致的地方,去想那些数据是怎么来的、怎么被记录的、怎么被处理的——我发现,那些数字,开始变得有生命了。”

  沈清如没有说话。

  “比如这个,”陈默翻开笔记本,指着其中一行,“2006年3月15日,某只股票,成交量的单位错了。如果不是今天发现,以后用它来算换手率,整个因子都会偏。”

  他合上笔记本:

  “以前,我以为量化就是跑代码,就是数学公式。但今天我才知道,最底层的,是这些最脏、最累、最无聊的活。”

  他看着沈清如:

  “如果连这些活都不愿意干,那上面建的所有东西,都是空中楼阁。”

  沈清如看着他,很久。

  然后她轻声说:

  “你变了。”

  陈默愣了一下。

  “哪里变了?”

  “以前,”沈清如说,“你只看结果。股价涨了就是好,跌了就是坏。决策对了就高兴,错了就难受。”

  她顿了顿:

  “但现在,你在看过程。看那些最细的、最不起眼的过程。”

  陈默沉默了几秒。

  然后他说:

  “可能是被2008年教训的。”

  他转过身,看着窗外:

  “以前我以为,投资的关键,是做出正确的判断。后来我发现,正确的判断,也需要建立在正确的基础上。如果基础是歪的,再正确的判断,也会被带歪。”

  沈清如轻轻握住他的手。

  两人站在窗前,看着车公庙的夜色。

  远处,深南大道上的车流还在流动。

  近处,楼下的小餐馆里,有人正在吃烧烤,有人正在喝酒,有人正在大声聊天。

  这就是生活。

  这就是那些数据背后的、真实的生活。

  陈默忽然想起周寻说过的一句话:

  “垃圾进,垃圾出。”

  最简单的道理,最容易被忽视。

  而今天,他们终于开始,亲手把那些垃圾,一点一点清理出去。

  ---

  深夜十一点,陈默最后一个离开办公室。

  走之前,他在那块白板上写下几行字:

  “2005-2007年数据清洗进度:

  上证50成分股:3,000/225,000(1.3%)

  发现不一致数据点:47个

  预计完成时间:未知”

  他看着那行“未知”,笑了笑。

  未知就未知吧。

  反正他们有的是时间。

  反正他们现在,什么都没有,只有时间。

  他关掉灯,锁上门,走下楼梯。

  车公庙的深夜,依然热闹。小餐馆还在营业,路边还有人在吃烧烤,远处偶尔传来货车的轰鸣。

  他站在路边,等出租车。

  抬头看了看天空。

  深圳的夜空,看不见星星。

  但没关系。

  他知道,明天太阳还会升起。

  他还要继续核对那些数据。

  225,000个。

  一个一个。
章节错误,点此报送(免注册), 报送后维护人员会在两分钟内校正章节内容,请耐心等待