量化金融面试实用指南

如何在量化金融(主要侧重于交易)领域找到实习或应届毕业生职位。

简历
确保优化简历,将重点放在数学和数据科学上。如果你在高中时参加过数学竞赛,请务必在简历中注明,如果你的标准化考试成绩很高,请注明你的高中信息。所有其他标准简历提示均适用。下面是我喜欢并使用的简历模板链接。

时间安排
大多数量化职位列表在 7 月下旬/8 月发布,但有 2-3 家公司会提前发布(3 月下旬/4 月)。我强烈建议从 3 月下旬/4 月开始向这些较早的公司提出申请,然后在夏季尽快向其他公司提出申请。申请越早,获得录取的机会就越大。一般来说,确保在招聘信息发布后立即申请。如果您有截止日期,一定要通过申请表或电子邮件告知公司,即使他们的申请表还没有开放,他们也很可能会提前给您面试机会。

推荐
虽然推荐人会有所帮助,但不要把重点放在建立行业内的人脉上,当然也不要为了建立人脉而牺牲准备面试的时间。与其他行业相比,量子行业的推荐人和关系网的意义要小得多,花在准备面试上的时间比花在获得推荐人上的额外时间更有用。

在校年级
千万不要说自己是大二或大一学生,因为这意味着你会被任何量化实习自动拒绝。如果你是大一或大二学生,可以申请一些特定的项目,如 Jane Street 的 FTTP、Citadel 的 Discover Citadel 和 D.E. Shaw 的 Fellowship Programs 等。我建议大一和大二的学生利用暑假上课、做计算机科学研究,或在大型科技公司或酷炫的初创公司进行软件工程实习。如果你没有安排实习,我建议你利用课余时间自学。

学习领域和相关课程
免责声明:我是加州大学伯克利分校的学生,因此课程推荐将主要关注伯克利分校的课程。不过,这些课程的大部分内容都是公开的,链接如下。

心算
确保你的心算能力处于最佳状态。虽然没有这方面的课程,但在做数学、概率或其他技术领域的练习题时,甚至在日常生活中,一定要经常练习!ZetaMac 是一个练习心算能力的好资源。使用默认设置,并尝试获得 40 分以上。如果一开始做不到,请继续练习!就像做其他事情一样,练习心算往往会让你做得更快更好。

概率
这是迄今为止最需要了解的话题。很多交易面试甚至不会测试你的编程能力,而只会测试你对数学和概率的理解。因此,了解概率的内涵和外延至关重要。如果可能的话,确保在大学期间至少学习一门高年级概率课程。为此,我推荐 Data 140 或 EECS 126。EECS 126 涵盖的内容更多,但 Data 140 对相关面试主题的介绍更深入,而且提出的问题往往更类似于交易面试中的问题,因此我强烈推荐它而不是 EECS 126。如果您最终选修了 Data 140,我个人建议您选修 Stat 150,以涵盖随机过程,这有时会出现在面试中(但并不常见)。Stat 150 绝对没有必要,因为绿皮书涵盖了您需要了解的关于马尔可夫链和马氏过程的所有知识,但我个人非常喜欢这门课,并发现它对我自己理解该主题非常有用。

编程和算法
量化交易职位通常不测试编程,但量化研究员面试通常需要编程。特别是,更注重 QR 的公司几乎总是通过在线评估和 Leetcode 式面试相结合的方式测试编程技能。这包括 HRT、Headlands 和 Jump Trading 等公司。

最好的练习方法就是保持 Leetcoding 技能的敏锐度。我认为 Grind 75 是 Leetcode 能力的坚实起点和基准。

在课程方面,确保具备 CS 170 级的编程和算法知识。

对于伯克利的学生来说,这通常需要 CS 61A、CS 61B 和 CS 70 作为先修课程。Python 往往是量化金融专业的首选语言,但大多数公司都允许您在 Python 和 C++ 之间选择一种进行编程面试和挑战。

线性代数和微积分
对于大多数量化交易面试来说,线性代数和微积分并不是非常重要,但如果您有时间,请务必复习一下基本的线性代数和微积分。绿皮书》中以这些主题为重点的部分是检查您对这些主题的了解程度的可靠方法,但与概率、统计、心算和编程相比,这方面的准备工作优先级较低。对于伯克利分校的学生,请确保

统计学(定量研究职位)
虽然了解各种测试方法和统计学常识对该领域的任何人都很有用,但这些话题通常只在定量研究面试中才会被提及。相关主题包括深入了解置信区间、假设检验和正态分布规则/操作。例如,您应该能够设计一个测试,以确定在某种情况下特定结果是否具有统计学意义(这是一个足够模糊的说法,也很容易应用到工作中)。Stat 135 对统计学入门最有帮助,也是一门相当简单的课程。如果您对定量研究感兴趣,这门课是必修课。

机器学习与数据科学(定量研究角色)
这门课更适合定量研究职位,但了解线性回归的内在和外在对面试至关重要。请确保您了解线性回归的优势/劣势、假设,以及在假设不符合的情况下如何采用您的模型。了解其他主要模型(如随机森林)的这些事实也是一个好主意。这方面的好课程有:Data 100(学习 python 的基本数据科学(numpy/pandas)技能)、Stat 151A 或 Econ 142(学习线性建模)以及 CS 189(学习机器学习的一般理解)。不过,这些课程对线性回归的介绍都不够深入,因此您还需要进行自主学习。

就数据科学而言,有两种可能的面试类型。第一种是系统设计问题。在这种情况下,你将被要求预测某些事情,你必须确定你需要哪些数据、如何收集数据、如何处理数据,最后如何使用这些数据来预测你需要找到的东西。第二种类型将直接评估你对数据科学流程和技术的了解程度。这很可能需要给你一个数据集,让你去预测一个因变量。我建议你经历探索性数据分析、特征工程、建模和重复等标准数据科学流程。在建模时,请记住检查您的假设,并纠正模型的不足之处,如上所述。另一个有用的经验法则是,在开始进行分析之前,使用所有自变量运行一个天真模型,以获得一组基准指标,如均方误差和 R^2。据我所知,没有一门课会明确涉及这一点,更多的是通过实际的数据和机器学习工作经验来构建。