算法交易(也称为自动交易、黑盒交易或算法交易)使用遵循一组定义的指令(算法)的计算机程序进行交易。从理论上讲,交易可以以人类交易者不可能的速度和频率产生利润。
定义的指令集基于时间、价格、数量或任何数学模型。除了为交易者提供获利机会外,算法交易通过排除人类情绪对交易活动的影响,使市场更具流动性和交易更加系统化。
实践中的算法交易
假设交易者遵循这些简单的交易标准:
- 当 50 天移动平均线高于 200 天移动平均线时,买入 50 股。 (移动平均线是过去数据点的平均值,可以消除日常价格波动,从而识别趋势。)
- 当 50 天移动平均线低于 200 天移动平均线时卖出股票。
使用这两个简单的指令,计算机程序将自动监控股票价格(和移动平均线指标),并在满足定义的条件时下达买卖订单。交易者不再需要监控实时价格和图表或手动下订单。算法交易系统通过正确识别交易机会自动执行此操作。
算法交易的好处
算法交易提供以下好处:
- 交易以最优惠的价格执行。
- 交易订单下达即时且准确(在所需水平执行的可能性很高)。
- 交易时间正确且即时,以避免重大的价格变化。
- 降低交易成本。
- 同时自动检查多个市场条件。
- 降低交易时人为错误的风险。
- 算法交易可以使用可用的历史和实时数据进行回测 看看它是否是一个可行的交易策略。
- 减少了人类交易者基于情绪和心理因素犯错的可能性。
今天大多数算法交易是高频交易(HFT),它试图利用基于预编程指令的多个市场和多个决策参数快速下达大量订单。
算法交易用于多种形式的交易和投资活动,包括:
- 中长期投资者或买方公司(养老基金、共同基金、保险公司)在不想通过离散的大宗投资影响股票价格时,会使用算法交易大量购买股票。
- 短期交易者和卖方参与者——做市商(如经纪公司), 投机者和套利者——从自动交易执行中受益;此外,算法交易有助于为市场上的卖家创造足够的流动性。
- 系统性交易者——趋势追随者、对冲基金或配对交易者(一种市场中性交易策略,将一对高度相关的工具(如两只股票、交易所交易基金 (ETF) 或货币)的多头头寸与空头头寸相匹配) ——发现编程他们的交易规则并让程序自动交易更有效率。
与基于交易者直觉或直觉的方法相比,算法交易为主动交易提供了更系统的方法。
算法交易策略
任何算法交易策略都需要确定的机会,该机会在提高收益或降低成本方面是有利可图的。以下是算法交易中常用的交易策略:
趋势跟踪策略
最常见的算法交易策略遵循移动平均线、通道突破、价格水平变动和相关技术指标的趋势。这些是通过算法交易实施的最简单和最简单的策略,因为这些策略不涉及进行任何预测或价格预测。交易是基于理想趋势的发生而启动的,通过算法可以轻松直接地实现这些趋势,而无需涉及预测分析的复杂性。使用 50 天和 200 天移动平均线是一种流行的趋势跟踪策略。
套利机会
在一个市场以较低的价格购买双重上市股票并同时在另一个市场以较高的价格出售它提供了价格差异作为无风险利润或套利。股票与期货工具可以复制相同的操作,因为价格差异确实不时存在。实施一种算法来识别这种价格差异并有效地下订单可以带来盈利机会。
指数基金再平衡
指数基金已经确定了重新平衡的时期,以使其持股与各自的基准指数持平。这为算法交易者创造了有利可图的机会,他们利用预期交易提供 20 至 80 个基点的利润,具体取决于指数基金重新平衡之前的指数基金股票数量。此类交易是通过算法交易系统发起的,以便及时执行并获得最优惠的价格。
基于数学模型的策略
经过验证的数学模型,如 delta 中性交易策略,允许对期权和基础证券的组合进行交易。 (Delta 中性是一种投资组合策略,由具有抵消正负 delta 的多个头寸组成——将资产(通常是有价证券)的价格变化与其衍生品价格的相应变化进行比较的比率——因此整体相关资产的 delta 总计为零。)
交易区间(均值回归)
均值回归策略基于这样一种概念,即资产的高价和低价是一种暂时现象,会周期性地恢复到其平均值(平均值)。识别和定义价格范围并在此基础上实施算法允许在资产价格进入和超出其定义范围时自动进行交易。
成交量加权平均价格 (VWAP)
成交量加权平均价格策略分解大订单并使用特定股票的历史成交量配置文件将动态确定的较小订单块发布到市场。目的是执行接近成交量加权平均价格(VWAP) 的订单。
时间加权平均价格 (TWAP)
时间加权平均价格策略分解大订单,并使用开始和结束时间之间平均划分的时间段将动态确定的较小订单块发布到市场。目的是在开始和结束时间之间以接近平均价格执行订单,从而最大限度地减少市场影响。
体积百分比 (POV)
在交易订单完全成交之前,该算法会根据定义的参与比率和市场交易量继续发送部分订单。相关的“阶梯策略”以用户定义的市场交易量百分比发送订单,并在股价达到用户定义的水平时增加或减少此参与率。
实施不足
执行短缺策略旨在通过权衡实时市场来最小化订单的执行成本,从而节省订单成本并从延迟执行的机会成本中受益。该策略将在股价上涨时提高目标参与率,在股价下跌时降低目标参与率。
超越通常的交易算法
有一些特殊类别的算法试图识别另一边的“事件”。这些“嗅探算法”——例如,由卖方做市商使用——具有内置智能,可以识别大订单买方是否存在任何算法。通过算法进行的这种检测将帮助做市商识别大宗订单机会,并使他们能够通过以更高的价格完成订单而受益。这有时被认为是高科技的抢占先机。一般来说,抢先交易的做法视情况而定被认为是非法的,并受到FINRA (金融业监管局)的严格监管。
算法交易的技术要求
使用计算机程序实现算法是算法交易的最后一个组成部分,伴随着回测(在过去股市表现的历史时期尝试算法,看看使用它是否会盈利)。面临的挑战是将已确定的策略转变为一个集成的计算机化流程,该流程可以访问交易账户来下订单。以下是算法交易的要求:
- 编程所需交易策略的计算机编程知识、聘请的程序员或预制交易软件。
- 网络连接和访问交易平台下订单。
- 访问将由算法监控的市场数据馈送,以获得下订单的机会。
- 一旦系统建成后在实际市场上投入使用之前对系统进行回测的能力和基础设施。
- 可用于回测的历史数据取决于算法中实现的规则的复杂性。
算法交易的一个例子
荷兰皇家壳牌 (RDS) 在阿姆斯特丹证券交易所 (AEX) 和伦敦证券交易所 (LSE) 上市。 我们首先构建一种算法来识别套利机会。以下是一些有趣的观察结果:
- AEX 以欧元交易,而 LSE 以英镑交易。
- 由于一小时的时差,AEX 比 LSE 早一个小时开盘,随后两个交易所在接下来的几个小时内同时交易,然后在 AEX 关闭的最后一个小时内仅在 LSE 交易。
我们能否探讨以两种不同货币对在这两个市场上市的荷兰皇家壳牌股票进行套利交易的可能性?
要求:
- 可以读取当前市场价格的计算机程序。
- 来自 LSE 和 AEX 的价格信息。
- GBP-EUR 的外汇(外汇)汇率馈送。
- 下单能力,可以将订单发送到正确的交易所。
- 历史价格反馈的回测能力。
计算机程序应执行以下操作:
- 从两个交易所读取 RDS 股票的传入价格。
- 使用可用的外汇汇率,将一种货币的价格转换为另一种货币。
- 如果存在足够大的价格差异(扣除经纪成本)导致获利机会,则程序应在价格较低的交易所下买单并在价格较高的交易所卖出订单。
- 如果订单按要求执行,套利利润将随之而来。
简单易行!然而,算法交易的实践并不是那么容易维护和执行。请记住,如果一个投资者可以进行算法生成的交易,那么其他市场参与者也可以。因此,价格在毫秒甚至微秒内波动。在上面的例子中,如果买入交易被执行但卖出交易没有因为卖出价格在订单进入市场时发生变化,会发生什么?交易者将留下一个未平仓头寸,使套利策略一文不值。
还有其他风险和挑战,例如系统故障风险、网络连接错误、交易订单和执行之间的时间延迟,以及最重要的是不完善的算法。算法越复杂,在投入使用之前就越需要进行更严格的回测。