VIP中文 > 都市小说 > 股海弄潮 > 正文 第236章:第一个“因子”的寻找

正文 第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个。

    一个一个。
  http://www.xvipxs.net/204_204872/71351184.html

  请记住本书首发域名:www.xvipxs.net。VIP中文手机版阅读网址:m.xvipxs.net