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