房间在求是村的一栋老居民楼里。七楼,没有电梯。楼道里的灯是声控的——拍一下手灯亮,二十秒之后灯灭,灭之后要再拍一下手才会亮。走廊的水泥地面有一层灰,灰上印着脚印——不是一个人的,是多人的多双鞋底踩出来的纹路叠加,像一幅没有顺序的拓印画。墙面上贴着小广告——"专业通下水"、 "开锁王"、 "搬家货运"——白纸红字或者黄纸黑字,有的被撕了一半,一半纸还在墙上,一半纸的痕迹变成了长方形的黄印。
房间十二平米。一张单人床、一张书桌、一把椅子。书桌靠窗放——窗朝西南,理论上能看到西湖的方向,但实际上窗外是另一栋居民楼的侧墙,灰色的水泥墙面在十一月的阴天里发暗,暗得像一张没有数据的监控屏幕。墙和窗之间隔了大概六米,对面那一栋的窗户也拉着帘子,帘子是粉色的,粉色上面印着几朵花,花的颜色在阴天里看不太清。
书桌上摆着笔记本电脑,笔记本旁边是他从深圳带来的备用硬盘——一个2.5寸的移动硬盘,黑色塑料壳,壳角有一点磕痕,是去年在智水平台机房里碰桌角磕的。硬盘旁边是蓝色钢笔——笔帽上的裂缝,透明胶三圈,和一年前一样。
第二个显示器是昨天买的。二手的——从浙大西溪校区北门出来的一条小街上有一家电脑店,店门口挂了一排打印出来的纸:"二手显示器 19寸 80元 21寸 120元"。他买了一个21寸的,一百二。老板用塑料袋装显示器的时候在屏幕上贴了一道泡棉条防止刮花,白色泡棉横在黑色面板上,很扎眼。
回到房间之后他把显示器接上——HDMI线从笔记本侧面插进去,显示器亮了。两块屏幕。左边是Aurora的监控面板,右边是代码编辑器。两块屏幕靠在一起,中间有一条细细的边框线。
Aurora v2的第一行注释写完了:# aurora_v2.py - 动态止损+仓位管理+风控模块。
脊椎是v1的五百零三行代码——数据模块、策略模块、仓位模块、止损模块、执行模块。每行代码都还在,但每行代码都可能改。
止损模块先改。v1的止损是硬编码——固定百分之五止损、固定追踪止损百分之三、固定四十八小时时间止损。市场的波动没有规律,昨天波动率千分之五,今天可能变成百分之三,明天可能变成千分之二。固定止损在波动率低的时候太宽松,在波动率高的时候又太紧。
赵启明在电话里说的——止损不是认输,是给下一次机会留本金。这句话是逻辑的起点,但不是代码的全部。代码要把这句话拆成数字——百分之几止损?动态范围多大?止损线怎么跟着波动率浮动?百分之几留给下一次?每一个问号变成一行代码,每一行代码变成一个参数,每一个参数变成一次回测验证。
止损模块的新逻辑是这样的:以二十日波动率的1.5倍作为止损距离。波动率大的时候止损宽一点,波动率小的时候止损窄一点。不是固定百分之五,而是跟着市场状态走。
写止损模块的时候他停了一次。光标在屏幕上闪,半秒一亮,半秒一暗。大四课程设计里画过的那张泄压阀装配图忽然浮上来:阀体、阀瓣、弹簧、调节螺母、密封圈。那时候他记住的是结构,现在要把结构写进代码。
两百行。止损模块改完两百行。加上仓位管理模块的一百五十行和风控模块的一百行,总共比v1多了三百五十行。v2从五百零三行变成了八百五十行。代码从12KB变成了21KB。代码量翻倍,但功能从线性变成了动态。
杭州十一月的冷不是哈尔滨的冷。
哈尔滨的冷是干的——零下二十度,空气里的水冻成了冰,吸进去的每一口都是干冷,干冷在气管里走一遍就把黏膜上的水带走了,嗓子发紧,嘴唇裂。但干冷可以穿衣——羽绒服一裹,围巾一围,出门走十分钟不太难受。冷在衣服外面,暖在衣服里面,界限清楚。
杭州的冷是湿的——五度,不是零下,但冷从地底下往上渗,从墙缝里往里钻,从被窝外面往骨头里走。不是冷在衣服外面——是冷穿过了衣服直接贴在皮肤上。在房间里坐着写代码,手指敲键盘的时候不冷,但脚冰凉——地板的冷从脚底板往上走,走到小腿就停了,小腿到膝盖之间有一段不冷不热的,膝盖以上又暖了,因为桌面的笔记本在发热,手在键盘上在动,上面有热源,下面没有。
他买了一个电暖器——小的,像一只白色的方盒子,上面有出风口,吹出来的风带一点塑料被烤热后的味道。他把电暖器放在桌子下面,对着脚吹。脚暖起来以后,手敲键盘也快一点。
白天睡觉。上午九点到上午十一点补觉,窗帘拉上,电暖器开着低档,脚放在被窝里不冷了就睡。十二点起床,简单吃一点——楼下有一家面馆,片儿川十二块一碗,笋片和雪菜和肉片,汤是白的,面是细的,吃饱了回来写字代码写到凌晨两三点。
下午一点A股开盘。一点到三点是Aurora的交易时间——v2还在回测,暂不用实盘。实盘跑的是v1,v1还在跑,每天两到三笔交易,积蓄在缓慢增加——三万变成了三万二千一百四十七。两个月,赚了两千一百四十七块。不多。但方向对了。方向对了就不用急。v1到v2到v3,每一个版本都要慢慢试,慢慢改。
周日。不交易的日子。
他给母亲打了一个电话。电话响了四声——母亲接电话总是响四声之后才接,大概是手机放在别的房间走过去需要时间。
"妈,我在杭州了。"
"杭州在哪里?"
"浙江。"
"干什么?"
"写代码。"
"挣钱吗?"
"还行。"
她不问更多。她从来不问更多。他爸爸在的时候也不问——他只说"好好干",不问干的是什么。母亲只说"好好吃饭",多加一个字都不肯说。"好好吃饭"是她的止损逻辑——不管遇到什么情况,先吃饭再说别的。和止损一样——不管市场怎么波动,先保住本金再说别的。本金是吃饭,利润是加菜。保住了本金才有下一次。
挂了电话。窗外的雨天黑了一层——对面居民楼的粉色帘子在灰色的天光下发暗。房间里的电暖器在低档嗡嗡响。
十二月三十一日。2013年的最后一天。
杭州下雨。不是大雨——是那种细密的冬雨,雨丝从天上落下来的时候几乎是水平的,被风带着往窗户上扑,扑到玻璃上就变成一条条竖着的水痕,水痕从上往下淌,淌到窗框底下汇成一条细线,细线沿着窗台往两侧流。像接雨水管——雨水从屋面天沟流进来,经落水管流到地面。窗台就是天沟,玻璃就是落水管,雨痕就是水在管壁上走的轨迹。
他翻开笔记本。蓝色钢笔。最后一页了——这一本的最后一页。下一本得买新的。
2013年。深圳的智水平台失败了。Aurora的第一版在跑。三万块变成了三万二千一百四十七。不多。但方向对了。
笔尖停在"方向对了"四个字后面。他看着这行字看了几秒。然后在下面又写了一行:
管网→算法→?→交易。
写完他看了一下那个问号。问号是几年前留下的,不是在笔记本上,是在脑子里。从给排水到百度,再到Aurora,那条线越来越清楚。现在问号少了一个,后面又多了一个。
但"交易"后面还有一个问号——交易→?流向哪里?Aurora赚了钱然后呢?钱流向哪里?人生流向哪里?算法找得到最优路径,但路径的尽头是什么?
笔尖在问号旁边停了一下。然后他把问号划掉了——不是用墨水划的,是用笔帽敲了两下桌面,像在思考。然后把笔记本合上了。
窗外的雨还在下。细密的冬雨打在窗户上,水痕一条一条往下淌。从深圳到杭州,方向换了,但他还在往前走。
2014年。v2要跑起来。止损要动态。仓位要浮动。风控要加。八百五十行代码。21KB。方向对了。接下来是让水在管道里流得更稳——不是流得更快,是更稳。稳了才能远。远了才能到。
笔记本合上了。最后一页的最后一行写的是:
管网→算法→交易。
问号没了。三个节点,两条边。三角形的形状还没出来。但方向——方向是对的。