最近“主动+量化”这个词在圈子里挺热。作为一个写代码的,我的第一反应不是“趋势来了”“风口到了”,而是:这事儿技术上到底怎么做?
先声明,本人也不是什么量化大佬,就是个写Python、调接口、偶尔被bug折磨到凌晨的普通程序员。下面说的都是自己踩过的坑和真实感受。
一、先说结论:融合的核心不是算法,是数据流
很多人以为“主动+量化”就是给量化模型喂几个基本面因子,或者让主动基金经理装个Python环境跑回测。
我自己觉得不是这样。
核心难点在于两种决策逻辑的数据流完全不一样。
纯量化策略的数据流很规整:行情数据进来,因子计算,信号生成,下单。每一步都是确定性的,输入输出清晰。
但主动逻辑进来之后就乱套了。基本面研究员要看财报、要读研报、要听电话会,这些都是非结构化数据。量化系统不认识这些东西。
真正的融合,首先得解决“结构化数据”和“非结构化数据”怎么在一起玩的问题。
用NLP把研报里的情绪打分、变成一个数值因子再喂进量化模型,听起来简单,做起来全是坑。不同券商的研报用词风格不一样,同一个“谨慎推荐”在不同语境下可能是看好也可能是不看好。这不是写个正则就能解决的。
二、量化做不了的事:因果推断
做量化的都知道一个尴尬:模型知道“什么涨了”,但不知道为什么涨。
比如3月份那波市场波动,很多量化模型集体失效。不是代码写错了,是历史数据里没有这种“地缘政治+宏观变量突变”的样本。模型没法回测,自然也就没法预测。
这是量化天生的短板——只能处理“见过”的模式。
主动管理的优势恰恰在这里。一个懂宏观的基金经理,能基于逻辑推演判断:某政策出来之后,产业链上中下游各自会受什么影响。他不需要历史数据,靠的是因果推断。
但人也有人的问题:慢、情绪化、处理不了高频数据。
所以我觉得,“融合”不是谁取代谁,而是量化负责“快”,主动负责“懂”。量化提供高频信号和执行效率,主动提供宏观判断和逻辑验证。
三、架构层面的思路
我之前尝试过一套做法,核心思路是两层解耦,互不阻塞。
量化层跑它擅长的:高频、统计、自动化。主动层定期跑:验证逻辑、过滤风险。两个模块之间通过一个“验证队列”通信,互不等待。
这样做的好处是:
量化策略不会因为基本面验证而变慢
主动研究员可以随时调整验证规则,不需要改核心代码
出了问题容易定位——知道是量化层问题还是主动层问题
架构上,量化核心用高性能语言写,主动验证逻辑用Python写业务规则。两层分开部署,互不影响。
四、踩过的坑
坑1:数据时间对不齐
量化用的是毫秒级数据,主动看的是季报数据。怎么对齐?季报出来的时候,过去三个月的行情数据都变了。
我的解决方案是:主动验证只影响“未来”的信号,不回头改历史。开仓前做验证,不开仓就不需要验证。
坑2:策略不知道谁在赚钱
量化策略跑久了,参数会慢慢偏离初衷。引入主动验证之后更麻烦——收益到底来自量化因子还是主动筛选,说不清楚。
我加了个归因分析,定期跑一次:收益里有多少是量化贡献的,多少是主动筛出来的。
坑3:沟通成本极高
量化和主动两边说话方式不一样。量化说“IC值”“夏普比率”,主动说“护城河”“估值修复”,鸡同鸭讲。
后来我定了个规矩:所有主动逻辑必须转化为可量化的规则。不能说“这个公司基本面好”,要说“ROE连续三年大于15%且负债率低于40%”。翻译成代码,量化系统才能理解。
五、小团队的务实做法
如果你所在的公司不是头部,没有几十人的研发团队,我的建议是:别上来就搞大融合。
先从一个很小的切口开始:
选一个量化信号,比如动量因子
找一条主动规则,比如“行业景气度上行”
把主动规则转成一个可量化的过滤条件,比如“该行业指数20日涨幅为正”
跑回测,对比加不加过滤的效果差异
不要一开始就搞深度学习、NLP那些复杂的,大概率会翻车。工具链够用就行,常见的数据处理和回测框架能覆盖大部分需求,犯不着自己从零造轮子。
六、写在最后
“主动+量化”这个方向,我觉得长期是对的。量化提供速度和纪律,主动提供逻辑和判断,两者天然互补。
但这不是今天决定、明天就能上线的事。数据层要改造、架构要调整、团队要磨合。对小团队来说,更务实的做法是:先跑通一个最简单的融合案例,跑通了再慢慢迭代。
毕竟,上线一个能赚钱的简单策略,比在开发环境跑一个“完美”策略重要得多。
以上是一个普通程序员的真实体会。如果这个行业的程序员,欢迎交流踩坑经验。
