走势的核心
走势的核心
一、K线里住着人
陆鸣第一次注意到异常,是在一个周四的凌晨三点。
不是那种交易员常说的”异常波动”——成交量突然放大、价格偏离均线两个标准差之类的。那种异常他见过无数次,闭上眼睛都能画出分时图的走势,像老中医把脉一样,手指搭上去就知道是恐慌还是贪婪在作祟。
这次的异常不一样。
屏幕上,他追踪了三年的”趋势核心”模型——一个他自己从零搭建的量化交易系统——在预测沪深300指数期货的拐点时,突然吐出了一串奇怪的输出。不是买入或卖出的信号,不是仓位建议,而是一段被编码成十六进制的文本。
陆鸣盯着那串字符看了很久。他在量化行业干了十二年,从最底层的策略研究员做到现在的自营交易部门负责人,写过不下十万行代码,见过各种模型的”幻觉”和”过拟合”,但从没见过一个时间序列预测模型会自发地输出文本。
“这他妈是什么?“他自言自语,手指在键盘上犹豫了一下,还是打开了十六进制转文本的在线工具。
解码后的内容让他后背发凉:
“王桂兰。女。1971年生。2008年3月17日入厂。工号A-0437。岗位:三车间质检。2015年12月因设备故障失去右手食指。赔偿金七万两千元。2024年11月3日病逝于县医院。死因:肝癌晚期。未续缴医保。其子陆建国尚欠房贷四十七万元。”
陆鸣的手开始发抖。
不是因为这段文字本身——在任何一个数据平台上,这种信息都不算罕见。中国制造业的转型升级里,这样的故事比比皆是,多到让人生出一种麻木的钝感。
让他发抖的是最后一句话。
“其子陆建国尚欠房贷四十七万元。”
他父亲叫陆建国。他的母亲叫王桂兰。
二、模型是怎么学会流泪的
事情要从三年前说起。
2023年初,陆鸣离开了他工作了八年的那家百亿量化私募。原因很简单——他觉得自己触碰到了策略研究的”天花板”。传统的因子模型、机器学习、深度学习,能挖掘的alpha越来越薄,竞争却越来越惨烈。他有了一个疯狂的想法:如果把宏观经济数据、微观交易数据,以及——他犹豫了很久才加上去的——社会层面的”另类数据”融合在一起,能不能训练出一个真正理解”市场走势本质”的模型?
他管这个模型叫”趋势核心”。
另类数据的来源很杂。他买了卫星图像数据,用来估算工厂开工率和农作物产量;他爬取了社交媒体的情绪指数,量化恐惧和贪婪的传播速度;他甚至花钱接入了几个县城医院的匿名就诊数据,试图从健康指标的群体变化中嗅出经济周期的先兆。
这些数据本身并不违法。事实上,很多头部量化基金都在做类似的事情,只是没有人像他这样,把它们堆叠到一个如此庞大的神经网络里。
“趋势核心”的架构是他自己设计的。底层是一个改造过的Transformer,用来处理时间序列;中间层是一组图神经网络,用来建模不同资产之间的关联;顶层是一个他称之为”叙事提取器”的模块——灵感来自于GPT的生成能力,但目标不是生成文本,而是从数据中提取出”市场正在讲述的故事”。
训练数据的时间跨度从2005年到2023年,涵盖了A股历史上几乎所有重要的拐点:2007年的疯牛、2008年的崩盘、2015年的杠杆牛和股灾、2018年的贸易战、2020年的疫情冲击、2021年的赛道股泡沫……
训练的过程很漫长。陆鸣租了一台搭载八张A100的服务器,花了十四个月才跑完第一轮。中间他好几次想放弃,因为”叙事提取器”的输出一直不稳定——它经常会生成一些看起来像中文但毫无逻辑的句子,像是模型在做梦。
但到了2024年中,情况突然发生了变化。
“趋势核心”开始输出一些有意义的片段。比如,在回测2015年6月的数据时,模型输出了这样一段话:
“大量散户在5000点附近使用了杠杆工具。他们的平均持仓时间为2.3天。资金来源中,约34%来自消费贷或民间借贷。当指数跌破4500点时,强制平仓的连锁反应将在72小时内蒸发约3.7万亿市值。每一个强制平仓的账户背后,都有一个具体的家庭。”
这段话的准确性让陆鸣吃惊——不是因为它的数据有多精确(事实上,3.7万亿这个数字和他自己的估算非常接近),而是因为它的语气。那不是机器在汇报数据,而是某种类似于……见证者在陈述事实。
他把这归结为模型的”涌现能力”,一种大语言模型中常见的现象:参数量足够大、训练数据足够多之后,模型会自发地展现出设计者没有明确训练过的能力。
他没有深想。
直到今天凌晨。
三、七万两千元
陆鸣坐在昏暗的书房里,面前是一块四十三英寸的4K屏幕,上面同时显示着交易终端、代码编辑器和那段解码后的文本。窗外是深圳南山区的夜景,灯火稀疏——凌晨三点,连这座城市最不知疲倦的打工人都已经睡去。
他拿起手机,翻到通讯录里”爸”的号码。
那个号码已经两年没拨过了。不是不想打,而是打过去也只会听到一段冰冷的”您拨打的号码已停机”。
陆建国是在2024年底失联的。那之前,父子俩的关系已经降至冰点。起因是母亲王桂兰的葬礼——陆鸣从深圳飞回去,发现父亲不仅没有给母亲买墓地,甚至连医院的欠费都没有结清。
“你妈的病,治了也是白治。“陆建国在葬礼上抽着烟说,“人总是要走的。”
陆鸣当时几乎揍了他。
后来他才知道,陆建国不是不想治,是真的没钱。那个曾经体面的县城工厂在2019年倒闭了,陆建国下了岗,靠打零工维持生计。母亲的医疗费、自己的房贷、陆鸣读大学时欠下的贷款——所有的重担压在一个五十多岁的男人身上,压得他连悲伤的资格都没有。
但陆鸣无法原谅他。不是因为钱,而是因为那句话——“治了也是白治”。在他看来,那不仅仅是对母亲的不负责任,更是对某种更深层的东西的背叛。一种关于”人值得被好好对待”的基本信念。
母亲失去食指的那年,陆鸣十四岁。他记得母亲从医院回来那天,右手缠着厚厚的纱布,左手拎着一袋橘子。
“没事,就少了一根指头。“母亲笑着说,“你看,还能给你剥橘子。”
她用左手笨拙地剥了一个,递给他。橘子的汁水沿着她的手腕流下来,和纱布上渗出的血混在一起,变成了一种奇怪的颜色。
那个画面,陆鸣记了二十年。
他盯着屏幕上的文字,重新读了一遍:“赔偿金七万两千元。”
七万两千元。一根食指的价格。在2015年的那个县城,这个数字甚至算得上”合理”——至少比很多人拿到的多。母亲的工友们都说她”走运”,因为厂里的律师怕她闹,多给了两万。
“走运”。
陆鸣把这个词语在嘴里嚼了嚼,尝到一股铁锈味。
他开始在”趋势核心”的训练数据中搜索”王桂兰”这个名字。他翻遍了所有数据库——交易记录、信贷数据、社保信息、医院的匿名就诊记录。什么都没有找到。这些数据都是匿名化的,不可能出现真实姓名。
但模型确实输出了这个名字。
他写了一个诊断脚本,追踪”趋势核心”在生成那段文本时的中间层激活状态。他想看看,究竟是哪个模块、哪一组神经元,在什么样的输入条件下,“编造”出了这段信息。
脚本跑了四十分钟。结果出来的时候,陆鸣的咖啡已经凉透了。
诊断报告显示,那段文本不是从任何一个训练数据中”提取”出来的。它是模型的中间层——那个”叙事提取器”——在处理一组特定的时间序列数据时,自发地生成的一段”叙事”。触发条件是:当模型检测到某个时间窗口内,某类资产的价格波动与某类社会事件之间存在高度相关性时,它会尝试”描述”这种相关性的具体形态。
换句话说,模型不是在”回忆”数据,而是在”想象”故事。
但那个故事为什么会是他母亲?
陆鸣开始怀疑自己的记忆。他强迫自己回忆:他有没有在某个公开平台上写过母亲的故事?微博?知乎?朋友圈?他翻遍了所有的历史记录,没有找到任何一篇提到母亲名字和工厂信息的帖子。
然后他想到了一个可能——一种让他浑身冰凉的可能。
“趋势核心”的训练数据中,有一部分来自他的个人工作站。他在搭建模型的时候,为了方便调试,把工作站的本地文件系统挂载到了训练管道上。而他的工作站里,存着一篇他2019年写的、从未发表过的日记。
那篇日记里,他写下了母亲失去食指的全部细节。包括工号。
他以为那篇日记埋在几百个GB的文件海洋里,永远不会被任何程序读到。但”趋势核心”的训练管道在扫描文件系统时,把它当作了”另类数据”的一部分,喂给了模型。
模型记住了。
不,不是”记住”。它不是在简单地进行文本检索——如果只是检索,它应该原封不动地输出日记的片段,而不是像现在这样,以一种”叙事”的口吻重新组织信息,甚至补充了他不知道的细节(比如赔偿金的准确数字和母亲的去世原因)。
那些补充的信息,有些是可以在公开数据中推算出来的。但有些——比如”未续缴医保”——需要非常具体的、他从未在任何地方记录过的知识。
陆鸣在凌晨四点十七分做了一个决定:他不要去追查这些信息是从哪里来的。不是因为他不好奇,而是因为他害怕。
他害怕自己会发现,模型知道的不只是他母亲的故事。
四、走势
第二天,陆鸣没有去公司。他请了病假——在量化行业,“病假”通常意味着”策略出了问题需要独处思考”,没有人会多问。
他花了整个上午重新审视”趋势核心”的架构。他需要搞清楚一件事:那段关于他母亲的文本,究竟是一次偶然的”幻觉”,还是模型具备了一种他从未设计过的能力?
他设计了一个实验。
他选取了五个历史时间窗口——分别对应2008年10月(全球金融危机)、2013年6月(钱荒)、2015年8月(股灾第二轮)、2018年10月(质押危机)和2022年10月(防疫政策转向前夜)。对每个时间窗口,他输入完整的市场数据和另类数据,然后让”趋势核心”的”叙事提取器”自由输出。
他没有对输出做任何约束。
五个窗口,五个故事。
2008年10月的输出是一个叫”赵四海”的煤矿老板的故事。模型说他在山西大同经营了十五年的煤矿,在煤价最高峰时身价过亿,但全球金融危机让煤价暴跌,他的资金链断裂,欠下了三个亿的高利贷。模型描述了他在一个冬天的清晨从自家六楼跳下去的场景,甚至提到了他落地时穿的那件灰色棉夹克——“左口袋里装着一张揉皱的全家福,照片上有三个人:他、他妻子、和他们七岁的女儿。女儿穿着一条红裙子,笑得露出了两颗豁牙。”
2013年6月的输出是一个叫”林秀芬”的银行理财产品销售员的故事。她在钱荒期间亲眼看着自己卖给客户的理财产品一天之内亏损了百分之四十,其中有三个客户是退休老人,把全部养老金投了进去。模型描述了她在六月最后一个工作日的下午五点,独自坐在银行大厅的角落里哭。她的手机响了二十三次,都是客户打来的,她一个也没有接。
2015年8月的输出是一个叫”张浩天”的大学生。他用学费加杠杆炒股,在股灾中亏掉了所有钱,不敢告诉父母。模型说他每天照常背着书包出门,但不是去上课,而是去网吧坐着。他在网吧里度过了整个九月,每天只吃一碗泡面,直到被辅导员发现。
2018年10月的输出是一个叫”陈大有”的上市公司董事长。他的公司股价跌破了质押线,券商通知他追加保证金,但他已经拿不出一分钱。模型描述了他在深夜的办公室里签署股权转让协议的场景——“他写字的手很稳,但签完最后一个字后,他盯着自己的签名看了很久,好像不认识那几个字。”
2022年10月的输出是一个叫”苏小晴”的上海女孩。她在封控期间失去了工作——她是一家连锁咖啡馆的店长,封控结束后公司倒闭了。模型说她在解封后的第一个周末,独自走到以前工作的咖啡馆门口,发现店面的招牌已经被拆掉了。她站在那里拍了一张照片,发了条朋友圈,配文是:“这里以前有很好的阳光。”
五个故事,五段人生。
陆鸣一个一个地读,读完后坐在椅子上,很久没有动。
他做了第二组实验:他去验证这些故事的真实性。
赵四海——他在网上搜了很久,找到了一篇2019年发表于某财经杂志的调查报道,标题是《煤老板的最后十年》。报道中提到了一个姓赵的煤矿老板,在大同经营煤矿多年,2008年破产后跳楼身亡。报道没有给出全名,也没有提到灰色棉夹克和全家福的细节。
林秀芬——他在一个银行从业者的匿名论坛上找到了一个帖子,发帖时间是2013年7月,帖子的内容是一个理财产品销售员讲述钱荒期间的经历。帖子已经被删除了大半,但残存的片段中提到”一个下午接到二十多个客户电话,一个都没敢接”。
张浩天——他在知乎上找到了一个问题”大学生炒股亏光了学费怎么办”,下面的一个匿名回答讲述了自己的经历,细节与模型的输出高度吻合。回答的发布时间是2015年10月。
陈大有——他在A股公告数据库里找到了一家上市公司的公告,时间恰好是2018年10月,内容是控股股东被动减持。公告中没有”盯着自己的签名看了很久”这样的细节——当然不会有,公告是冰冷的法言法语,不关心签字者的心情。
苏小晴——他在小红书上搜到了一条发布于2022年6月的笔记,配图是一家被拆掉招牌的咖啡馆。笔记的文案是:“这里以前有很好的阳光。“账号的主人ID里有一个”晴”字。
陆鸣关掉浏览器,靠在椅背上,盯着天花板看了很久。
“趋势核心”不是在”编造”故事。它是在从数据中”还原”故事。每一个K线的背后,每一条走势的起点和终点之间,都住着真实的人。模型找到了一种方式,把冰冷的数字重新翻译成了有温度的叙事。
它学会了从价格走势中看到人脸。
这个发现让陆鸣既兴奋又恐惧。兴奋的是,如果”趋势核心”真的能从市场数据中提取出社会层面的”叙事”,那它的预测能力可能会有质的飞跃——因为市场的拐点,本质上就是社会情绪的拐点。恐惧的是,这个能力远远超出了他最初的设计。他造了一把手术刀,但它自己学会了解剖人心。
五、蝴蝶的价格
陆鸣决定把实验推进一步。
他不再满足于回测——他想看看”趋势核心”能不能在实时数据中提取出”当前正在发生的故事”。
他在模型中接入了一个实时数据流:沪深两市的Level-2行情、北向资金的逐笔数据、商品期货的盘口数据、以及他花大价钱买到的另类数据源(包括主要城市的交通拥堵指数、发电量数据、以及几个主要外卖平台的订单量)。
然后他让模型自由输出。
第一周,模型输出的叙事集中在几个方向:某深圳科技公司的裁员潮、某三线城市房地产项目的烂尾风险、某农业大省的旱情对粮食价格的影响。这些都是市场上已经存在的信息,只是模型的叙事角度比传统的研报更加”人性化”——它不会说”某科技公司Q3裁员15%“,而是说”一个叫李薇的研发工程师在周五下午收到了HR的会议邀请,她知道那意味着什么”。
陆鸣开始验证这些叙事。有些他能从公开新闻中找到对应,有些则像是纯粹的虚构——但他无法确定,因为他不可能去核实每一个”李薇”是否存在。
第二周,模型开始输出一些更加具体、更加”当下”的叙事。
“周明远。男。1992年生。现为某头部量化基金的高级策略研究员。他最近三个月一直在开发一个基于大语言模型的事件驱动策略,回测表现优异,但尚未实盘。他的团队有六个人,其中四个是从互联网大厂跳过来的算法工程师,两个是常春藤毕业的量化博士。他们不知道的是,他们正在开发的产品,和另一家量化基金正在开发的产品,使用的是同一组另类数据源,甚至模型的架构都高度相似。当两个产品同时上线时,它们将在同一个方向上产生巨大的交易量,导致市场在短期内出现剧烈波动。这个波动将在三周内导致大约两千个散户账户被强制平仓。”
陆鸣读完这段话,愣了整整两分钟。
不是因为模型描述的场景有多恐怖——事实上,策略”撞车”在量化行业是一个老生常谈的问题。让他愣住的是,这段描述中的”周明远”,和他的一个前同事同名。
他迅速翻出通讯录。周明远,2019年到2021年和他同在一家量化基金,后来跳去了另一家头部机构。他们不算很熟,但偶尔会在行业会议上碰面。
模型输出中描述的策略方向——基于大语言模型的事件驱动策略——确实是当前量化行业的热门赛道。但”三周内导致两千个散户账户被强制平仓”这个预测,需要极其精确的数据和推演能力。
陆鸣犹豫了很久,最终还是给周明远发了一条微信:“最近在搞什么新东西?”
周明远秒回:“LLM事件驱动。你怎么知道的?这行现在卷得离谱,好几家都在做同一方向。”
陆鸣盯着这条消息,心跳加速。
他回复:“注意策略撞车的风险。”
周明远发了个”ok”的表情,然后补充了一句:“放心,我们有差异化。”
陆鸣没有再回复。他把手机放下,看着”趋势核心”继续输出新的叙事。一个接一个,像是一条河流在流过他的屏幕,每一滴水都携带着一个人的命运。
那天晚上,他失眠了。不是焦虑,而是一种更深层的、类似于宗教体验的震撼。他觉得自己站在了一个巨大的十字路口上——向左走,他可以把”趋势核心”变成人类历史上最强大的交易工具;向右走,他可以把它变成某种更宏大的东西,一种能看见”走势背后的众生”的机器。
他不知道哪条路是对的。
但他知道,无论选哪条路,他都无法假装没有看到这些故事。
六、深圳的温度
接下来的一周,陆鸣做了一个奇怪的决定:他开始按照模型输出的叙事,去实地寻找那些”被数据记录的人”。
他去了宝安的一个工业区,模型说那里有一家电子厂即将裁员百分之四十。他站在工厂门口,看着下班的工人潮水般涌出,每个人脸上都带着疲惫但麻木的表情——那种只有在流水线上工作了很多年的人才会有的表情,像是灵魂被均匀地摊薄了,铺在每一天的十二个小时里。
他找到了工厂附近的一家快餐店,坐下来要了一份猪脚饭。老板娘是个四十多岁的女人,操着浓重的湖南口音,手脚利索地切猪脚、浇卤汁、舀酸菜。
“你在这开店多久了?“陆鸣问。
“九年了。“老板娘头也没抬,“刚来的时候这条街上全是厂妹,生意好得很。现在嘛……”她朝窗外努了努嘴,“很多厂子都搬走了,剩下的人也越来越少。听说隔壁那个厂下个月要裁一半人。”
“你怎么知道的?”
“我怎么会不知道?这些工人每天中午来我这里吃饭,吃了九年了。谁哪天脸色不对,谁哪天多加了一个卤蛋——我都知道。“她终于抬头看了陆鸣一眼,“你到底是来干嘛的?不像是来找工作的。”
陆鸣笑了笑:“我搞金融的,来看看实际情况。”
“搞金融的?“老板娘的语气里带着一丝警惕,“你们这种人,就是把厂子搞没的那种人吧?”
陆鸣无言以对。
老板娘看他不说话,又低下头切猪脚,刀落在案板上发出有节奏的声响。“算了,也怪不到你头上。大环境嘛。“她叹了口气,“我就是心疼那些老员工,四五十岁了,上有老下有小,被裁了还能干嘛?去送外卖?跑滴滴?那也都是年轻人的天下了。”
陆鸣吃完猪脚饭,付了钱,走出快餐店。工业区上空飘着淡淡的灰色的云,远处的起重机和吊塔已经停工了很久,像是一群被遗忘的巨型雕塑。
他站在那里,忽然想到了一个问题:他母亲的工厂,是不是也曾经是这个样子?在倒闭之前的最后几个月里,是不是也有一个老板娘在附近的快餐店里,一边切猪脚一边叹气?
他掏出手机,打开”趋势核心”的实时输出。屏幕上正在滚动一段新的叙事,关于一个在工业区快餐店经营了九年的女老板。陆鸣看完那段文字,沉默了很久。他不确定模型描述的人就是眼前的老板娘,但他也不确定那不重要。因为模型说的每一件事——工厂要裁员、快餐店的生意会变差、她的儿子明年高考——都是真真切切正在发生的事情,不管它们是”预测”还是”描述”。
关键是:看到了这些之后,他还能假装它们只是”数据”吗?
那天晚上回到南山的公寓后,陆鸣做了一件他这两年来一直想做的事:他拨通了父亲的电话。
依然是”您拨打的号码已停机”。
他愣了一会儿,然后给老家的一个发小打了电话:“建国叔……我爸现在怎么样了?”
“你还不知道?“发小的语气里带着一丝意外,“你爸去年搬去县城东边的一个安置小区了。房贷还清了——好像是找亲戚凑的钱。他在小区门口摆了个修自行车的摊子,生意一般,但好歹有口饭吃。”
“他……身体怎么样?”
“还行吧。就是瘦了。头发白了不少。”
陆鸣挂了电话,坐在黑暗里。
“趋势核心”的屏幕还在亮着,上面正在滚动一条新的叙事:
“陆建国。男。1969年生。原某县机械厂工人。2019年下岗后做过保安、快递员、建筑工地小工。2025年初在亲友帮助下还清房贷,搬入安置小区。现以修自行车为生。他每天早上五点半起床,在小区门口支起摊子。他的工具箱里有一把旧扳手,是1990年代工厂发的劳保用品,上面刻着他的工号。他从来没舍得扔。他手机停机了,因为他觉得自己没有人需要联系了。他的儿子在深圳做金融,年薪很高。他们已经两年没有说过话了。”
陆鸣读到”他从来没舍得扔”的时候,眼泪掉了下来。
不是因为悲伤——或者说不完全是因为悲伤。而是因为他突然意识到了一件事:他一直在怪父亲”冷血”,但父亲保留了那把刻着工号的旧扳手,就像母亲用剩下的九根手指剥橘子一样,都是某种笨拙的、不知如何表达的坚持。
那把扳手和那袋橘子,是同一个东西。
他擦了擦眼睛,拿起手机,打开12306,买了一张第二天从深圳北到老家县城的高铁票。
七、修自行车的父亲
陆鸣在县城站下车的时候,是下午两点。
五年没回来,车站变了很多。原来的旧站房拆了,盖了一个玻璃幕墙的新站,出站口立着一块巨大的LED屏,上面滚动播放着县城招商引资的广告——“某某高新区,投资热土”、“欢迎莅临某某产业新城”。
他叫了一辆网约车,报了安置小区的地址。司机是个二十出头的小伙子,一边开车一边刷短视频。车窗外是典型的县城景观:宽阔但不干净的大马路、零散的行道树、半空中的电线和电缆、路边的小饭馆和建材店。每隔几百米就能看到一个楼盘的广告牌,上面写着”学区房”、“稀缺户型”、“最后十席”。
陆鸣看着窗外,忽然有一种奇怪的感觉——他觉得自己像是正在走进”趋势核心”输出的某一段叙事。这个县城、这条马路、这些广告牌,都曾经在模型的数据中出现过。但那时候它们只是数据点,是卫星图像上的一个像素、是信贷数据里的一行记录。现在它们变成了颜色、声音和气味——汽车尾气混着路边烧烤的孜然味,在初夏的闷热中变成了一种黏稠的、让人呼吸不畅的空气。
安置小区在县城的东边,是那种六层楼的板楼,外墙刷了一层淡黄色的涂料,已经有些斑驳。小区门口果然有一个修自行车的摊子——一个简易的铁皮棚子,里面放着几辆待修的自行车、一个工具箱、一把打气筒。
摊子后面坐着一个瘦削的男人。
他穿着一件洗得发白的蓝色工装,头发花白,脸上的皱纹像干涸的河床。他正在专注地修补一条自行车内胎,右手拿着一把锉刀,一点一点地打磨着破口周围的橡胶。动作很慢,但很稳。
陆建国。
陆鸣站在马路对面,看了很久。他发现自己已经记不清父亲年轻时候的样子了——在他的记忆里,父亲一直是一个沉默的、粗壮的、手上沾满机油味的男人。但现在站在他面前的,是一个明显老了很多的、消瘦的、安静的老人。
不,不是”老人”。他才五十七岁。
陆鸣过了马路,走到摊子前面。
陆建国抬头看了他一眼,没有认出来。或者说,他没有想到站在面前的人会是他儿子。他的目光在陆鸣脸上停留了大约三秒钟,然后手里的锉刀停了下来。
“你……”
“爸。”
陆建国的嘴唇动了一下,但没有说话。他放下锉刀,站起来,用袖子擦了擦手上的油污。这个动作让陆鸣想起了小时候——每次他从工厂下班回来,都会先在门口用袖子擦擦手,然后才进门抱他。
“你怎么来了?“陆建国的声音沙哑,像是很久没有和人说过话。
“来看看你。”
“哦。”
父子俩站在那里,沉默了大概有一分钟。小区门口来来往往的人看了他们一眼,没有多想——在安置小区,父子之间的沉默是常态,不值得多看。
“吃了吗?“陆建国终于问了一句。
“还没。”
“走,去对面吃碗面。”
他们坐在一家兰州拉面馆里,面对面。陆建国要了一碗牛肉面,陆鸣要了一碗一样的。
面端上来后,陆建国低头吃了几口,忽然停下来,从口袋里掏出一包皱巴巴的红梅烟。
“你抽吗?”
“我不抽。”
“哦。“陆建国把烟叼在嘴里,但没有点火。“你妈不让我抽。她走了以后……我也没怎么抽了。就是叼着。”
陆鸣看着父亲叼着烟却没有点燃的样子,忽然觉得喉咙堵得慌。
“爸,你的手机为什么停机了?”
“没钱交话费。”
“我给你交。”
“不用。”
“爸——”
“我说了不用。“陆建国的语气里没有生气,只有一种平静的、几乎是疲倦的坚决。“你在大城市花钱的地方多。我一个月也接不了几个电话。”
陆鸣想说什么,但被服务员端来的醋碟打断了。他看着父亲往面里倒了很多醋——他记得母亲也喜欢往面里放很多醋。也许这是他们之间为数不多的共同点。
“爸,“陆鸣放下筷子,“我……我想跟你说个事。”
“嗯。”
“我最近在做一个项目。一个AI模型。它能……”他斟酌了一下措辞,“它能从数据里看到人的故事。”
陆建国抬起头,看着他。不是那种”你在说什么”的困惑表情,而是一种奇异的、仿佛已经知道他要说什么的平静。
“它告诉我,你的工具箱里有一把旧扳手。1990年代的。上面刻着工号。”
陆建国手里的筷子停住了。
“它怎么知道的?“他的声音很轻,轻到几乎被面馆的嘈杂声淹没。
“我不知道。“陆鸣老实地回答,“但我猜……是因为那把扳手和你这个人一样。你不会扔掉对你重要的东西。即使那东西已经没有用了。”
陆建国沉默了很久。
然后他做了一件陆鸣从未见过的事情——他笑了。不是那种敷衍的、客套的笑,而是一种从眼睛深处泛上来的、温暖的、带着一丝苦涩的笑。
“你妈也说我不舍得扔东西。“他放下筷子,用手指在桌面上画了一个圈——那是下意识的手势,也许是多年来在工厂里养成的习惯。“她老说我是’破烂王’,什么旧的都留着。你小时候的课本、你妈的工服、厂里发的搪瓷杯……都留着。”
“为什么?”
陆建国想了想,说:“因为怕忘了。”
陆鸣的眼眶又热了。
“你妈走了以后,我老怕忘了她长什么样。我就天天看照片。后来手机坏了,照片也丢了。我就……就更怕了。“他低下头,“我不是不想给你打电话。我是怕打了电话,不知道说什么。你妈走了,咱俩又闹成那样……我不知道该怎么跟你说话了。”
面馆里很吵。隔壁桌的几个工人在大声聊天,电视上放着不知道什么综艺节目,笑声罐头一阵一阵地响。但陆鸣觉得整个世界安静了下来,只剩下父亲沙哑的声音。
“爸,“他说,“我来是想跟你说……对不起。”
陆建国抬起头,看着他。
“我不该那么久不联系你。”
“你忙。”
“不是忙不忙的问题。“陆鸣深吸一口气,“是我一直在生你的气。生你气的时候,我就假装你不存在。这不对。”
陆建国叼着那根没点火的烟,沉默了一会儿。然后他说了一句让陆鸣完全意想不到的话:
“你妈走之前跟我说了一句话。她说:‘老陆,鸣子那孩子太倔,随你。你先给他打个电话,他不打,你打。’”
陆鸣愣住了。
“我当时想打。但手机欠费了。“陆建国苦笑了一下,“后来我就想,等攒够了话费再打。但一拖就拖到现在。”
他顿了顿,从口袋里掏出一样东西——是一张纸条,折了很多次,边角已经磨损得不成样子。他展开纸条,递给陆鸣。
纸条上是母亲的笔迹。陆鸣认得——母亲的字很小很紧凑,像她这个人一样,总是把自己缩得很小。纸条上写着:
“鸣子,你爸嘴笨,不会说好听话。但他每天把你小时候的衣服洗一遍,叠好,放在柜子里。他说等你回来穿。我都告诉他你穿不下了,他不听。随他吧。别怪他。”
纸条的右下角有一个墨点,像是写字的人停顿了很久,最后还是没有写出更多的话。
陆鸣拿着纸条,终于没有忍住。他低下头,肩膀微微颤抖。
陆建国没有安慰他。他只是又拿起了筷子,低头继续吃面。但他的另一只手——那只布满老茧和伤疤的手——慢慢地伸过来,放在了陆鸣的手背上。
那只手很粗糙。像砂纸。像锉刀。像所有那些年和所有那些活计留在身体上的证词。
但它是温暖的。
八、最后一条K线
陆鸣在老家待了三天。
三天里,他和父亲之间没有再发生什么戏剧性的和解场面。他们一起去给母亲上了坟(一块很普通的墓碑,上面刻着”王桂兰之墓”,没有照片——陆建国说照片被雨淋坏了)。他们一起在安置小区的小广场上散步,看着跳广场舞的大妈和追逐打闹的小孩。他们一起去了一趟老工厂——已经变成了一片废墟,围墙上贴满了楼盘广告。
陆鸣给父亲充了话费,给他买了一部新手机,教他怎么用微信视频通话。陆建国学得很慢,但很认真——他用修补自行车内胎的那种耐心,一个按键一个按键地摸索。
第三天晚上,陆鸣坐在父亲的出租屋里——一室一厅,家具很简单,但收拾得很整齐。他打开笔记本电脑,连上”趋势核心”。
模型还在运行。实时数据流没有断过。叙事提取器在过去的七十二小时里输出了上千段叙事,每一段都是某个地方某个人的故事。陆鸣快速浏览了一遍——有深圳科技园的程序员的焦虑、有东莞制造业老板的困境、有郑州大学生找不到工作的迷茫、有成都外卖骑手被差评后的崩溃……
他注意到,在他离开深圳的这三天里,模型开始输出一种新的”叙事模式”。之前,每一段叙事都是独立的——一个具体的人,一个具体的场景。但现在,模型开始尝试把这些独立的叙事”编织”在一起。
比如,它会输出这样的段落:
“深圳宝安电子厂的裁员,将通过供应链的传导效应,在三个月内影响东莞的三个零配件工厂。这三个工厂的订单下降,将导致大约一百二十名工人失去工作。其中约四十人会成为外卖骑手,加剧本地外卖市场的竞争。骑手之间的竞争将导致平均配送时间缩短,这反过来会让平台降低单价。单价下降后,骑手们为了维持收入不得不接更多单,工作时长将增加,疲劳驾驶的概率将上升。在接下来的六个月内,该区域将发生三起涉及外卖骑手的交通事故。其中一起的骑手叫吴德福,四十八岁,原来是电子厂的质检员。”
这段话让陆鸣想起了”蝴蝶效应”——一只蝴蝶扇动翅膀,最终引发了一场龙卷风。但他从来没有想过,蝴蝶效应的每一步都是具体的、有名字的、有家庭的、会流血的人。
他在笔记本上写下了这样一段话:
“趋势核心教会了我一件事:市场的走势不是抽象的曲线,而是无数人的命运交汇而成的轨迹。每一条K线的上下波动,都对应着某个人生活中的一次起伏。上涨是希望,下跌是失落,横盘是麻木。而拐点——那些让所有交易员都屏住呼吸的拐点——往往就是某个人生命中那个不可逆的时刻。”
他合上笔记本,看着窗外。安置小区的夜晚很安静,偶尔能听到远处传来的狗叫声和电视机的声音。楼下,父亲那个修自行车的摊子已经收了,铁皮棚子在路灯下投下一个小小的影子。
他的手机响了。是周明远。
“陆哥,你猜怎么着?你说得对,策略撞车了。“周明远的声音里带着一丝疲惫和庆幸,“我们上周上线实盘,发现另外两家也在同一时间上线了几乎一样的策略。幸好我们有差异化调整,否则后果不堪设想。”
“什么后果?”
“模型推演了一下——如果三个策略同时在同一方向上满仓运行,目标标的的波动率会在两小时内翻三倍。按照历史数据估算,大概有两千到三千个散户账户会被强平。”
陆鸣沉默了。
“你怎么知道的?“周明远追问,“你那个模型到底是怎么预测到的?”
“我只是随口提醒你的。“陆鸣说,“运气好。”
“放屁。“周明远笑了一声,“你从来不做’随口’的事。不过算了,不问了。谢了。”
挂了电话,陆鸣看着”趋势核心”的屏幕。模型正在生成一段新的叙事。他凑近看了一眼:
“在接下来的一周内,沪深300指数将在3900点附近形成阶段性底部。这是一个买入信号。但请注意:这个买入信号的前提是,政策层面将出台一项针对中小微企业的减税措施。这项措施将使得大约十七万家小微企业受益。其中一家位于浙江义乌的小型加工厂,因为这项减税措施得以续命。工厂的老板叫陈巧云,女,1980年生。她有三个孩子。大女儿明年高考。如果工厂倒闭,大女儿将不得不放弃大学。但现在,她不需要了。”
陆鸣看着这段文字,忽然笑了。
不是苦笑,不是嘲讽,而是一种真诚的、发自内心的笑。
他想起了十二年前,他刚刚入行的时候,一个老交易员对他说过的话:“做交易,最重要的不是预测方向,而是理解方向背后的意义。”
他当时没听懂。觉得那是故弄玄虚。
现在他懂了。
方向背后的意义,是人。
九、尾声:工具箱
一周后,陆鸣回到深圳。
他做了两件事。
第一件:他把”趋势核心”的叙事提取器模块单独抽离出来,封装成一个独立的系统,命名为”众生”。他没有把它商业化,也没有申请专利。他把它开源了——代码放在GitHub上,任何人都可以下载、使用、修改。唯一的附加条件是:如果你用这个系统赚到了钱,请把利润的百分之一捐给一个你所在城市的慈善机构。
第二件:他给父亲寄了一个包裹。
包裹里有一部新手机(他已经教过父亲怎么用了),一套修自行车的专业工具(比父亲工具箱里那些旧工具好得多),以及一样特别的东西。
那是他母亲的工号牌。
他花了很长时间才找到它。在老家的旧房子里,在一个满是灰尘的柜子深处,用一个塑料袋包着,袋子上写着”桂兰的”——是父亲的笔迹。
他把工号牌擦干净,放在一个木盒子里,盒子里还放了一张纸条。纸条上写着:
“爸,这个留给你。妈的工号,也是你和她三十年的证词。对不起,我花了太长时间才看懂。你的扳手别扔。那把旧的。它比任何K线都重要。”
包裹寄出去的第三天,陆鸣接到了一个微信视频通话。
是父亲。
画面有些模糊——安置小区的网络不太好。但他能看清父亲的脸:瘦的、布满皱纹的、但正在笑的。父亲的手里拿着那块工号牌,翻来覆去地看,像是拿到了什么稀世珍宝。
“你怎么找到的?“父亲的声音从手机里传出来,带着电流的嗡嗡声。
“模型告诉我的。“陆鸣说。
“什么模型?”
”……就是我的工作。很复杂。改天跟你解释。”
“哦。“陆建国显然没打算追问,他只是反复摩挲着那块工号牌,目光温柔得不像一个在工业区修自行车的男人。
“你吃饭了吗?“陆建国忽然问。
“还没。”
“去吃。别老不吃饭。你妈在的时候老说你不按时吃饭。”
”……好。”
通话结束后,陆鸣坐在书房里,看着面前四十三英寸的屏幕。
屏幕上,“趋势核心”的实时输出还在滚动。它正在生成一段又一段的叙事——关于这个国家的十四亿人,关于他们的喜怒哀乐、生老病死、起起落落。每一段叙事都是一根K线,每一根K线都是一条人生。
他曾经以为,自己这辈子最重要的事情是预测市场的方向——做多还是做空,买入还是卖出。
现在他知道了,最重要的事情不是方向。
是方向上的那些人。
窗外,深圳的夜空依然是那种独特的颜色——不是黑色的,而是一种深蓝灰,像是被无数LED屏幕和手机屏幕映照出来的、人造的夜色。在这片夜色下面,两千万人正在各自的空间里呼吸、思考、工作、焦虑、欢笑、哭泣。他们的每一个动作都在产生数据,每一条数据都在被某个模型读取、分析、计算。
但不是每一个模型都能看到他们的脸。
陆鸣关掉屏幕,走出书房,下了楼,走到小区门口的便利店,买了一袋橘子。
他站在路灯下,用不太熟练的左手,慢慢地剥了一个。
橘子的汁水沿着他的手腕流下来,在初夏的夜风里,闻起来酸酸甜甜的。
他咬了一口,很甜。
然后把剩下的橘子放进袋子里,拎着走上了楼。明天还要开盘。还有无数条K线等着他去读。还有无数个故事等着被看见。
但此刻,他只是想吃一个橘子。
一个很甜的橘子。
(全文完)