每天帮 >地图 >

工作总结

工作总结

时间:2026-03-26 作者:每天帮

(备选)量化研究员这一年:从回测到实盘的几道。

先说回测引擎。年初最头疼的问题是滑点误差,回测跑出来漂亮得很,一上实盘就变脸。我们拆了三千多笔成交记录,发现交易所推送的逐笔数据里,有一部分订单簿快照时间戳是乱的。怎么发现的?有天晚上我在比对同一时间段的回测日志和实盘日志,发现回测里成交的那笔单子,在实盘时间轴上对应的那个时刻,买卖盘口根本不是回测里那个价。这问题藏得深。

我跟两个同事连着四个周末,手工标注异常点。刚开始用肉眼对着Excel一条条看,效率低得吓人。后来写了个脚本,把相邻两条数据的时间戳差值算出来,超过正常范围的标红。标出来一看,有些时间戳差值居然是负的,这就坐实了数据源本身有问题。我们写了个校验模块,在数据进入回测引擎之前先过一遍,把那些时间戳顺序错乱或者跳跃过大的数据剔除或者修正。模块上线第一周,回测与实盘的相关性从0.73跳到0.89。做策略的同事第二天跑过来,说我终于不用靠感觉调参了,之前每次回测漂亮实盘就崩,我都怀疑人生了。这句话比什么KPI都实在。

滑点误差从年初的0.8个基点压到现在的0.18,这0.18意味着什么?我们跑的是中高频策略,一天几百笔交易,每个基点都是真金白银。现在回测里算出来的滑点,跟实盘实际成交的滑点,差距基本能控制在可接受范围内。以前不敢上的策略,现在敢上了。

再说实盘信号延迟。我们这套日内策略,信号产生到订单发出,去年平均87毫秒。拆开看,信号生成40毫秒,风控校验25毫秒,订单转换和网关发送22毫秒。信号生成这块,原来是python调numpy,我们改成C扩展,直接从底层接管数据流,压到12毫秒。风控校验原来是串行,持仓限额查完查撤单率,撤单率查完查自成交,改成并行同时跑,三块一起查完再汇总,省了15毫秒。

最难啃的是订单转换。上期所、大商所、郑商所的数据结构不一样,每家都有自己的字段顺序和编码规则。原来的做法是全部转成内部统一格式,再从内部格式转成交易所要求的格式,绕路了。我们直接在转换层做适配,针对每家交易所单独写路由模块。大商所那回更新接口规范,文档发出来的时候是周三晚上,我们连夜改了二十多处映射关系。凌晨两点半跑通第一个测试,四点跑完全部场景。第二天开盘前半小时,所有前置机就绪。现在平均延迟36毫秒,交易所前置机那边基本感觉不到额外开销。这个数字再往下压,边际收益就不大了,下一步考虑的是稳定性,不是极致速度。

团队技术能力这块,我带着六个人,不能光自己往前冲。上半年发现新人上手慢,老员工各写各的,代码风格不统一,出了问题互相查半天。我定了两条规矩:所有核心模块代码必须两人review才能合入主分支;每周三下午固定两个小时做案例复盘。案例都是真问题,比如“7月12日股指期货开盘跳空,风控模块为什么没触发熔断”。大家把日志拉出来,一步步推演,谁写的哪段逻辑,为什么没覆盖边界条件,当场改。

有一次review的时候吵起来了。一个同事坚持用配置文件管理所有限价单参数,另一个同事说直接写死在代码里更快。我让他们各自写一版,然后让第三个人去改其中一个参数,看看哪个版本更容易找到改的地方。结果很明显,配置文件版本三分钟搞定,写死版本要翻十几个文件。从那以后,所有限价单参数必须从配置文件读取,不许写死。这条现在写在团队规范里,谁违反谁请奶茶。这种具体的冲突和解决过程,比什么培训都管用。

八月那次夜盘,螺纹钢主力合约在21:55突然放量下跌。我们的套利策略连续发单,风控模块连续拒绝了三笔委托——因为盘口滑点超出预设阈值。实盘监控系统弹出红色告警,我当时在家,手机收到消息,立刻远程连进服务器。看了一眼日志,发现是流动性枯竭,买卖五档价差从正常的两跳扩大到八跳,策略还按原来的限价单挂单,自然成交不了。

当时心里其实犹豫了一下。自动风控已经连续拒绝了三次,说明它判断市场环境不对。但我手动干预,万一判断错了呢?我盯着盘口看了一分钟,发现买一卖一之间的单子量一直在萎缩,深度在抽干。这个信号让我下了决心。我把策略切到保守模式,限价放宽三跳,同时把单笔委托量从50手下调到10手,分批次吃单。整个过程四分钟,净值回撤0.3%。如果放任不管,按当时成交量测算,可能回撤到1.8%以上。第二天复盘,我们在风控模块里加了流动性探测子模块,实时监控盘口深度,一旦价差超过历史95%分位数,自动切换下单策略。这件事给我的教训是,自动风控不能只看滑点绝对值,还要看市场结构变化。

策略组合稳健性方面,我们做了持仓集中度控制和风险平价。单板块暴露不能超35%,单品种不超过12%。规则写进风控模块,盘前自动扫描,发现超限就拒绝新开仓信号。七月有一次农产品板块集体暴跌,玉米策略当时权重偏高,系统自动把仓位降到6%,那次回撤控制住了,组合净值只跌了1.2%,同期单策略跌了4.7%。

客户那边后来打电话过来,是风控总监打的,原话是“你们的曲线稳得像银行理财”。电话是雨后打的,我坐在工位上,窗外天刚放晴,那杯咖啡早就凉透了。但我记得特别清楚,他说完这句话之后停了一下,又说了一句:“我今年跟领导汇报,就靠你们这条曲线了。”这种反馈比任何数据都有说服力。

数据方面,今年策略迭代提交67版,上线34版,失败回退8版,79%的成功率。这个统计口径是按上线后两周内没有触发风控告警来算的。失败的8版里,有3版是回测跑得漂亮,实盘一跑就崩,后来发现是过拟合;有2版是实盘跑了一阵子,遇到没见过的市场环境出问题;还有3版是代码本身有bug。每次失败都写复盘报告,现在报告堆了厚厚一摞,新人来了先看这些,比看什么理论都管用。

客户资金曲线最大回撤7.3%,低于年初目标10%。年化收益21%,超额收益对标中证500是13个百分点。客户满意度匿名问卷10分制打了9.2分,比去年涨0.7分。这些数字背后是一行行代码、一次次回测、一个个调试到天亮的夜晚。

做量化这事,我越来越觉得,真正难的不是写策略,是让策略在各种市场环境下都能按预期跑。你永远不知道下个月会出什么幺蛾子,能做的就是把规则写死、把流程理顺、把团队拧成一股绳。今年我把团队从“几个人各写各的”拧成“一套标准、一个仓库、一致口径”,实盘运维从“有人盯着”变成“系统盯着”。下一步准备在策略生命周期管理上再下功夫,从信号研发到实盘退出,全部走标准化流程,减少人工干预带来的偏差。这条路还长,但方向对了,就不怕慢。

    更多精彩的工作总结,欢迎继续浏览:工作总结

本文来源://www.mtb31.com/m/187620.html