华尔街金融巨头偷偷应用"2026年的黑科技",程序员看完集体崩溃,工资直接飙升至百万美元!

150 阅读11分钟

全球顶级做市商Citadel Securities正在培训其开发人员使用尚未正式发布的C++26标准,这一举措展示了高频交易领域技术竞争的激烈程度。"当我听说他们在用尚未正式发布的C++版本时,我第一反应是:这不可能吧?这就像开F1赛车的人已经在用2030年的引擎了,而我们还在研究现在的模型。" ——一位硅谷资深开发者评论道

Citadel Securities作为全球领先的市场做市商,需要随时准备匹配买家和卖家,为机构和散户投资者提供流动性。据efinancialcareers报道,该公司在美国股票交易量中占比约23%,这使得系统可靠性和执行速度成为公司运营的关键要素[1]。

image.png

什么是做市商?想象一下超市里的中间商

如果你不熟悉金融术语,可以这样理解:做市商就像是股票市场的"超市"。当你想买入或卖出股票时,做市商总是随时准备接单,确保市场流动性。就像你半夜三点想买牛奶,便利店总是开着门一样——但在金融市场中,交易不是以秒而是以毫秒甚至微秒计算的!

Herb Sutter于2024年从微软加入Citadel Securities担任技术研究员(technical fellow),此前他在微软工作了约20年。作为ISO C++标准委员会主席,Sutter负责领导公司的C++培训计划,确保公司能够充分利用最新的编程语言进展。即使经验不足的编码人员也可以通过熟悉C++新版本的新功能来获得一些收益。在面试过程中一个优势脱颖而出,可以在Citadel Securities担任工作,需要C++经验提供高达35万美元的工作。

C++26异步框架:交易系统的"秘密武器"

在采访中,Sutter特别强调了即将在C++26标准中推出的异步框架(async framework)的重要性,尽管这一标准预计要到一年后才会正式发布。

"我朋友在一家普通金融科技公司工作,他们还在为升级到C++20绞尽脑汁,而这些家伙已经在用C++26了?这不是技术领先,这简直是生活在未来啊!" ——某科技论坛用户评论

异步框架到底是什么?这里有个生活化的例子

想象你在一家咖啡厅点单。有两种服务模式:

  1. 同步模式:你点完咖啡后,站在柜台前等待,直到咖啡做好才能离开
  2. 异步模式:你点完咖啡后,服务员给你一个号码牌,你可以去找座位、看书、回邮件,咖啡做好后他们会叫你

C++的异步框架就像那个号码牌系统,让计算机可以同时处理多个任务,而不是傻等一个任务完成。在高频交易中,这意味着系统可以同时处理数以万计的交易请求,而不会因为某个请求卡住而延误其他操作。

"我特别兴奋的是C++的异步框架,它将在约一年后发布的下一个标准中推出,"Sutter解释道。"异步使用在C++中非常重要,因为我们越来越需要并发和并行地处理任务。"[2]

Sutter进一步阐述了并发和并行的区别,以及为什么异步框架对Citadel Securities如此重要:

"并发是同时做多件事的概念,这在网络云世界中至关重要,无论是等待云计算能力还是AI令牌处理。并行性则是将一个大型计算任务分散到多台机器上以加快获取结果的速度。"

通俗理解并发与并行

  • 并发:想象一位妈妈一边做饭,一边帮孩子检查作业,一边接电话。她在"同时"处理多个不同的任务。
  • 并行:想象一个大型餐厅的后厨,有10个厨师同时制作不同的菜肴。他们在并行处理同一类任务。

"C++26异步框架最令人印象深刻的是,它能够同时处理这两种元素——一种是涉及隐藏和等待的元素,另一种是同时做很多事情的元素。这些是截然不同的事物,在一个框架中同时做好这两点令人惊叹。"[2]

对于交易系统而言,这种能力至关重要。"想想交易系统需要做什么。交易请求不断通过网络传输,你永远不知道客户什么时候想要买入或卖出,因此作为做市商,你必须随时准备就绪。这意味着需要非常快速响应、高效运行并且速度超快。执行力极其重要,这就是我们投资异步框架的原因,"Sutter表示。[2]

早期采用的技术优势:领先对手一步甚至十步

Citadel Securities已经在生产环境中使用C++26的std::execution标准,这使得公司不仅能够提前获得技术优势,还能够参与语言标准的发展。

"在科技界,有句老话:'要么创新,要么死亡'。看来华尔街已经把这句话实践到了极致。普通公司可能还在考虑要不要升级技术栈,而这些金融巨头已经在实战中检验未来的技术了。" ——一位技术评论员分析道

为什么这很重要?现实生活中的类比

这就像F1赛车团队使用尚未面市的新型引擎技术——他们不仅获得了速度优势,还能直接向引擎制造商反馈问题和改进建议,从而影响最终产品的设计。在金融交易中,这种微小的速度优势可能意味着每天数百万美元的差距。

根据Herb Sutter在其个人博客的发文,Citadel Securities非常积极地在实时交易系统中采用关键的技术进步。"我们已经将C++26的std::execution用于生产环境中的整个资产类别,并将其作为我们新消息传递基础设施的基础。"[3]

"在Citadel Securities,提前使用那些在数月或数年后才会被其他人使用的技术有助于建立经验和熟悉度——特别是对于像异步框架这样的核心功能,"Sutter解释道。"此外,我们一直在提供反馈并建议对标准进行调整,这些建议正在被采纳。因为我们在生产环境和大规模场景中使用新标准,我们能够参与语言的演进,这非常棒。"[2]

这与金融行业的普遍做法形成鲜明对比。根据帝国理工学院访问教授Paul Bilokon的说法,大多数银行仍然停留在C++17标准上,通常在采用新技术方面较为保守[1]。

"普通程序员:'太好了,我们终于准备好升级到C++20了!' Citadel程序员:'哦,我们已经在生产环境用C++26了,还顺便修改了几个标准。'" ——Twitter上的一则热门程序员玩笑

C++在高频交易中的关键地位

C++被视为一种专业化的编程语言,在高频交易公司和交易所中广泛使用。与一些更易于使用的语言相比,C++提供了更精细的内存控制和更高的执行效率,这对于对性能有极高要求的金融系统至关重要。

为什么是C++而不是Python或Java?

想象你需要制作一款超级精确的瑞士手表。你可以选择:

  • 使用预制的零件和工具(类似Python):容易上手,但精度和速度受限
  • 使用半定制工具(类似Java):平衡了易用性和性能
  • 完全手工打造每个零件(类似C++):极其困难且耗时,但能达到最高精度和速度

对于高频交易来说,那毫秒甚至微秒的差异就是胜负手,所以他们选择了最困难但控制最精确的C++。

高频交易(HFT)使用强大的计算机程序在几分之一秒内处理大量订单。据Investopedia报道,知名的HFT公司包括Tower Research Capital、Citadel LLC和Virtu Financial[4]。在这个领域,执行速度可能是毫秒甚至微秒级的差异,这能带来显著的竞争优势或劣势。

为了理解这种速度差异的重要性,考虑一下:光线在1纳秒内大约传播30厘米。高频交易公司会将其服务器放在尽可能靠近交易所的位置,以减少信号传输时间。在这个世界里,编程语言的效率可能意味着数百万美元的差异。

Citadel Securities在其公司博客上发表的一篇文章中强调,可靠和有弹性的系统对其业务至关重要:"我们在Citadel Securities所做的工程工作为支持全球交易的关键系统提供动力——确保我们始终活跃在市场中。可靠和有弹性的系统不仅重要,而且对我们的业务至关重要——如果我们不能可靠地成为交易的另一方,我们就无法经营业务。"[5]

招聘视角:想加入这个"未来派"公司吗?

对于希望展示C++技能的求职者,Sutter提供了务实建议:

"展示C++技能的一种方式是谈论你最期待C++26中的哪些功能,描述哪些功能曾经帮助过你,或分享你最近学到的新知识。我想知道你是否有好奇心,是否专注于持续学习,这一点对任何编程语言都适用。展示对软件进步的好奇心和知识很重要,同时表明你了解有多种工具可用,以及如何将它们结合使用。"[2]

"这简直就是明示啊!如果你想进Citadel,现在就该开始研究C++26了,而不是等它正式发布才开始学。这些公司不是在找跟随者,他们在找领导者和前瞻性思考者。" ——一位科技招聘顾问评论道

对于有意加入Citadel Securities的年轻工程师,Sutter建议要尽早获取实际工作经验:

"我鼓励年轻工程师尽早获取尽可能多的工作经验。我在加拿大滑铁卢大学就读,那里有一个著名的合作项目,这对我非常有帮助,但还有许多其他类似项目。关键是获得一些工作经验,这样等你毕业时,已经在真实环境中使用你的技能一段时间了。我们在候选人中看到的最大区别是他们使用技术解决商业问题的能力。了解数据结构、编程语言等是工具箱中的重要工具,但真正让你脱颖而出的是解决业务问题的能力。"[2]

技术前瞻性作为竞争战略

你可能在想:"我又不是华尔街的高频交易程序员,这与我有什么关系?"其实很简单:不管你在哪个行业,技术前瞻性思维都是宝贵的。不要满足于学习当前技术,而是要关注即将到来的发展。哪怕你无法像Citadel那样"生活在未来",至少可以比大多数同行提前一步了解和实践新技术。

正如Sutter所总结的:"当关键功能已经准备好并今天就能带来实际价值,我们只需稍加努力就能获得它们,没有理由等到明天再使用它们。这种模式的好处之一是,我们可以通过提前在生产环境中使用这些关键功能来'生活在未来',不仅可以更早地获得好处,还可以开始积累使用这些很快将在各处常规使用的酷炫功能的经验。"[3]

Citadel Securities的案例表明,在技术驱动的金融领域,能够预见并快速采用新兴技术的公司往往能够获得显著的竞争优势。对于技术专业人士而言,持续学习和适应新技术不仅是职业发展的关键,也是进入顶级金融科技公司的敲门砖。


参考资料

  1. efinancialcareers, "Citadel Securities' new coding guru suggests you need to get with C++26"
  2. DNyuz, "Why Citadel Securities is training its developers on a coding language that hasn't even been released yet"
  3. Herb Sutter's Blog, "Living in the future: Using C++26 at work"
  4. Investopedia, "High-Frequency Trading (HFT): What It Is, How It Works, and Example"
  5. Citadel Securities, "Sea Change in C++: Why Opportunities Abound"