高频交易

时间:2009-07-24 11:05:58

标签: finance hft

在过去的几周里,我发现了很多关于高频交易的文章。他们都谈到了计算机和软件对这一点的重要性,但由于它们都是从财务角度编写的,因此没有关于软件功能的详细信息?

任何人都可以从程序员的角度解释什么是高频交易?为什么计算机/软件在这个领域如此重要?

6 个答案:

答案 0 :(得分:59)

扩展Paul所说的话:

执行HFT或UHFT的服务器几乎总是在交换机的数据中心内并置。这样可以最大限度地减少延迟,并且允许算法使用Flash订单(可能很快就会被禁止)在订单被广播到市场之前首先查看订单流。许多算法将在几毫秒内评估一个订单,这是一个毫秒重要的游戏。众所周知,交易团队已经全力以赴,包括聘请内核开发人员构建自定义操作系统组件,以便更好地优化订单到达NIC之间的时间以及采取最终措施的时间。

目前常用的是一些大型策略:

第一个是在大块订单前交易。要使用保罗购买百万股IBM的例子,HFT算法将寻求购买压力。由于订单将被分割并且通常在多个交易所和暗池中执行,因此在不同交易所和暗池中的公司计算机将需要共享信息。 HFT算法将使用统计/机器学习模型来预测购买压力的大小,如果确定有足够的价格,它还会累积来自各个市场的股票,并试图以稍高的价格出售它们。

第二是流动性回扣交易,交易所将向市场参与者支付流动性。 (See Direct Edge Pricing)买入或卖出的股票只能在很短的时间内持有。目标只是收取回扣,并在其他所有方面实现收支平衡。

在这两种策略类型中,想法是在交易中制作便士(或分数)并且每天多次这样做。

您可能已经注意到有很多可用的HFT工作,因此交易变得更加拥挤。我认为这有点像21世纪初期的统计数据,最终交易不会很有利可图,因为很多玩家都试图制作它。

至于为什么软件很重要:毫秒很重要。延迟非常重要,代码需要紧凑,快速且坚固稳定。当市场对你不利时,有一个算法崩溃并被股票抓住并不是很有利可图。这些要求的工程设计必然不同,需要不同的技能。实时处理完整的订单确实需要一些马力和良好的算法。这很有趣也很有趣。

答案 1 :(得分:20)

任何HFT系统都有两个部分:

  1. 实时超低延迟交易 - 订阅来自许多不同来源的实时订单和价格信息,执行校准算法,旨在执行大订单,最小滑点(即您想购买100万IBM的股票在当天结束时没有过多地移动市场),或者只是试图在统计上基于短期套利赚钱。该系统还必须提供良好的风险和位置管理工具,以允许一个或多个人工操作员有效地监控和控制系统正在做什么。

  2. 隔夜/周等分析大量“蜱数据”(价格,时间和订单信息,以及系统之前交易活动的历史数据),寻求优化和“搜索”最佳部分#1实时执行的算法。即“校准”并测试将在#1中执行的算法。

  3. 第一个需要低延迟和非常好的市场准入(即以最小跳数与交换机的直接网络连接)。这部分通常必须使用非GC语言(如C或C ++)编写(半秒延迟,而垃圾收集器停止世界可能会非常昂贵)。第二种通常需要一个网格和许多良好的模拟和统计分析软件,AI算法等。

答案 2 :(得分:8)

我想补充一点,在这种交易中最流行的应用程序往往是CEP(复杂事件处理)。一些例子是Streambase,Apama和Aleri。另一方面,为了处理大量数据,人们使用高速数据库,如KDB,OneTick和Vhayu。

如果您想了解这种技术挑战,我建议您首先查看这些供应商。他们的营销材料将使您对业务应用程序以及技术挑战有一个良好的认识。

答案 3 :(得分:7)

在某些时候(例如在期货到期时),有必要每分钟进行数千笔交易 - 显然人类无法独立完成。这个BTW对于程序员来说是一个非常紧张的时间,好像什么都出错了,几乎没有恢复的机会 - 程序员倾向于看着他们的日志文件在他们的嘴里有点流动。

答案 4 :(得分:3)

您需要跟踪价格,快速决定上涨和下跌的内容以及相应的买卖。由于有很多不同的职位交易,您用于分析和执行交易的更好的软件可能会带来更多的资金。

更好意味着经常更新数据,精确定位有趣的趋势,以便您可以快速做出反应,在执行经常需要的操作时易于使用。

答案 5 :(得分:1)

  

为什么计算机/软件在这个领域如此重要?

最高性能和最低延迟是可取的,因为您对事物做出反应的速度越快,您可能赚的钱就越多。