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