No.6 | 量化offer通关秘籍!龙小旗的量化分享

No.6 | 量化offer通关秘籍!

30分钟 ·
播放数224
·
评论数3

抱歉本期由于录制问题,降噪之后依旧有些杂音,请各位见谅~

本期我们截取的是今年秋招的复旦场宣讲会上,同学们提出的一些有趣的问题:

机器学习挖因子的有效性怎么样?

三到六个月的量化实习,主要做哪些工作?

不同频率的因子如何组合?

什么样的因子能够盈利?

想从0到1进入量化,应该准备什么?

公司的考核标准?

实习生的成长路径?

……

无论你是从0到1想要获得一份量化实习,还是对量化已经了解颇多经验满满,相信你都能在本期的分享中收获一些新知识与方法论。

00:01请问用机器学习做因子,会比较有效吗?

00:09我们在做因子这一块,目前采取的方法是人工挖掘为主,搜索和生成为辅,因为其实最早的时候我们基本上全都是人工挖掘的,为什么呢?

因为最早我们人工挖因子的时候,其实是产生一些想法,生成批量化的表达式去做,这样效率会高一点。所以逐渐有了各种搜索系统去搜这些因子,但过程中我们注意到有些搜出来的因子去看它的表达式、看它的结构,会发现跟我们的金融逻辑完全是相悖的。

01:40 我可能表达不清楚,我指的是神经网络这类的机器学习,不是遗传算法。

01:48

那神经网络搜出来的话,我可能会考虑训这个神经网络,用到的标签的多样化程度。因为其实就是一个weak learner,对吧。

所以如果研究员提交了一些用神经网络搜索的因子,那我第一点要做的一定是问你,是用哪些信息量去搜索出来的,然后会去评估你训出来的因子跟其他因子的相关性,然后再去采用。

03:01 那挖掘因子是要求有逻辑还是符合入库标准就可以?

03:10一般来讲,你既然都是人工挖因子,不可能说自己拍脑袋找一些乱七八糟的东西,当然有这么多因子,我们不可能去看每个因子代码到底是不是有逻辑的,这就要求我们跟做因子的同事保持密切沟通,了解你平时在做些什么事情。总之就只要我们设计的入库标准,一定是能够入库。

03:54 想问一下量化研究实习生三到六个月的时间,主要做哪些工作,是挖因子还是做策略?

04:14 其实三到六个月的实习周期,我觉得除非你有机器学习这方面的背景,否则我可能会比较推荐做因子相关的一些实习,因为从这个实习中,你既能了解到底层的数据,同时也会培养对于金融数据方面的感觉。

我举个例子,可能实习生会复现研报上的一些因子,但是这些因子对我们来讲已经完全失去意义了,我们可能第一周会让他先去做这样的事情,第二周的话就可能会做一些低相关性的东西,比如我们会给你一批最近新入库的另类数据,研究员给你一些idea、描述一些现象,然后你围绕这个现象去做一些因子的挖掘,或者给你的idea做一些扩展。

那如果你是机器学习背景的,之前一直在做机器学习的项目,那这三到六个月的话我可能会推荐做模型的同事提供给你一些思路,比如你去研究一下,对样本进行不同的加权,或者对不同市场行情的、周期的样本进行一些筛选,甚至包括对标签做一些特殊的处理,看一下你训出来的模型结果,跟研究员训出来的相比会有什么样的增量信息。

06:25我也算带过近十个实习生,就是我带实习生,首先平时我会有一些蹦出来的idea,我会把它们整理下来,结合每个实习生的经历背景去找最match的一个方向。然后我一般会给两个方向,然后去跟他讨论,可以选一个做这样子。

因为一方面有公司既然去招了实习生,肯定希望做这东西会对公司有帮助,然后同样的,实习生本身也不希望做什么洗数据之类的脏活儿,也希望自己有些成就感,接触到一些实际的东西。

所以我个人带实习生,会精心设计比较完整的一些项目,包括你们一周大概会完成到什么进度,最终会有一些大概的评估指标,当然你达不到也是OK的,就是每个项目都不能保证顺利嘛。

07:33

我想提的是研究相关的问题,我看到你们公司对基本面和另类信号,其实也是比较重视的,但是它可能和量价因子的频率不同。我也听说有的公司比如说基本面占20%,量价占70%,组合形成策略,那具体去做的过程中是怎么组合的?

08:34 的确基本面和另类数据,有些数据频率跟其他因子不太一样,我们一般的做法就是做一个向量填充,让它至少能够和价量因子的频率保持一致,就是我在每个截面上都能够运用到价量、基本面的和另类的数据。

然后实际应用的话,我自己其实多数情况下会把不同的数据放在同样的方法论上去做,因为做一些消融实验的话,你会发现可能20%的基本面数据提供的增量信息不止20%。

10:36

我因为自己想这个问题没想明白,然后就想请教一下,比如我现在能预测短期收益率的因子,比如十几秒后的收益率,然后想知道比如相关系数、收益率波动、包括交易费用这些大概需要达到什么样的条件,我这个因子能是一个比较好盈利的因子?

12:48

我理解这位同学问的,就是说你现在已经做出来了因子对吧,然后我们评价这个因子最直接的方法就是,通过我们的回测平台,它所执行的作用是什么呢?

就是说不管你是直接把因子值当信号也好,还是说你模型带有很多的因子、对它拟合之后再输出一个信号也好,我们这个高精度的回测平台,它都能把你的这个信号转化成它实际的模拟撮合这么一个交易执行,从而检验出来你这个信号到底是有用还是没用的。

刚刚我同事也说到,你除了考虑准确性之外,非常重要的另一个指标是覆盖率,说你模型很准很准,但它一直就是不太发信号,或者它就是只对一些票很准,那这个其实是没有什么用处的,所以可能要平衡它的准确率和召回率的关系。然后其实如果只评价这个呢,还是不太够,因为包括有一些啊完成度,包括你的资金是有限的,你怎么去根据这个信号分配调仓的顺序,其实这些都是很关键的,所以我们都是用公司里非常迅速的一个回测平台来解决。

15:24 我是刚研一,现在类似的实习还没干,但是对这个方向有很大兴趣,那么我如何从零到一——也就是我连一段量化相关的实习都没有的话,比方说我要去你们公司,你们公司更希望我有哪些label,或者说我应该做哪些准备?

15:49每个人的第一份量化实习都是从零到一的,所以在你拥有第一份量化实习经历之前,首先你要结合自己的背景,如果你是比如说计算机相关的背景,已经做过很多机器学习的项目,那其实对你来讲,做实习没有太多的技术避垒,可能你在互联网的应用场景跟我们这边的应用场景其实就是换了个数据集,但是我们这个数据集噪音更高。

那如果你不是计算机背景,就比如说数学统计背景的话,其实也是非常贴合的,就可以从因子开始着手,因为我们挖因子时候,要去描述一些现象,就要用到一些指标,那可能作为数理统计方面的同学,你会清楚地知道哪些统计概念能够更加方便地去描述我想描述的现象。

所以对我们来讲,只要你在学校或者是在研究中,我们能够看得出来,你是有研究能力的,就不太在乎你是不是有过这方面的实习。

17:30

我想提两个问题。

第一个选择题,在合成因子的时候,比如说我们同一类因子有好几个,它们可能就是只是一些参数比如时间窗口不同,得到十个因子,大家其实反映的是想同的内容。怎么把这些因子组合在一起呢?有几个选限:第一个是等权加在一起;第二个是根据样本内的夏普加在一起;第三个是研究一些模型进行加权;第四个是用一些方法,比如取残差以后把它加到信息里。

18:26

我先给你提供一下我这个考察方案,就比如我建模要选择时间窗口,你现在告诉我这个因子选一天的窗口、五天的窗口、十天的窗口都还不错,那我一定是优先选择五天到十天的窗口,因为我觉得,我要预测未来这么长的周期的话,我主观上更加偏向于使用到的历史数据的区间会大于它。

但是我也会同时去看他验证集上的表现情况,根据样本内的IR去进行一些调整。当我发现数据差距量不大的时候,我一定是等权去处理,因为我觉得后端的机器学习模型更加容易引起过拟合。

19:37我做一下这个选择题啊,我也只会对它做一个等权。

因为我因子模型都会做,我想说一下我是如何避免这种情况,就实际中并不会出现这种情况,因为我也觉得你说的一个因子,如果它的内在逻辑都差不多,你仅仅是去调它的一些超参数,我觉得你这个东西你调出来的其实很有可能是有一点过拟合的。

比如我们自研的研究系统,其实也是支持批量的因子生成,但一定不是靠调节参数去生成,而是根据内在的实际逻辑的不同。

20:57

可能我的想法会比较宏观一点,就是我觉得在这个行业,市场是最好的老师,就是没有标准答案,可能今天你觉得选A是对的,然后明年市场变了,可能B又是一个更好的答案。你这个在美股是C这个选项,但你到了港股可能是D这个选项。

市场是这样的,所以你自己通过回测的一些观察,其实你是能找到这样的一个答案。我觉得这样的思考的过程可能会更重要一点,因为我觉得这个行业其实很多很多问题都是没有标准答案。

21:53

第二个问题,比如说你做基本面或另类数据,你有些先验的认知,你觉得它应该是什么样,然后按这个方式去构建策略。但是它在样本内就是稳定地亏钱,比如夏普比稳定地为负二,那三位愿意为他做一个负一的处理吗?

22:18

这个确实是一个比较尴尬、但很可能出现的问题,因为首先你得去想,就是为什么它样本内稳定是负的,因为按常有的逻辑,一个策略即使是失效了,它夏普也是趋向于一个平的,不太可能是趋向一个负的状态,所以出现这个状态大概率啊,就是你处理的一些环节上可能存在问题。

所以我会去一步一步查是哪里出问题,或者说逻辑哪里需要一些修正,或者说也有可能市场环境变了,得去从逻辑的角度去想这些问题,并不是说简单去加一个负号。

23:38

我的想法跟这个同事一样,就我首先一定会觉得我是不是哪个东西算错了,是不是在什么地方加错了一个负号,因为在样本内稳定亏钱的信号,那只有离成功就差一步之遥,一定自己要去认真查。

24:41

关于这个问题的话,我也是觉得可能你再好好审视一下。如果你没有引入一些特别奇怪的东西,其实想做一个在样本内稳定亏钱的策略,也不是那么容易的。

25:34 我看到公司有这么多因子,也不断有新的因子加入,想问我们是如何选择在某个时期用哪些因子是比较有效的,哪些的因子不有效?

或者说,如果有一部分因子和另一部分因子出现了冲突,要怎么去做这个仓位?

25:59首先针对第一个问题,因子的确会有动态的生命周期,一般来说在实盘应用过程中,每隔一段时间也会重新进行一些回测,评估这些因子的有效性,然后在自己模型端的话,可能就是动态更新自己的因子集。

第二个问题,你说在过程中有些因子可能想让买入,有些因子想让卖出,一般来讲我们最后都是把这些因子训成一个模型,一个模型最后去决定到底是买入还是卖出。

那你刚刚讲的可能是,比如说有些因子明明在样本内是一个正向的因子,突然某一天变成了负向的因子。首先在做研究的时候,出现反直觉的东西,一定要去查问题。

27:24还有一个问题就是,公司对实习生的考核标准,或者是发展路径是怎么规划的?

27:46

面试的话,首先会对你的简历、过往的经历考察一下,就是你对这个行业的了解,或者说你的创新能力啊,或者说你跟我想给你做的这些项目是不是有一些重合的地方,这些都是我会比较感兴趣的点。

然后在考核过程中,因为我们一般会有,比如说三个月会有两次的展示,我也会去协助你去完成展示,把你给论的成果做一个汇报。当然整个流程我会大概给你设计得比较好,我会评估这个项目的工作量,大概到什么时候,你会完成到什么地步这样,也会每周会去跟你讨论,如果说你觉得做了一个月这个项目做不下去,换也是OK的,或者说你发现了一些别的方向,你去做这个,我也是会全力支持的。

28:54

我再补充一下,一般拿到offer都会进入三个月的试用期,其实试用期淘汰率非常低,我们主要是在这三个月的过程中,想让你找到做研究的感觉,因为这三个月往往来说是你非常看重的三个月,你投入的精力可能会很多。

不管是实习或者试用的话,一般进来之后会有一个mentor带你,他会跟你去协商,去制定接下来这几个月的实习文档,我们都有比较标准的一些方案,比如第一个月、第二个月、第三个月,我应该做些什么事情。如果你的进度不符合预期的话,可以中途去修改这样的文档,最后转正的话,我们都是做两到三次的展示,然后整个策略团队一起开会投票决定是否同意转正,或者进行正式offer的发放。

展开Show Notes
根本听不清啊,声音小还加了背景音乐
章之余:啊不好意思这次因为录现场会有点杂音,我们之后改进一下,这次可以先看看我们的文字转录
shame
shame
2025.9.22
感谢分享