量化 | 从工程师到量化金融-如何进行过渡

我们经常收到有关向职业生涯过渡到量化金融的可能性的电子邮件查询,特别是对于当前认为自己处于职业中期的个人。
从更一般的角度讲,我们先前已经讨论了在三十多岁时是否有可能成为量化者。但是,对于那些具有更特定的技术专长的人,尤其是那些具有硬科学或工程学背景的人来说,常常不知道在现代量化金融角色中需要哪些技能以及如何过渡到成为量化者。
在本文中,我们将讨论哪些角色可能适合技术职业转变者,如何利用您当前的技能以及如何为现代量化对冲基金和投资银行中现在出现的面试类型做准备。
研究人员还是开发人员?
现代量化基金中可用的两种“前端”量化角色大致可以分为量化交易研究人员和量化软件开发人员/工程师。在投资银行中,仍存在大量衍生产品定价,需要特定的数学功能。
量化金融中大多数角色的关键区别在于候选人的编程能力以及其数学和统计成熟度。
具有编程能力的人(即具有大型面向对象代码库的软件工程经验)可能会倾向于使用量化开发人员的角色。
那些更习惯于通过笔记本编写脚本或进行交互式研究,但又偏重于假设检验和数据分析的人,很可能会发现量化研究更为合适。
量化研究员
在没有量化金融研究经验或您当前行业中进行过其他严格研究的例子的情况下,定位中级量化交易研究角色将是一个挑战。
这就是为什么博士学位通常被用作某种形式的硬性要求而被用作人们进入这一职位的障碍的原因。尽管如此,仍然有可能进入研究角色,但可能有必要将角色定位在更初级的位置。
为了避免需要公开研究记录或有商业研发经验的证据,可以从公司担任量化研究开发人员一职而转为研究角色。这通常仅在长时间显示出专业知识后才能发生。
从好的方面来说,许多公司现在开始雇用一般的“数据科学家”来研究另类数据(与传统的价格/量数据相反)。Python的数据科学和机器学习技能(NumPy,Pandas和Scikit-Learn)将在这里很有价值。如果您具有这些技术领域的背景知识,则可能会发现自己的需求量很大。
统计的重要性
工程教育经常强调确定性方法而不是统计方法。在本科生水平上教授工程师基本统计学知识的同时,对于大多数量化金融职位而言,所需的成熟度还不够。因此,如果您认真申请成为一名定量研究人员,则有必要提高您的统计成熟度。
过去,许多定量分析员被雇用来为复杂的衍生品合同定价,该合同大量使用了随机微分方程和Ito微积分。因此,从工程师到定量的过渡更为直接,特别是对于那些具有随机最优控制背景的人。
对于定量交易研究人员,必要的工具包有所不同。虽然随机演算在某些领域仍然很受重视,但重点已转移到统计时间序列分析,线性统计技术和基于贝叶斯的机器学习方法。
即使在这些领域有很强的背景,仍然有必要证明将这些技术应用于量化金融数据集的能力,这以不稳定和信噪比差而臭名昭著。准备好与这些方面有关的面试问题。
量化开发角色
量化开发人员是研究的替代方法。他们通常需要初级的计算机科学背景或职业中期的软件工程技能记录。
所需的最重要技能包括面向对象的编程,对数据结构和算法的广泛熟悉以及软件工程技能。
C ,Java和Python是量化金融中大量使用的语言的典范。因此,如果您对此路线感兴趣,我们的建议是通过编写自己的大型项目或通过贡献开源软件来尝试和实践尽可能多的软件开发。
编程的重要性
应该强调的是,无论您是针对定量研究还是定量开发人员角色,您都需要具备一定的编程能力。无论是开发人员还是研究人员,量化工作一天中有80-90%的时间都花在了编码上。因此,如果您当前的职业道路尚未使您接触编程,那么您将需要在其他地方获得此知识。
在学术界,普遍存在用MATLAB和Fortran编写的代码,而没有使用任何面向对象的技术。特别是对于定量开发人员,在尝试面试之前,必须熟悉算法,数据结构和设计模式,以及诸如C ,Java和Python之类的面向对象的语言。
无论您决定担任量化研究人员还是量化开发人员,都应注意,量化团队广泛使用了类似敏捷软件开发之类的现代项目管理技术。这将需要熟悉版本控制软件(例如Git),以及对现代软件测试方法的理解以及使用Linux命令行的技巧。
这些方法通常与传统工程行业中较长的发展周期形成对比。幸运的是,可能有在线课程,教程和书籍可以教这些技能。
利用您当前的技能
工程师在分析问题上的能力和理解大型系统的能力在量化金融方面广受欢迎。由于系统交易不过是大量互连系统而已,因此这些技能在帮助诊断不可避免的问题时将非常有用。
编码在工程中变得越来越普遍。通常,工程师必须修改大型旧代码库才能添加新功能。在系统交易发展中也是如此。因此,可以建立修改大型Fortran或MATLAB代码的技能,以获得在版本控制的环境中修改大型面向对象代码库的能力。
在其职业生涯中,所有工程师都必须在某种程度上精通数学。尽管物理和工程数学经常强调基于确定性微分方程的方法,但是不确定性量化之类的新概念正在将现代工程师引入可靠的统计和机器学习方法。利用这些工具并在面试时强调它们,将进一步证明您适合担任量化金融职务。
面试实践
由于技术水平以及所涉领域的专业知识,现代的量化金融面试(研究人员或开发人员)需要大量准备工作。应该强调的是,不再可能从学术界或工程学界“扮演”量化角色。面试的准备很关键。
尽管准备的类型在很大程度上取决于您自己偏爱的学习方法,但是几乎总是适合对面试问题和“现实世界”项目进行练习。
对于定量研究人员而言,Kaggle竞赛平台是获得数据科学和机器学习技能的好地方。Kaggle使您可以在“笔记本”环境(例如JupyterLab或R Shiny)中获得实践技能。
在这种方式下进行端到端竞赛的过程将为您提供Python库的实践经验,例如NumPy(用于数值数组操作),Pandas(用于面板数据分析),Scikit-Learn(用于浅层机器学习)和甚至TensorFlow或PyTorch(用于深度学习)。
对于量化开发人员,有无数的采访实践网站和有用的教科书。对于面试问题练习特别有用的两个网站是HackerRank和Leetcode。它们包含大量的数据结构和算法问题,通常不仅需要找到可行的解决方案,而且还需要最佳的解决方案。
关于如何通过编码面试的最有用的教科书之一,是盖尔·麦克道威尔(Gayle McDowell)写的,名为《破解编码面试》。本书概述了开发人员的端到端流程以及如何最好地管理面试准备时间。
求职
在量化金融中,求职要比准备工作简单得多。进入量化角色的最常见途径是通过您当前的人际网络(例如,进行过渡的博士/研究实验室同事)或通过位于主要量化中心(纽约,伦敦,香港和纽约)的专业量化金融招聘人员。
现在,看到量化公司直接通过自己的职业门户网站进行招聘也变得越来越普遍。大型量化基金青睐的另一种招聘机制是每年举行的“编程竞赛”。为此类竞赛提供新颖的解决方案可以使您在就业能力方面领先于其他公司。
综上所述
即使从职业中期开始,从传统的工程角色转变为量化金融也是有可能的。为了能够跳下去,有必要进行大量准备。
对于定量研究人员而言,强大的统计知识绝对是必不可少的技能。对于经过确定性方法(例如微分方程)培训的工程师而言,这可能是一个挑战。MOOC,正式资格和广泛的实践都是快速掌握一切有用的方法。
无论是研究角色还是开发角色,都必须在编码,软件开发和现代敏捷项目管理技术和工具方面具有可行的技能。像其他任何事情一样,编码需要大量的实践,因此请确保分配一些学习时间来解决编码问题。
最后,如果前几次面试不成功,不要灰心。量化公司的面试非常有竞争力。尝试将每个面试视为一个学习过程,这将有助于您为下一次面试做好准备。通过足够的努力,应该有可能在主要的量化基金之一中发挥作用。
(0)

相关推荐