周二下午两点,t厂AI平台部每周技术分享会。
会议室大屏幕上打着一行字:本期分享人:林晨 | 主题:机器学习在量化交易中的应用实践。
林晨站在投影幕前,手里握着遥控笔,看着面前坐着的二十多个同事,深吸一口气。这是他第一次在t厂做技术分享,也是入职以来第一次在这么多人面前正式讲话。
台下第一排,陈博士端着茶杯,微微点头示意他开始。老赵靠在椅背上,一副我来看看你有什么料的表情。许悦冲他比了个加油的手势。王皓坐在角落,笔记本电脑已经打开,大概准备边听边处理邮件。
大家好,今天我分享的主题是——机器学习在量化交易中的应用实践。
林晨点开第一页ppt。标题页很简洁,背景是他自己做的量化系统架构简图。
先说背景。他清了清嗓子,量化交易简单来说就是用数学模型和计算机程序来替代人工做交易决策。传统的量化系统主要依赖统计套利和因子模型,但随着机器学习技术的发展,越来越多的团队开始尝试把深度学习引入策略开发。我自己在过去一年里做了一个从零到一的量化系统,今天把过程中踩过的坑和学到的东西分享给大家。
他点开下一页,屏幕上出现了一张系统架构图。
整个系统分为四层:数据层、策略层、执行层和风控层。数据层负责从不同数据源获取行情和基本面数据;策略层是核心,包含多个子策略,每个子策略针对不同的品种和市场环境;执行层负责将策略信号转化为实际的买卖操作;风控层是最后一道防线,包括仓位控制、止损止盈和异常检测。
他停顿了一下,扫了一眼台下。大家的目光都集中在屏幕上,有人在笔记本上飞快地记录。
重点讲策略层。他切换到下一页,是一张深度学习模型的架构图,这是我用的核心模型,基于LStm的时序预测网络。输入是过去N个时间步的行情数据和特征指标,输出是未来K个时间步的价格走势预测。
为什么选LStm而不是transformer?老赵突然插嘴。
好问题。林晨心里暗赞一声,这说明老赵在认真听。
两个原因。他不慌不忙地回答,第一,在金融时序数据上,LStm对局部模式的捕捉依然很有效,训练成本比transformer低很多。第二,我的系统跑在单台云服务器上,算力有限,LStm的推理速度更快,延迟更低。在交易场景里,每毫秒都关系到成交价格。
老赵点了点头,没再追问。
林晨继续深入。他讲了特征工程的思路——如何从原始行情数据中提取有效特征,如何处理缺失值和异常值,如何用领域知识(而不是纯数据驱动)来选择因子。他讲了模型训练中的过拟合问题——量化策略最容易犯的错误就是用历史数据训练出一个完美曲线,然后上线就亏钱。他分享了自己应对过拟合的几个方法:滚动窗口验证、参数随机化、以及最关键的——在回测中引入交易成本和滑点。
很多人做回测的时候只看收益率曲线,他说,但真正重要的是风险调整后的收益。一个年化30%但最大回撤40%的策略,远不如一个年化15%但最大回撤5%的策略来得实用。因为后者你敢满仓运行,前者你只敢轻仓试探。
台下有人轻轻鼓掌,是几个年轻的算法工程师。
接下来他讲了风控模块的设计思路,重点介绍了动态仓位管理和自动止损机制。这一部分引起了更多人的兴趣——风控在量化交易中是生死线,但在很多技术分享中被忽视了。
风控的本质不是不亏钱林晨说,控制亏损在可承受范围内,让赚钱的策略有足够的空间发挥。这跟我们在t厂做系统设计很像——不是为了不出故障,而是在故障发生时能快速恢复,保证整体可用性。
这句话一出,他注意到陈博士微微扬了一下眉毛,嘴角浮现一丝不易察觉的笑意。
最后一部分,他讲了投资系统与AI大模型的潜在结合方向——如何用大模型做市场情绪分析,如何用知识蒸馏来降低推理成本,以及如何在风控层面引入可解释性,让系统不只是告诉你要卖,而是告诉你为什么应该卖。
这也是我目前在轻舟项目中负责的可解释性方向的一个重要灵感来源。他总结道,技术本身是相通的,不同领域的经验可以互相启发。量化交易里的风控思维,完全可以应用到推荐系统的稳定性和可靠性设计中。
分享结束后,掌声比他预想的更热烈。老赵站起来走到他旁边,拍了拍他的肩:可以啊,林晨,深藏不露。
过奖了。林晨笑着收起遥控笔。
许悦过来问了一个关于特征选择的具体问题,旁边两个他不认识的同事也凑过来交流。一个做数据工程的同事问他量化系统的数据管道是怎么搭建的,另一个做推理优化的同事对LStm推理延迟的优化方案很感兴趣。
林晨一一回答,他发现自己的状态很放松,甚至有些享受这种技术交流。以前在跨境电商公司,他能交流的对象很少,技术深度也不在一个层级。而在t厂,每个人都能听懂他在说什么,还能提出有挑战性的问题,这让他感到一种久违的智力碰撞的快感。
陈博士最后一个走过来,端着茶杯,表情平静但眼神中有一丝认可:不错。你把金融领域的经验和我们这边的技术结合起来了,这个视角很有价值。
谢谢陈博。林晨说。
我注意到你最后提到了知识蒸馏和可解释性的结合,陈博士压低声音,只有他们两个人能听到,这个方向,值得深入研究。如果你有初步想法,下周可以跟我单独聊一次。
林晨心中一动,郑重点头:好的,我准备一下。
技术分享会散场,但余波还在继续。下午组群里陆续有人发消息,讨论分享中的各种技术细节。有人在wiki上建了一个讨论帖,标题是关于量化交易风控与推荐系统稳定性的异同,下面已经有十几条回复了。
林晨看着这些讨论,忽然有一种奇妙的满足感。不是因为被认可,而是因为他独处在小房间里搭建的系统、一个人在黑暗中摸索出的经验,终于找到了一群能理解和共鸣的人。
下班的时候,老赵跟他一起走出大楼。深秋的鹏城,晚风已经开始有了凉意。
你那个风控模块,老赵说,思路还在分享会上,动态止损那个机制,具体怎么实现的?是固定比例止损还是基于波动率?
基于AtR的动态止损,林晨回答,波动率大的时候止损宽一点,波动率小的时候止损窄一点。
好思路。老赵想了想,我们推荐系统里有个类似的机制,是控制推荐结果的多样性。多样性太低,用户会看到重复内容;太高,又会降低点击率。我们用的也是基于波动率的方法,只不过波动率的定义不一样。
异曲同工。林晨笑了。
两人并肩走在科技园的林荫道上,秋风吹动路边的凤凰木。远处,鹏城湾的海面在夕阳下泛着金光。
技术在不同的领域流淌,但底层逻辑是相通的。这是林晨今天分享的最大收获——不是教会了别人什么,而是在教的过程中,自己看清了那些原本模糊的脉络。