Java在高频交易等金融业的应用介绍 - Oracle


量化分析师和金融工程师的职业前景正在飙升。著名的金融工程硕士学位课程培养了新一代技术人员,他们使用编程工具使他们的交易算法大放异彩。我们也不要忘记 2020 年初大流行导致的市场崩盘。伦敦 LMAX 集团首席执行官戴维·默瑟( David Mercer)表示,这证明了系统的弹性:“就在 2020 年,我们的银行交易量翻了一番,其中大部分来自算法服务台——所以现在大约 85% 的银行交易量来自算法服务台。 ”
 Java 仍然对股票市场如何运行至关重要的原因:
1969 年,Instinet是第一个用于在股票市场以外交易金融产品的电子通信网络 (ECN)。1970 年代,计算机化的订单流开始出现,而 1980 年代则出现了迈克尔·布隆伯格的同名终端。在 1990 年代初期,现在占主导地位的金融信息交换 (FIX) 协议开始于所罗门兄弟和富达之间的消息传递实验。
到 1990 年代后期,程序员 Joshua Levine 在 1980 年代大学辍学后一直将他的软件用于不同的华尔街公司,他创建了一个名为Island ECN的小订单匹配系统。Island 是用 FoxPro 为 MS-DOS 2.6 版编写的,它有一个提高速度的绝妙技巧:在创建新订单之前,检查缓存中是否有来自已取消订单的记录。Island 很快被纳斯达克采用。
2002 年,Instinet 收购了 Isl​​and,一年后,它将代码移植到 Java。
在他的博客中,Levine 解释说:“虽然 Java 版本有一些*非常*好的代码并且运行速度快了几个数量级 - 这个[原始]代码特别有趣,正是因为它在如此缓慢的平台上运行并且非常容易阅读,强调了通常架构和算法比原始平台速度更重要的想法。”
Java 不仅速度快得多:到 2000 年代初,由于其易用性、安全性、可移植性、动态类加载、运行时线程创建等,Java 正在彻底改变编程。
高频交易 (HFT) 竞赛正在激烈进行,而thinkorswim(现在归 TD Ameritrade 所有)等基于 Java 的工具正在使算法交易对每个人都可用。
2004 年,高盛开始构建名为 Caramel 的 Java 集合框架,该框架于 2012 年开源,后来更名为 Eclipse Collections。到 2011 年,Oracle 技术简报估计超过 80% 的电子交易应用程序和几乎所有 FIX 引擎都是用 Java 编写的。
该语言的流行为金融公司创造了一个良性循环:“Core Java 的开发人员在伦敦和其他金融中心随处可见,这使得高频交易公司能够挑选最适合他们需求的员工,” Java 冠军兼伦敦Chronicle Software首席执行官Peter Lawrey说。
由 Java 支持的新型交换也在不断涌现。芝加哥气候交易所于 2010 年用 Java 编写,旨在交易二氧化碳抵消。大约在同一时间,今天仍然很受欢迎的LMAX Disruptor 开创了使用“机械同情”等技术加速外汇(外汇)交易的新方法——理解 CPU 如何在并发线程进程中使用它们的内存。
另一场革命正在酝酿中:开源软件运动。正如许多Java 杂志读者所知,2007 年 Sun Microsystems 发布了基于 GNU 通用公共许可证的 OpenJDK。随后几年,开源股票交易项目蓬勃发展。
今天在 GitHub 上,您可以找到诸如Exchange-CoreTa4jCoin TraderChronicle Queue等强大的基于 Java 的开源系统,据 Lawrey 称,这些系统“被世界上的一级银行广泛用于低延迟交易系统的微服务之间的持久性(大约一微秒)和消息传递。”
其他 Java Quant 的最爱包括

  • Strata,一个分析和市场风险库
  • JQuantLib,一个量化金融框架
  • 数学金融算法的finmath 库
  • 明确命名的QuantComponents
  • DRIP,其库涵盖固定收益、资产配置、交易成本分析和 XVA(风险)指标