作者:董可人
链接:https://zhuanlan.zhihu.com/p/25814461
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我从2015年5月回国加入凯纳担任 CTO,转眼间已经快满两年。两年前,我虽然有一些在海外工作积累下的行业经验,但是对于国内的量化环境还是一无所知的小白。两年后,得益于在凯纳这家国内本土一线量化私募的工作,我实际处理了很多在国内做量化所必需要面对的现实问题,同时也得以接触很多国内的同行,对于主流的量化团队的工作模式有了一些了解,终于算是接了地气。这一篇文章我就来讲一下从一个 CTO 的视角上,这两年里我的一些感受。国内的优点不多说了,行业发展快机会多空间大,是难得的沃土,我非常庆幸两年前做了回国的决定,对于这两年的进展也很满意和开心。下面主要讲问题。

首先,毫不意外的,国内的量化团队普遍来说IT水平是比较差的。这里没有贬义,就算是西方那么多国家,要论IT研发能力,互联网系的科技公司都比金融业高到不知哪里去了,相比之下国内的情况虽然漏洞百出,但是还不算太糟,至少大家都能做到自给自足。这里面一方面是金融业吸收新技术相对比较保守,整体科技升级的步子不可能迈得太大,另一方面科技人才要转行也有很多现实的挑战,比如薪酬体系不明确,学习有曲线门槛比较高等之类。现实来看,量化这么一个虽说是科技驱动的行业,其实际的IT水平还存在很大的发展空间。

举例来说,我所接触的大多数量化团队都是这么一个配置,策略人员主要使用 matlab 或者 python/pandas 之类的数学类软件开发策略信号,然后有少则一两个多则三五个程序员负责开发信号执行系统。基本上每个采取了这种配置的团队,表面上看起来都是其乐融融。你如果要看工作演示,那个主程一般就会掏出一个编译好的软件(可能是 windows 上的带图形界面的,也可能是 linux 上的纯命令行的程序),演示怎么启动、操作、停止这个软件,everything is just working。但是仔细看,实际上这个配置下面的开发模式是非常脆弱的。一般来说,这少数的几个程序员会使用 svn 或者 拿着 git 当 svn 使来做版本控制,集成测试很可能是没有用的(主要靠实盘),更不用说 peer review 等高级点的保障软件质量的手段。甚至软件交付也缺乏标准化流程,很可能是u盘拷一个新鲜编译的 exe 就上线了,交易机器多了甚至都搞不清哪台机器运行的是哪个版本。

另外一个常见的问题是,大家的存储普遍做的很差。研究用的数据,常见的万得、恒生聚源等都以 SQL 数据库的形式提供,策略师一般需要自己进行清洗处理成便于导入 matlab 之类软件的格式,这个过程很容易变成一笔烂账,尤其是和生产系统关联在一起以后,怎么维护清洗代码,怎么保证每天的导出可以在无人看守的情况下正常稳定执行,都是并不简单的工程问题。比方说供应商的数据推送延迟了、导数据的机器内存泄漏了或者硬盘满了、甚至办公室大楼半夜断电了,都对数据质量有直接影响。实盘交易的存储,就更是问题多多,有的干脆没存,出现问题全靠实盘调试;有的会用 MySQL,然而行情数据往关系型数据库里硬怼无论如何都是一场噩梦;稍微聪明点的会上一些内存型数据库比如 mongo 或者 redis,这些东西的稳定性和性能又够喝一壶。在这种环境下,你要想对成交记录做点细致分析,基本上只能靠拍脑袋,因为连准确可靠的数据都没有。有时候我真的佩服在这种环境下野蛮生长的量化团队,除了运气以外能依靠的只有不计成本的试错了。

真正的危险还在于,负责研发策略的 quant 们,因为自身有一定的编程能力,很容易产生一种轻视工程技术的心理,如果除了会写 matlab 以外还能写几行 c++,那简直要自信心爆棚。我理解凸显自己全知全能是一个聪明人的人性,但很遗憾的是系统开发是一项需要百分百投入的工作,一个人绝不可能既是策略专家,又是系统专家。我在工作中接手过很多策略同事的代码,有些质量问题至今还让人头疼不已。这两年里如果说我得到了什么深刻的经验,那就是在团队中划分清楚策略和IT的边界是一道必需解开的难题,既要保证策略师有足够的空间进行创造性研究工作,又要避免他们对生产系统产生破坏性的影响,这件事处理的好坏对于团队发展有决定性的影响。

不过,要命的是,在这个行业里,大多数人实际上不会觉得现有的模式有什么问题,因为的确在表面上看起来,每天系统都在交易,简直歌舞升平。但是你如果把播放时间加快,就会发现,这样的团队一般在规模上很难扩大,因为根本就不具备扩容的实力。最后高层会不得不通过其他方面的办法实现资管规模扩大,比如金融方面的产品设计(收益率注水),或者是人力上的简单复制(每增加一种产品就单独招一批新的开发人员)。而对于开发者来说,在这个局面下,一方面你的工作对整体业绩的贡献相当有限,导致回报不可能有较大的提升,另一方面长期在这种作坊式的工作模式下卖力,对于个人的职业生涯恐怕就算不是毁灭性影响,也是温水煮青蛙式的慢性自杀,因为干的事情无非是机械性的适配一个又一个的柜台接口,对各种现存的不兼容的系统补丁摞补丁,你怎么能在工程能力上有显著提高呢?

所以我们可以看到一个很吊诡的现状,量化团队表面上虽然都会强调IT的重要性,但实际上开发到一定阶段就触顶到天花板,开发模式缺乏能增加更多商业价值的底层架构,当然在行业的业绩增长中难以分到更重要的一杯羹;然后因为IT开发在行业中实际上的不重要性(因为做的烂,老板们干脆想别的办法避开这个薄弱环节),平均而言回报也难以和BAT系的互联网科技公司抗衡,直接造成了行业内的招人难;最后因为缺乏高素质人才的进入,很多典型IT问题无法解决,又难以根本上提升IT的贡献度,陷入一个死循环困境。

以上是我对现存的一些业内问题的理解和看法。问题说了不少,如何应对和解决似乎没怎么讲,因为聪明的我当然不会在一篇文章里写完所有的话,请大家期待后续的文章。顺便透露一点,我们也在考虑把我们的一些工作成果以开源的形式提供出来,让大家看看我们对于这些问题究竟交出一份怎样的答卷,欢迎关注。

说了这么多,关子也卖过了,如果激起了你的一点点好奇心,想看看我所在的到底是一个怎样的团队,我们是如何与众不同的解决上面说的这些问题,那就请你看一条招聘广告:

凯纳资本是由众多具有海外背景和国内证券期货领域资深投资人组成,公司成员毕业于清华、复旦、上交、曼彻斯特大学、伦敦商学院等海内外知名学府。公司目前资管规模接近20亿,并且还在保持快速增长。公司在北京、上海、广州均有办公室,其中在上海和广州都设有策略研发团队。凯纳IT部位于上海,为公司内部数个策略团队提供IT支持,工作包括开发及运维策略回测平台、交易执行系统等,现有系统支持股票、期货等多品种,多周期策略,经过大资金实盘检验,在高频领域也印证过自身实力,现在到了我们接纳新人的时候。

我们承诺你会得到一线量化系统的开发经验,以及一流的技术研发环境,你将体验使用最前沿的技术解决量化交易中的种种难解之题,见证一个快速发展的量化公司的成长历程。我们保证你在这里工作的每一天都将进行有挑战的工作和肉眼可见的成长速度,不会浪费你的时间在无意义的项目上。这样,除去有市场竞争力的薪酬,你付出的努力和收获的成长也会保障你的增值。

同时,我们期望你是一个积极主动,能够快速成长、快速推动所负责项目前进,有活力的新星。你应该拒绝接收低效的工作方式,无法忍受停滞不前的工作状态,厌恶没有条理和复杂的工作环境,以及有良好的沟通能力和自控能力。我们期待与这样的你共舞。

职位:程序员

地点:上海

职位要求:

1、重点大学计算机或者相关专业

2、至少熟练使用一门语言(c/c++[11+]/python/java/javascript 均可),掌握常用数据结构及算法。(熟悉函数式编程技术如 scala/erlang/haskell 或其他语言中的functional功能可加分)

3、熟悉前端技术(html/css/angularjs 等)可加分。

4、熟悉网络原理(tcp/ip),操作系统(文件系统、kernel原理等),计算机体系结构等可加分。

5、熟悉 git/phabricator/jenkins/docker/tcpdump/dtrace/stap 等开发工具可加分。

6、不要求金融背景,相关知识可在工作中进行学习。

工作内容包括但不限于: 参与搭建低延迟交易执行系统的开发,包括底层架构、策略引擎、存储系统等。

有意者请发送简历到 recruit-it@knquant.com.cn

回国两年小结,我所见到的是海阔天空 【董可人】相关推荐

  1. usaco前两章小结

    usaco 暑假老师有推荐做但是那个题目太长了,而且·大部分都是废话做起来特别慢,而且当时自己基本上什么都不懂,太难了所以看了题解做了两题就放弃了. 转眼就上学了,因为想学习acm所以就胡乱找题做但是 ...

  2. python修饰器classmate_初学 python 两周小结

    在学习过程中总结如下,如果有什么地方不正确的还请大家指正: 2015.6.15~2015.6.21 1. 输入输出 name=input('Please input your name: ') pri ...

  3. 实习两周小结(2018.07.30-2018.08.11)

    实习第一天刚好是上周一,第一天来了感觉还不错,起码同事都挺好的.但是!!!搞IT都是钱多话少的吗??????? 刚来就问了坐我斜对面的浩哥,我需要学一些什么,然后就加上qq给我发了需要装的环境,没错, ...

  4. 我的CSDN两周年小结

    机遇 来到CSDN的初心是找寻课设的案例,需要找的东西太多了,于是自己进行分类收藏,可还是不太方便,然后就尝试着结合前辈的内容结合自己理解进行写作,记录所学,一方面加深了对知识的理解,另一方面也感受到 ...

  5. MySQL 为什么需要两阶段提交?

    文章目录 1. 什么是两阶段提交 1.1 binlog 与 redolog binlog redo log 1.2 两阶段提交 2. 为什么需要两阶段提交 3. 小结 为什么要两阶段提交?一阶段提交不 ...

  6. 我为什么回国(by张朝阳)

    我到美国考取的奖学金项目是由李政道发起的,这个项目每年从中国招100个学生到美国去学习.考这个项目的时候,全国各大学筛选出来700个人参加考试,清华送出一个有25人参加的代表队.说实话,所有能来参加考 ...

  7. java用一张一元票换一分_一张一分纸币更换两张一元纸币,知道收藏价值后,你也会更换!...

    原标题:一张一分纸币更换两张一元纸币,知道收藏价值后,你也会更换! 今天有藏友跟我说了这么一件事,他用一张一分纸币更换了别人手里的两张一元纸币,这让我比较好奇,是什么样的一分纸币呢,又是什么样的两张一 ...

  8. 在.NET中执行Async/Await的两种错误方法

    微信公众号:架构师高级俱乐部 关注可了解更多的编程,架构知识.问题或建议,请公众号留言; 如果你觉得此文对你有帮助,欢迎转发 在.NET中执行异步/等待的两种错误方法 在应用开发中,我们为了提高应用程 ...

  9. 连载:中国最早的一代官派留学生--留美幼童 (结尾)

    第五章:命运激变 长久分离,你的爱仍不变,你的声调仍然使我留恋.我多幸福,像从前在你身边.多年以前,多年前. --美国民歌<Long Long Ago>(<多年以前>) 你忠实 ...

最新文章

  1. 史上最难的一道Java面试题
  2. 利用编码特长,我赚取了每月1000美元的额外收入
  3. SAP-检查多个关联字段输入,以及有条件地调用模块
  4. 【深度学习】从R-CNN到Mask R-CNN的思维跃迁
  5. find命令的xargs参数的使用---Linux学习笔记
  6. C#中GDI绘制高质量平滑图形实例
  7. swagger生成示例_生成器设计模式示例
  8. 用对拍程序来debug错误程序的错误数据
  9. linux 无线网卡连接网络连接不上去,【已解决】Ubuntu 10.04 无线网卡 无法连接
  10. pycharm下载与安装
  11. 工作两年多的一个菜鸟感想
  12. dajngo3新建app,并且访问
  13. mapxtreme is still in evalutation!
  14. 关键词: iostream 和 iostream.h
  15. Vue-cli3项目案例
  16. 标定学习笔记(四)-- 手眼标定详解
  17. matlab的基本语法规则_MATLAB语法规则
  18. 利用腾讯云轻量服务器快速搭建网站CDN
  19. 记录一次大创项目配置服务器的心得
  20. Python并发编程

热门文章

  1. JDBC Requset 对应内容及功能介绍
  2. linux依赖关系查看命令,Linux下查看依赖关系
  3. 擦地机器人测评_iRobotBraavaJet240擦地机器人评测 单身御宅族的拖地帮手
  4. DTOJ#5203. 小 T 与灵石
  5. 华赛(HuaSy)[华为(HuaWei)赛门铁克(Symantec)]与华为关系
  6. [BZOJ1017][树形DP][背包DP]JSOI2008:魔兽地图DotR
  7. C语言程序设计:找素数
  8. NNDL 作业5:卷积与几种常见的卷积核
  9. 书论63 汤临初《书指》
  10. 如何在Mac上的iMovie剪辑中创建切换镜头效果?