干货 | 高频交易对IT人才的要求

前言

今天,你AI了没?

关注:决策智能与机器学习,学点AI干货



算法就是计算的方法,自古已有关于计算这门学问的研究,到现代社会发展为计算机科学。根据使



请注意,高频交易(HFT)是一门极具技术性的学科,它吸引了来自数学、物理、计算机科学和电子工程领域中最优秀的人才,通常是在研究生阶段,或者在某个特定领域拥有多年行业经验。在一家高频交易公司获得一个职位,虽然通常利润丰厚,但在学习和努力方面也需要大量投入


什么是高频交易?

高频交易(HFT)一词涵盖了算法交易的各种类型。就本文而言,它意味着在极低延迟的情况下以极高的交易量执行交易。“低延迟”是关键词,以亚毫秒级的规模完成交易。只有当更复杂的定制硬件可用时,这种延迟才会减少。比如,某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差。这种交易的速度如此之快,以至于有些交易机构将自己的“服务器群组”(server farms)安置到了离交易所的计算机很近的地方,以缩短交易指令通过光缆以光速旅行的距离。


高频交易是一门极其神秘的学科。很难找到有关高频交易公司如何运作的信息。然而,招聘启事、供应商营销页面和奇怪的互联网文章确实提供了一些信息。Ultra-HFT(UHFT)也与其他形式的算法交易截然不同。它是高度技术驱动和非常定量的。一旦一种算法被部署(直到它变得无利可图),就几乎没有可自由支配的输入,这与低频系统交易形成鲜明对比,而低频系统交易通常会有一些人为判断。


这也是一个竞争激烈、常常令人沮丧的环境。如果一家交易所修改了它的架构,一个新的监管环境浮出水面,或者竞争对手能够以比你更快的速度利用流程,那么数月的研究可能会在一天之内就付之流水。正因为如此,它适合高度技术化、出于这个原因,它适合高技术,有纪律的人,他们渴望拥有自主权,同时还要承受相当大的压力。


机构思维

许多高频交易公司都是规模相对较小的公司,通常员工数量较低(约20-25人)。这意味着他们拥有强大的创业文化和精英思维。任何一家高频交易公司都会质疑你作为一名候选人能带来哪些在该公司尚不存在的东西。


考虑到奖金池是由许多员工共享的(虽然以加权的方式),你需要证明产生超过你工资和奖金份额产生收入的能力(直接或间接),否则,公司显然不值得雇佣你。这意味着你需要拥有一个公司目前不具备的独特技能,他们才可能考虑给你一个相应的职位。


这一过程的另一面是,你能够在公司内部“创造自己的角色”。公司甚至可能不会招聘,但如果他们觉得你在某个领域的技能足够强,他们可能会为你创造一个职位。高频交易公司的精英管理方式通常允许你在项目中拥有很大的自主权。因此,如果你希望与非常聪明和有能力的人在一个自我的环境中工作,那么高频交易可能适合你。


这样的工作通常比许多人所习惯的工作时间更长。当项目需要在截止日期前完成时,每周工作60-70小时并不罕见。然而,快节奏、IQ激励和薪酬通常超过了工作量。这可能适合你的生活方式,也可能不适合!


进入高频交易的途径

进入高频交易有几种途径,但其中大多数需要在以下一门或多门科学(如数学、物理、计算机科学或电子工程)中具备广泛的技术技能。个人可以通过以下途径进入高频交易公司:


研究所

许多高频交易的候选人是从相关领域研究所中直接雇用。这仅仅是因为根据博士生的工作/模块、发表的论文或学校的质量更容易评估候选人的能力。因此,如果你真的打算从事高频交易,那么对低延迟系统进行研究可能是一个很好的方法。从顶尖的技术学校(麻省理工学院、斯坦福大学、剑桥大学、帝国理工学院)挑选出最好的本科生,然后“训练”他们从事这份工作,这也并非闻所未闻。


行业专长

特定低延迟行业(如电信行业)的专家经常因其特定的领域知识而被聘用。尽管如此,一般来说,为了在最初的领域发挥良好的作用,这些人无论如何都有深厚的技术背景(通常是学术背景)。从事高性能计算项目(如欧洲核子研究中心的数据中心)或其他国家超级计算实验室的科学家也因其大数据经验而备受追捧。


金融交易所经验

任何对交易所内部运作有深入了解的个人都将受到高度追捧,因为他们能够帮助研究,利用交易所架构的新算法。


一个常见的误解是,申请高频交易职位很难要求具备广泛的金融背景。实际上,大多数高频交易公司对你的金融知识漠不关心,假设你在其他地方拥有广泛的技术专长,他们可以利用这些专长。


常见的技能

高频交易公司的角色相当多样化。公司里几乎每个人都有很高的技术背景,能够在该领域进行独立的研究由于高频交易本质上是一项“技术运动”,许多人将拥有计算机科学和电子工程背景,或来自电信等其它行业的低延迟专业知识。


在GPU或FPGA等特定类型的硬件领域,拥有深厚专业知识的个人也变得越来越普遍。


本质上,任何可以以某种方式减少交易生命周期延迟或提高算法计算执行速度的技能都可以在高频交易中找到。这种专门知识的例子包括:


▍交易所架构

广泛了解交易所如何运作是高频交易者的一项常见技能。了解订单簿的操作方式,以及特定交易所中复杂的技术堆栈,可以为你带来显著的优势。


处理器设计

高频交易涉及极短时间内的大量计算。了解任何能提高这些流程执行速度的方法都将是有利的。有丰富的硬件和处理器设计经验,尤其是在商用x86硬件以外的系统(GPU和FPGA等替代产品)上非常有用


低延迟网络

大部分交易生命周期延迟来自于网络堆栈。优化包处理、编写自定义网络模块或使用Infiniband交换网络的经验也很有吸引力。


监管理解

高度了解美国的NMS和欧盟的MiFID等贸易监管环境,这对高频交易业务至关重要。


内核优化

这些需求的共同主题是减少延迟和提高执行速度。因此,为了获得加速而重写软件内核的某些部分是很常见的。Linux内核修改的经验对许多高频交易公司都是有益的


在线算法

虽然我们提到了延迟/执行,但没有过多地讨论高频交易算法。这些通常包括均值、方差和线性回归的“滚动”计算。因此,任何具有高通量时间序列分析经验的人都是有益的


编程语言

尽管许多超高频公司已经转向定制硬件,但一些对延迟不太敏感的系统交易公司仍然使用多线程C、C++和Java(custom garbage collection)。对这些语言和并行处理有着经验丰富的人将对某些公司具有吸引力。


可以看出,这些技能通常需要具有很强技术性的人才,同时也需要研究生及以上水平人的参与,或者在某些技术方面具有多年的行业经验。如果你的技能与上述任何一个领域相交叉,那么你应该会发现,你能够获得一些高频交易公司的面试机会。


找工作

与金融领域的大多数量化职位一样,获得工作的最佳途径是通过招聘机构。顶级股票型高频交易公司通常位于纽约和伦敦。优秀的招聘人员通常对该领域比较精通,能够就你的背景是否合适向你提供建议。但是要注意,这个标准设置得相当高!你可能要努力工作才能找到工作,这可能需要一些时间。


虽然直接应用于此类公司是可能的,但棘手的部分是弄清楚哪些公司实际上参与了高频交易!通常情况下,如果你在特定的技术领域很有名,公司会尝试直接招聘你。因此,如果你真的很想加入这样一家公司,尝试一下出版工作、参加一些会议或演讲,并提高自己的知名度,这可能是有利的


---本文经 量化投资与机器学习 授权转发

文章推荐



### 回答1: Spark Streaming 和 Flink 都是流处理框架,但在一些方面有所不同。 1. 数据处理模型 Spark Streaming 基于批处理模型,将流数据分成一批批进行处理。而 Flink 则是基于流处理模型,可以实时处理数据流。 2. 窗口处理 Spark Streaming 的窗口处理是基于时间的,即将一段时间内的数据作为一个窗口进行处理。而 Flink 的窗口处理可以基于时间和数据量,可以更加灵活地进行窗口处理。 3. 状态管理 Spark Streaming 的状态管理是基于 RDD 的,需要将状态存储在内存中。而 Flink 的状态管理是基于内存和磁盘的,可以更加灵活地管理状态。 4. 容错性 Flink 的容错性比 Spark Streaming 更加强大,可以在节点故障时快速恢复,而 Spark Streaming 则需要重新计算整个批次的数据。 总的来说,Flink 在流处理方面更加强大和灵活,而 Spark Streaming 则更适合批处理和数据仓库等场景。 ### 回答2: Spark Streaming 和 Flink 都是流处理框架,它们都支持低延迟的流处理和高吞吐量的批处理。但是,它们在处理数据流的方式和性能上有许多不同之处。下面是它们的详细比较: 1. 处理模型 Spark Streaming 采用离散化流处理模型(DPM),将长周期的数据流划分为离散化的小批量,每个批次的数据被存储在 RDD 中进行处理,因此 Spark Streaming 具有较好的容错性和可靠性。而 Flink 采用连续流处理模型(CPM),能够在其流处理过程中进行事件时间处理和状态管理,因此 Flink 更适合处理需要精确时间戳和状态管理的应用场景。 2. 数据延迟 Spark Streaming 在处理数据流时会有一定的延迟,主要是由于对数据进行缓存和离散化处理的原因。而 Flink 的数据延迟比 Spark Streaming 更低,因为 Flink 的数据处理和计算过程是实时进行的,不需要缓存和离散化处理。 3. 机器资源和负载均衡 Spark Streaming 采用了 Spark 的机器资源调度和负载均衡机制,它们之间具有相同的容错和资源管理特性。而 Flink 使用 Yarn 和 Mesos 等分布式计算框架进行机器资源调度和负载均衡,因此 Flink 在大规模集群上的性能表现更好。 4. 数据窗口处理 Spark Streaming 提供了滑动、翻转和窗口操作等灵活的数据窗口处理功能,可以使用户更好地控制数据处理的逻辑。而 Flink 也提供了滚动窗口和滑动窗口处理功能,但相对于 Spark Streaming 更加灵活,可以在事件时间和处理时间上进行窗口处理,并且支持增量聚合和全量聚合两种方式。 5. 集成生态系统 Spark Streaming 作为 Apache Spark 的一部分,可以充分利用 Spark 的分布式计算和批处理生态系统,并且支持许多不同类型的数据源,包括Kafka、Flume和HDFS等。而 Flink 提供了完整的流处理生态系统,包括流SQL查询、流机器学习和流图形处理等功能,能够灵活地适应不同的业务场景。 总之,Spark Streaming 和 Flink 都是出色的流处理框架,在不同的场景下都能够发挥出很好的性能。选择哪种框架取决于实际需求和业务场景。 ### 回答3: Spark Streaming和Flink都是流处理引擎,但它们的设计和实现方式有所不同。在下面的对比中,我们将比较这两种流处理引擎的主要特点和差异。 1. 处理模型 Spark Streaming采用离散流处理模型,即将数据按时间间隔分割成一批一批数据进行处理。这种方式可以使得Spark Streaming具有高吞吐量和低延迟,但也会导致数据处理的粒度比较粗,难以应对大量实时事件的高吞吐量。 相比之下,Flink采用连续流处理模型,即数据的处理是连续的、实时的。与Spark Streaming不同,Flink的流处理引擎能够应对各种不同的实时场景。Flink的实时流处理能力更强,因此在某些特定的场景下,它的性能可能比Spark Streaming更好。 2. 窗口计算 Spark Streaming内置了许多的窗口计算支持,如滑动窗口、滚动窗口,但支持的窗口计算的灵活性较低,只适合于一些简单的窗口计算。而Flink的窗口计算支持非常灵活,可以支持任意窗口大小或滑动跨度。 3. 数据库支持 在处理大数据时,存储和读取数据是非常重要的。Spark Streaming通常使用HDFS作为其数据存储底层的系统。而Flink支持许多不同的数据存储形式,包括HDFS,以及许多其他开源和商业的数据存储,如Kafka、Cassandra和Elasticsearch等。 4. 处理性能 Spark Streaming的性能比Flink慢一些,尤其是在特定的情况下,例如在处理高吞吐量的数据时,在某些情况下可能受制于分批处理的架构。Flink通过其流处理模型和不同的调度器和优化器来支持更高效的实时数据处理。 5. 生态系统 Spark有着庞大的生态系统,具有成熟的ML库、图处理库、SQL框架等等。而Flink的生态系统相对较小,但它正在不断地发展壮大。 6. 规模性 Spark Streaming适用于规模小且不太复杂的项目。而Flink可扩展性更好,适用于更大、更复杂的项目。Flink也可以处理无限制的数据流。 综上所述,Spark Streaming和Flink都是流处理引擎,它们有各自的优缺点。在选择使用哪一个流处理引擎时,需要根据实际业务场景和需求进行选择。如果你的业务场景较为复杂,需要处理海量数据并且需要比较灵活的窗口计算支持,那么Flink可能是更好的选择;如果你只需要简单的流处理和一些通用的窗口计算,Spark Streaming是更为简单的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值