在实际的 Quant 生涯中要掌握哪些技能,需要到什么程度,具体的实际用处是什么? 举报 理由 举报 取消 2017年6月27日 8 条回复 1149 次浏览 Quant,交易,宽客,对冲基金,投资,量化
回复 ( 8 )
谢邀。
(2016/2/28更新)
Quant有很多分支,不知道题主主攻哪一块?根据本屌浅薄的经验给题主稍微说一下吧。
衍生品定价:MATLAB,C++。
这里说的定价包括场外期权设计和定价,本屌目前所处的小组负责这个事情,用的是MATLAB和C++。MATLAB做定价的优势在于,蒙特卡罗模拟搞起来比较省心。
交易策略开发:MATLAB、PYTHON。
之前做过的量化相关的实习,其实都不限定用什么工具,不过交易策略开发的话MATLAB和Python用得比较多(根据我的观察)。原因可能是由于MATLAB处理矩阵的能力和Python做回测的方便性较好。
风控:MATLAB、R
风控的实习本屌也做过(不好意思本屌做的有点杂……),风控用的是R语言。估计是由于工作量太大(风控IT框架的搭建),R的包比较多,办起事来快捷又方便。
(有没有发现三个方向都有MATLAB?对的,本屌是个MATLAB控……)
高频交易:Linux、C++
高频没做过,不熟悉。不过曾经接触过做高频的朋友,用的是C++,同时需要Linux系统开发的能力(别问我为什么,我也不懂)。
数学:
关于数学在量化中的地位的讨论已经很多,很多人都说实际上好像用不着太高深的数学。其实嘛,数学就是内功(气宗),编程这个东西就是外功(剑宗)。在量化领域,没有气宗却能把剑宗玩得出神入化的人,我暂时没有见过。
举例:本屌目前在搞一个课题,是波动率曲面相关的。在构造波动率曲面的过程中有很多关于随机过程的东西,因此本屌最近一直在处于恶补随机微积分的知识的阶段中…………
其实工具只是工具啦,关键在于,解决问题的能力。实务问题千差万别,举个例子吧,假如最近公司准备发一只挂钩白银的产品(可理解为要设计一款场外的奇异期权),作为研究员,你要想:从行情走势来看,发什么产品比较好卖?(市场需求),资金成本如何?规模多大?预期盈利?怎么对冲?对冲的难度?……这些都是要考虑的。
手机码字不易,看完的话请给个赞满足一下本屌的虚荣心。
以上。
泻药
quant还是分很多不同的,总体来说我比较偏向于分为两类,偏IT类和偏数学类。
偏IT类的,C++/python使用频率更高,普遍交易周期比较短,衍生品作为标的物的比较多。比如群众口中的高频交易,短周期的套利交易等等。以上我说的只是普遍情况,拿着C++交易股票的,建立整套系统的也有,比如我们。除非构建系统,搭建底层组件等需求,其实对编程能力的要求并特别高,尤其是C++来说,更主要的是编写的代码逻辑清晰,尽量一次成功没有bug,准确表达逻辑,并且有比较高的效率。缺乏这种编程能力,会使得很多时间浪费在写代码上。大部分时候,编程只是表达自己想法的一种工具而已。偏数学背景出身的,没有几年C++实际编程经验的,就不要试图去学习C++了,这个大坑不是几年就能补上的,而且未必能补上。
偏数学类的,matlab,python啥的随意,但是必须也能熟练掌握一种编程语言,目的还是表达自己的逻辑,快速验证自己的想法。剩余的大部分时间,要尽可能多的去想数学的问题,发挥自己的优势。
没有人能同时做到以上两条,即使有两条都做的不错的,那肯定也会更侧重某一方面,而且往往两个方面都没有做到最优秀。至于linux还是windows,不是现在需要考虑的问题。除非做高频交易,win和linux没有什么本质区别。如果是国内交易,那么win和linux是一样的。linux对低延迟网卡和线程问题更有些优势。
除了以上所说的,其实最最根本主要的问题是,要聪明:)这个行业就是那么残酷,未必勤能补拙。
其他部分,之前冼同学在下面链接里的回答已经很完善了:
在实际的 Quant 生涯中要掌握哪些技能,需要到什么程度,具体的实际用处是什么? – 知乎用户的回答
哦,另外一点就是,建模喜欢用MATLAB有一部分应该也是习惯问题,米国大部分高校数、理、工,都是用MATLAB,而搞Quant的祖师爷是米国各大投行。
我来补一下冼同学没有提到高频部分。
高频交易用C++是因为快、可以直接调用内存,direct memory access是也。但是,其实现在更需要的是VHDL或者Verilog。这两者其实是硬件编程的范围了,以前通常是EE,而不是CS会去学。因为目前最快的是上FPGA,用硬件加速。交易所的数据流进来,连进入服务器的databus都不需要,直接在FPGA卡上完成是否下单、下单数额的判断和决策,能达到微秒级的速度。当然,卡上的交易模型还是时常需要调整、变动。
1)C++,交易执行接口,一般情况下都不用你来做
python,matlab一般都是用来设计策略
2)HFT要KDB是因为要访问速度,其他情况一般的SQL类型数据库都行
3)LINUX服务器管理什么是运维干的事,当然你会更好。非HFT不太需要定制内核,不过你有特殊爱好也可以搞下。使用shell,C进行编程是必备技能,不然大量的重复操作敲命令敲到你哭。
4)数学嘛,实际的程序一般都是加减乘除,模型再复杂最后也得弄成这样,不然速度真的捉急,拼速度才是第一位。
从程序员的角度我补充几点吧,我也在量化公司干过开发.
直接翻开招聘信息里面写着需要什么能力了 没有的现学 但是最基本的你编程一定要好 →_→ 不要问我为什么
从招聘信息里我统计过,金融方向类的quant,如下:excel>sql>vba>python>R>sas,外加考个CFA。
问这里的人干啥?一堆水笔……快去看招聘信息!