凌晨两点半,林晨的手机震动了一下。
他刚从一段复杂的异步回调地狱里挣扎出来,揉了揉发酸的眼睛,拿起手机。是张伟的回复,距离他睡前发的那条询问“什么事”已经过去了六个小时。
“抱歉刚开完会。电话方便吗”?
林晨看了眼窗外沉寂的夜色,又看了看屏幕上正在运行的量化系统终端——它正安静地按照既定策略分析着夜间的外汇市场数据。他起身走到阳台,拨通了电话。
“喂,伟哥,还没睡”?林晨压低声音,怕吵醒隔壁卧室的苏婉和乐乐。
“刚弄完一个智能合约的审计报告”。张伟的声音带着熬夜后的沙哑,但语气很精神,“你上次不是说在搞量化系统吗?进展怎么样”?
“原型跑起来了,用7万块实盘试了快一个月,收益……还行,大概8%左右”。林晨实话实说,“但架构很糙,就是个脚本集合,调度、监控、风控都是手搓的,得重构”。
电话那头传来张伟敲击键盘的声音,似乎一边聊一边在查什么。“8%一个月?年化快翻倍了,可以啊。不过你说得对,这种‘实验室产品’不上正经架构,迟早出问题。我找你其实是另一件事——T厂AI Lab那边,我有个前同事跳过去了,说他们最近在扩招,尤其是应用算法方向,可能跟你现在搞的东西有重叠”。
林晨心里一动。T厂,那是国内互联网的顶级山头之一,AI Lab更是无数技术人向往的圣殿。但他立刻冷静下来:“我简历……够得着吗?而且我现在的系统,还没到能拿出去说的程度”。
“所以我才问你进展”。张伟很直接,“如果你只是玩票,那就算了。但如果你真把这系统当个正经项目在打磨,甚至有了架构升级的计划,那这就是一个非常好的‘项目经验’。大厂面试,尤其是技术面,最喜欢有完整闭环实践经验的候选人,哪怕项目不大,但深度够、思考够,比空谈算法强得多”。
夜风微凉,吹散了林晨的困意。他握着手机,脑海里快速闪过自己那个杂乱的项目目录。“我正打算重构。后端用FastAPI重写,提供标准API;前端想用React做个可视化监控面板;然后部署到云服务器上,做成一个可以远程访问、监控的完整服务”。
“FastAPI + React + 云部署……”张伟重复了一遍,笑了起来,“思路很正嘛。这就是一个标准的现代Web应用架构了。你搞跨境电商后端这么多年,这套东西对你来说应该不难,重点是把你的量化逻辑封装成服务。什么时候能弄出个雏形”?
“快的话,一周。慢的话,两周”。林晨估算了一下学习React和部署的时间。
“那就搞”。张伟果断道,“搞出来之后,如果需要内推,跟我说一声。不过别急,先把东西做扎实。代码可以骗人,但逻辑不会”。
挂掉电话后,林晨站在阳台上,看着远处鹏城湾星星点点的灯火,心中那股因妻子支持而燃起的火苗,被张伟这通电话又添了一把柴。不再是模糊的“试试看”,而是有了更清晰的技术路径和潜在的机会窗口。
他回到电脑前,关掉了那个运行着原始脚本的终端。打开浏览器,新建了三个标签页:FastAPI官方文档、React中文教程、一家国内云服务商的价格计算器。
重构,从现在开始。
接下来的一周,林晨进入了某种心流状态。白天,当苏婉去学校、乐乐去幼儿园后,整个家就成了他一个人的实验室。他把原本堆在书房各个角落的金融数据资料、打印的论文、写满公式的草稿纸全部收纳整齐,给三台显示器重新规划了布局:左边显示FastAPI开发文档和PyCharm编辑器;中间是React学习教程和VS Code;右边是量化核心策略的Python代码和测试终端。
FastAPI的选择是经过深思熟虑的。相比传统的Flask或Django,FastAPI基于Python 3.6+的类型提示,性能接近Node.js和Go,自动生成交互式API文档,对于需要高性能、清晰接口定义的量化服务后端来说非常合适。林晨花了三天时间,将原本散落在多个脚本里的数据获取模块、特征工程模块、模型预测模块、交易信号生成模块,逐一拆解、重构,封装成一个个独立的、具有明确输入输出的函数和类。
然后,他用FastAPI将这些模块“粘合”起来。创建了 /api/v1/data/ 系列端点,用于获取实时和历史数据;创建了 /api/v1/feature/ 端点,用于计算技术指标和特征;最重要的是 /api/v1/signal/ 端点,它接收市场数据,调用核心AI模型,返回买卖信号和置信度。每一个端点都有详细的Pydantic模型进行请求和响应数据的验证与序列化。
“这才像个样子”。林晨看着自动生成的Swagger API文档页面(
后端雏形完成,接下来是前端。这对林晨
>>>点击查看《AI时代:码农的涅盘重生》最新章节