高频交易(HFT)已成为现代金融市场中一股强大的力量。仅在 20 年前,大部分交易量发生在纽约证券交易所等交易所,那里的人们穿着鲜艳的服装, gestures 并尖叫他们的交易意图。如今,交易主要发生在数据中心的电子服务器中,计算机通过网络消息传递交易意图。从物理交易所到电子平台的这种转变对于高频交易公司尤其有利,这些公司在新环境的基础设施上投入了巨资。
尽管交易场所及其参与者的外观发生了巨大变化,但所有交易者(无论是电子交易者还是人工交易者)的目标仍然相同:以更高的价格从一个地点/交易者购买资产并将其出售给另一个地点/交易者。人工交易者和高频交易之间的决定性区别在于,后者可以更快、更频繁地做出反应,并且投资组合持有期非常短。典型的高频交易算法在亚毫秒时间尺度上运行,人工交易者无法与之竞争,因为人眼眨一下大约需要 300 毫秒。由于高频交易算法彼此竞争,它们面临两个挑战
• 它们每微秒接收大量数据。
• 它们必须能够对接收到的数据做出极快的反应,因为它们观察到的信号的盈利能力衰减得非常快。
在线算法 提供了一类适用于高频交易应用程序的自然算法。在在线问题中,新的输入变量按顺序显示。在每个新输入之后,算法都需要做出决策——例如,是否提交交易。这与离线问题形成鲜明对比,离线问题假设在做出决策时可以获得所有输入数据。计算机科学和运筹学应用中解决的许多实际优化问题都是在线问题。1
除了解决在线问题外,高频交易算法还需要对市场更新做出极快的反应。为了保证快速的反应时间,高效的内存处理对于实时交易算法是必要的。将大量数据保存在内存中会降低任何 CPU 的速度,因此算法仅使用最少量的数据和参数非常重要,这些数据和参数可以存储在快速访问的内存中,例如 L1 缓存。此外,这些因素应反映市场的当前状态,并且必须在观察到新的数据点时实时更新。总而言之,需要保存在内存中的因素数量越少,更新每个因素所需的计算越简单,算法对市场更新做出反应的速度就越快。
基于速度要求和高频交易问题的在线性质,单遍算法 类特别适用于高频交易应用。这些算法一次接收一个数据点,并使用它来更新一组因素。更新后,数据点被丢弃,只有更新后的因素保留在内存中。
高频交易算法中可能会出现三个问题。第一个是流动性运行均值的估计;这对于高频交易确定可能在特定电子交易所成功执行的订单规模非常有用。第二个问题是运行波动率估计,这可以帮助量化头寸的短期风险。第三个问题是运行线性回归,它可用于交易相关资产对。
这些问题中的每一个都可以使用在线单遍算法有效解决。在本文中,我们回测了单遍算法在高度流动性的 ETF(交易所交易基金)的限价订单簿数据上的性能,并描述了如何在实践中校准这些算法。
高频交易相对于其他市场参与者的一个优势是反应速度。高频交易公司能够看到市场中的每一个动作——即限价订单簿中包含的信息——并在微秒内做出反应。尽管某些高频交易算法可能会将其操作基于市场外部的信息来源(例如,通过解析新闻报道、测量温度或评估市场情绪),但大多数算法的决策仅基于到达市场的消息。据估计,纽约证券交易所每秒约有 215,000 次报价更新。4 高频交易面临的挑战是以允许他们做出决策的方式处理这些数据,例如何时建仓或降低风险。本文中使用的示例假设高频交易可以观察到最佳买入价和卖出价的每次更新,包括最佳买入价和卖出价规模。限价订单簿中包含的这部分信息通常称为 Level-I 订单簿信息。
本文详细描述了以下三个在线算法示例,每个示例都以高频交易中的应用为动机
• 在线均值算法。 通过构建一个因子来说明,该因子预测未来固定期限内可用的流动性,定义为最佳买入价和最佳卖出价的规模之和。此数量可能有助于估计在给定延迟下可能以最佳报价执行的订单规模。
• 在线方差算法。 通过构建一个因子来说明,该因子预测未来固定期限内的已实现波动率。此数量可能有助于估计持有库存的短期风险。
• 在线回归算法。 通过构建一个因子来说明,该因子预测两个相关资产的多空头寸的预期损益(利润和损失)。这可能有助于构建一个信号,指示何时多空头寸可能有利可图。
在这三个案例中,该算法都有一个参数 alpha,它控制旧信息被遗忘的速度。图 1 绘制了原始流动性度量(买入价规模加上卖出价规模),以蓝色表示。红色和绿色分别表示在线流动性因子,alpha=0.9 和 alpha=0.99。请注意,随着 alpha 接近值 1,信号变得更平滑,并有效地跟踪了基础数据的趋势。
图 2 绘制了不同 alpha 值的在线波动率度量。再次注意,对于较大的 alpha,度量更平滑。虽然较大的 alpha 提供更平滑的信号,但它也更滞后于潜在趋势,因为它赋予旧数据很大的权重。正如稍后讨论的那样,选择 alpha 值需要在平滑信号和减少趋势滞后之间进行权衡。
为了说明在线回归算法,我们查看了 SPY 和 SSO 的中间价格时间序列,这两个 ETF 高度相关(SSO 是 SPY 的双杠杆版本)。如图 3 所示,两种资产之间的关系在一整天中似乎非常接近线性。图 4 绘制了两个 alpha 值的在线均值和截距。
顾名思义,单遍算法 恰好读取每个输入变量一次,然后丢弃它。这种类型的算法在内存处理方面非常高效,因为它只需要最少量的数据存储在内存中。本节介绍在线单遍算法的三个重要示例:指数移动平均线、指数加权方差和指数加权回归。下一节将介绍这些算法在高频交易中的应用。
首先,让我们简要看一下时间序列的简单移动平均线。这是对固定大小移动窗口上的时间序列均值的估计。在金融领域,它通常用于检测价格趋势,特别是通过比较两个简单移动平均线:一个在长窗口上,另一个在短窗口上。在另一个应用中,过去五分钟的平均交易量可以用作对下一分钟交易量的预测。与指数移动平均线相反,简单移动平均线无法用单遍算法解决。
令 (Xt)t = X0,X1,X2, ... 为观察到的输入变量序列。在任何给定时间 t,我们都希望预测下一个结果 Xt+1。对于 M > 0 且 t ≥ M,窗口大小为 M 的简单移动平均线定义为时间序列 (Xt)t 中最后 M 个观测值的平均值——即 。移动平均线也可以通过以下递归计算
。 (1)
虽然这是一种在线算法,但它不是单遍算法,因为它需要精确访问每个输入数据点两次:一次将其添加到移动平均线,然后再将其从移动平均线估计中删除。这种算法称为两遍算法,需要将大小为 M 的整个数组保存在内存中。
与常规平均线 相比,指数加权平均线为较旧的观测值分配指数递减的权重
这里 α 是用户选择的加权参数,需要满足 0 < α ≤ 1。由于这种指数加权平均线比旧数据点更重视最近的输入,因此通常被认为是简单移动平均线的良好近似值。
与简单移动平均线相比,指数加权平均线考虑了所有先前的数据,而不仅仅是最后 M 个观测值。为了进一步比较简单移动平均线和指数加权平均线,图 5 显示了在估计中,作为 α 函数,有多少数据点接收到 80%、90%、95%、99% 和 99.9% 的权重。例如,如果 α = 0.95,则最后 M = 90 个观测到的数据点占估计值的 99%。作为警告,如果时间序列 (Xt)t 具有非常重的尾部,则指数平滑平均线可能会被极端观测值支配,而移动平均线不太容易受到极端观测值的影响,因为这些观测值最终会从观测窗口中消失。频繁重启估计程序可以解决指数平滑的这种长期记忆效应。
在高频交易中偏爱指数移动平均线而不是简单移动平均线的原因是,它可以有效地使用单遍算法解决,该算法最初在 Brown (1956)3 中引入。
(2)
此公式还提供了参数 α 的简单解释,即控制最新观测值与所有先前观测值相比的权重。
上一节中描述的指数平滑估计了时间序列的移动平均线。在金融领域,时间序列的波动率通常也是一个重要因素。广义来说,波动率应捕捉时间序列围绕其均值的波动程度。对于高频金融数据,没有广泛接受的波动率定义。本节认为波动率是时间序列 (Xt)t 中数据点的标准差(方差的平方根)。与上一节的指数加权移动平均线类似,可以构建一个在线单遍算法,该算法使用指数加权方案估计时间序列 (Xt)t 的波动率。
随机变量的方差定义为 Var(X) = E[X - E[X])2]。估计时间序列的指数加权方差需要两个估计量:一个估计均值 E[X],另一个估计方差
然后,下一个测量点 Xt+1 的标准差估计为 。同样,输入参数 α ∈ (0,1) 由用户选择,并反映与最新观测数据输入相比,分配给旧数据点的权重。这里,我们将方差的估计量初始化为 1,这是一个相当随意的选择。另一种方法是设置一个初始“预热”期,在此期间观察时间序列 (Xt)t,并且可以使用该预热时间窗口内序列的标准方差估计量来初始化估计量。当然,可以使用类似的方法来初始化指数加权平均估计量的估计量。
最后一个示例是指数加权线性回归模型的在线单遍算法。该模型类似于普通线性回归,但再次(根据指数加权)比旧观测值更重视近期观测值。如前所示,这种回归方法在高频交易策略中非常有用,可用于估计不同资产的关系,例如,这可以用于创建配对交易策略。
在此模型中,我们考虑二维时间序列 (Xt,Yt)t,并推测变量 X 和 Y 通过线性关系相关,该线性关系被均值为零的噪声项 εt 破坏。也就是说,
(3)
变量 Y 称为响应变量,而 X 称为解释变量。为简单起见,这里我们仅假设一个解释变量,但扩展到多个解释变量很简单。在线性回归的标准离线方法中,参数 β0 和 β1 在观察到所有数据点后进行校准。这些数据点收集在向量 Y = (Y0, Y1, ... , Yt)T 和矩阵中
矩阵 X 中的一列对应于公式 3 中的截距。如果我们进一步将参数 β0 和 β1 写成向量——即 β = (β0,β1)T ——那么 Y 和 X 之间的关系可以方便地用矩阵表示法写成
Y = Xβ + ε
其中 ε 是随机噪声项的向量,并且这些误差项中的每一个的均值都为零。
估计参数 β 最常用的方法是使用普通最小二乘法估计——即,选择 β,使其最小化残差平方和 。此最小化问题的解是
。
与均值和方差估计一样,对于参数 β 的估计,最近的数据点应该更重要。此外,对于快速计算,需要 β 的单遍算法。
接下来,让我们考虑一种递归方法,该方法按顺序更新 β 并最小化
同样,参数 α 需要在 (0,1) 范围内,并且由用户选择。加权最小二乘估计的参数 β0 和 β1 可以使用有效的在线单遍算法计算。在该算法的每个步骤中,都需要将 2 × 2 矩阵 Mt 和 2 × 1 向量 Vt 保存在内存中,并根据以下递归使用新的数据点进行更新
对于均值和方差估计量,递归的初始化可以使用预热期来完成。最后,在时间 t 之后,β 的最佳估计是 。在文献中,这种方法也称为具有指数遗忘的递归最小二乘法。2
如何确定 alpha 的最佳值,即所有这些在线模型的一个参数?我们对所有三个模型的方法是定义我们要预测的响应函数,并最小化响应 ri 和我们的因子 fi 之间的平方误差
此方法在历史时间序列中找到最佳 alpha。另一种方法是也在线估计最佳 alpha。然而,这需要更多的工作,并且超出了本文的范围。
现在,我们提供有关所述在线估计器的详细信息,并在给定的数据集上估计最佳 alpha。
1. 流动性均值估计器定义为
其中索引 i 表示报价时间。响应定义为 10 秒后的流动性
其中 bsi(10) 表示第 i 个报价后 10 秒的买入价规模。对 alpha 运行优化例程表明,给定数据的最佳 alpha 为 0.97,如图 6 所示,该图是因子和响应的散点图。
2. 波动率估计器定义为
其中索引 i 表示秒级的实时。响应定义为接下来一分钟的已实现波动率
同样,搜索不同的 alpha 值会产生给定数据集的最佳 alpha 值 0.985。图 7 显示了因子和响应的散点图。
3. 配对交易回归估计器定义为
其中索引 i 表示报价时间。因子 表示 SPY 相对于 SSO 的价值——也就是说,如果该量为正,则 SPY 相对便宜,并且做多 SPY 的交易可能是有利可图的。
响应定义为接下来一分钟内交易的损益,该交易做多一手 SPY 并做空 β 手 SSO
其中 表示
之后 60 秒的 SPY 价格。响应 ri 表示以下多空策略的损益:“在时间 i 买入 1 手 SPY 并卖出 β 手 SSO,在 60 秒后退出头寸。”
在分析的数据集中,最佳 alpha 值变为 0.996。图 8 是因子和响应的散点图。
在线单遍算法在高频交易中发挥着重要作用,在高频交易中,它们每微秒接收大量数据,并且必须能够对接收到的数据做出极快的反应。本文讨论了高频交易算法面临的三个问题:流动性运行均值的估计,这对于确定可能在特定电子交易所成功执行的订单规模非常有用;运行波动率估计,这可以帮助量化头寸的短期风险;以及运行线性回归,它可用于交易相关资产对。在线单遍算法可以帮助解决这些问题中的每一个。
1. Albers, S. 2003。在线算法:综述。数学规划 97(1-2): 3-26。
2. Astrom, A.,Wittenmark, B. 1994。自适应控制,第二版。Addison Wesley。
3. Brown, R. G. 1956。用于预测需求的指数平滑。Arthur D. Little Inc.,第 15 页
4. Clark, C. 2011。提高市场数据的速度和透明度。交易所; https://exchanges.nyx.com/cclark/improving-speed-and-transparency-market-data。
喜欢它,讨厌它?请告诉我们
JACOB LOVELESS 是 Lucera 的首席执行官,曾任 Cantor Fitzgerald 的高频交易主管。 Loveless 先生在过去 10 年中几乎在每种电子资产的高频交易集团和交易所工作过。在金融界之前,Loveless 先生曾担任美国国防部的特殊承包商,专注于对无法讨论的事物进行启发式分析。在此之前,他是 Data Scientific 的首席技术官兼创始人,Data Scientific 是分布式系统分析的先驱。
SASHA STOIKOV 是康奈尔金融工程曼哈顿分校 (CFEM) 的高级研究员,曾任 Cantor Fitzgerald 高频交易集团的副总裁。他曾在 Galleon Group 和 Morgan Stanley 担任顾问,并在纽约大学库朗研究所和哥伦比亚大学 IEOR 系担任讲师。他拥有德克萨斯大学的博士学位和麻省理工学院的理学学士学位。
ROLF WAEBER 是 Lucera 的定量研究助理,此前曾在 Cantor Fitzgerald 高频交易集团担任定量研究员。他参与了德意志联邦银行巴塞尔协议 II/III 监管框架内流动性风险调整的研究。 Rolf 于 2013 年在康奈尔大学获得运筹学和信息工程博士学位。他拥有瑞士苏黎世联邦理工学院的数学学士学位和硕士学位。
© 2013 1542-7730/13/0800 $10.00
最初发表于 Queue vol. 11, no. 8—
在 数字图书馆 中评论本文
Catherine Hayes, David Malone - 质疑评估非加密哈希函数的标准
尽管加密和非加密哈希函数无处不在,但在它们的设计方式上似乎存在差距。存在许多由各种安全需求驱动的加密哈希标准,但在非加密方面,存在一定的民间传说,尽管哈希函数历史悠久,但尚未得到充分探索。虽然针对现实世界数据集的均匀分布很有意义,但当面对具有特定模式的数据集时,这可能是一个挑战。
Nicole Forsgren, Eirini Kalliamvakou, Abi Noda, Michaela Greiler, Brian Houck, Margaret-Anne Storey - DevEx 实践
随着领导者寻求在财政紧缩和人工智能等变革性技术的背景下优化软件交付,DevEx(开发者体验)在许多软件组织中越来越受到关注。技术领导者凭直觉接受,良好的开发者体验可以实现更有效的软件交付和开发者幸福感。然而,在许多组织中,旨在改善 DevEx 的拟议举措和投资难以获得支持,因为业务利益相关者质疑改进的价值主张。
João Varajão, António Trigo, Miguel Almeida - 低代码开发生产力
本文旨在通过介绍使用基于代码、低代码和极端低代码技术进行的实验室实验结果来提供有关该主题的新见解,以研究生产力方面的差异。低代码技术已清楚地显示出更高的生产力水平,为低代码在短期/中期内主导软件开发主流提供了强有力的论据。本文报告了程序和协议、结果、局限性和未来研究的机会。
Ivar Jacobson, Alistair Cockburn - 用例至关重要
虽然软件行业是一个快节奏且令人兴奋的世界,其中不断开发新的工具、技术和技巧来为商业和社会服务,但它也很健忘。在其快速前进的匆忙中,它容易受到时尚的 whims,并且可能会忘记或忽略针对其面临的一些永恒问题的经过验证的解决方案。用例最初于 1986 年引入,并在后来普及,是这些经过验证的解决方案之一。