算法交易简介以及TWAP、VWAP算法原理

算法交易视频:算法交易视频

1,交易成本:

交易成本分成两类,一类是显性成本,包括佣金(包括券商佣金(券商收取),交易经手费(交易所收取,千分之0.0487)和监管费(证监会收取,千分之0.02)),过户费(中国结算收取,千分之0.02),印花税(国家税务局收取,卖出千分之1)。这部分费用具有相对刚性,类似于固定成本,难以通过主动管理改变,因为这些费用都是一定要收的。一类叫做隐含成本,包含买卖的价差、冲击成本、择时成本、机会成本,这些成本类似于可变的成本,我们可以通过人为的干预,或者交易的方法去进行管理或者是控制。

2,名词解释:

冲击成本:我们发出的委托或者是指令导致股票价格变动,向我们不利的方向变动,直观来说就是我们例如去购买某一只股票,比如我们买100万股,如果我们直接下一笔100万股的委托,那我们将对市场造成很大的冲击,像这样的我们交易导致成交价格变化所引起的成本,我们叫做冲击成本。

择时成本,我有可能进行拆单,我拆单的过程中,原来的1分钟变成一个小时,一方面有可能导致我的股票的价格可能会自行的有些变动,这些价格变动的过程中,股票价格有可能往我们不利的方向变动,那我的建仓成本就上升了,这就是择时成本。

机会成本,比如我买100万股,我只买了10万股,还有90万股么有成交,那么价格上涨的话,那么没有成交的90万股,那么就损失了上涨的机会,那么这就是机会成本。

如果所示:

择时成本和机会成本我们统称为交易风险,这个冲击成本随着建仓的时间或者说我们拆单拆的越细,随着建仓时间的推移,建仓时间拉长,我的建仓成本呈下降的趋势,这个交易风险随着时间的拉长,我的建仓交易的风险越来越大,我们必须在交易风险和冲击成本之间有一个取舍,交易风险和冲击成本加总起来我们叫做交易成本,其实总的交易成本随着建仓时间的增长一般是先下降,然后上升。

3,什么是算法交易

我们可以给算法交易一个比较明确的定义,算法交易是什么呢?根据一些特定的交易计划,我们根据计算机来制定下单的时机,下单的价格还有下单的数量。像一些大额的交易拆分成小额的交易,然后提高订单的执行效率和隐蔽性,可以一方面降低对市场的冲击的 成本,另外一方面也可以减少交易的风险,像这类的方法我们就称之为算法。

4,算法交易目的

我们通过一些算法交易,目的是寻找一些建仓成本比较低的点位。算法的目标主要有:(1)交易成本最小化,如降低市场冲击成本;(2)成本均价贴近目标价格,如市场成交均价;(3)隐藏下单意图;(4)其他非技术原因,如节约人力成本、提高下单效率、保障指令准确实现等。

投资者之所以选择算法交易这一方式,也是基于其希望交易不会对市场产生太大冲击的目的,另一方面也希望交易不会因为时间的问题导致了价格变化成本增加。因此来说,算法交易研究的核心,是在平衡交易成本问题与交易风险问题的前提下,找出最为合适的方式来解决投资问题。

算法交易的目的就是找到如下图中的黄色线条与曲线的交点。

5,算法交易优劣势

相比于传统的人工交易,算法交易在多方面具备独有的优势。首先,算法交易能够最小化对市场造成的冲击,从而能减小交易中的成本。优秀的算法在设计之初就为了实现冲击成本和等待风险之间的平衡。其次,算法交易也能够提高交易的执行速度,借助于计算机的快速计算能力,算法交易下单具备更快的委托速度。相对于人工来说,算法交易的时间判断可以忽略,程序化的委托比人为的手动委托更容易成交到即时价格。第三,算法交易一方面能够较少人力成本,节省人力资源,另一方面也能避免掉人的非理性因素的干扰。通过计算机委托下单,能够减少传统方式上对交易员的人力投入,这样就能从根本根本上杜绝掉人的非理性因素影响,坚持始终如一的标准从而能获得更高的收益。再次,算法交易能保证执行复杂的交易和投资策略。相对于传统交易模式,程序化交易能更加精准的委托,更加细致地确定委托单的价格,时间以及数量。

劣势:

算法交易能够通过减少大额订单对市场造成的冲击,实现降低交易成本,控制交易风险的目的。另一方面,算法交易的策略实施所带来的频繁操作,会导致订单规模的变小以及撤单所占比例的加大,从而促使交易系统后台所处理的订单数量增加,并且撤单 比太高容易受到监管函。因此需要有风控系统能够控制系统的交易风险,并且交易量大也促使着开发新的交易系统后台(包括经纪商柜台系统以及交易所撮合系统),新平台要能够处理大量的客户订单流。

6,算法交易应用场景

1,私募机构、个人客户,账户建仓,批量买入;2,私募机构、个人客户、账户调仓,同时批量卖出、买入;3,上市公司,回购股份用于股权激励或员工持股计划;4,上市公司股东(如个人股东、PE公司)股份解禁,卖出;5,价值投资基金重仓单票。

7,算法交易产生

有这么几个因素,一个是电子化成交的发展,另外一个因素是美国市场最小报价从1/16或者1/32的美元调整到1美分,这样一方面改变了市场的微观结构,把最小价差一下缩小了7、8成,这样也遏制了做市商交易的优势逐步的丧失,整个市场的流动性有所下降,因为市场流动性下单,那对于建仓的市场的冲击成本有很大的上升,那对于上个世纪末的时候,美国的一些机构或者大的交易者开始研究算法交易,设法通过一些拆单的方法去降低建仓的成本。算法交易在欧美一些成熟的市场,占比还是比较大的。但在我们国内还有印度还是逐步成熟的市场,比例还是比较低。

一般来讲,新开发的算法交易的实现大致分为以下步骤,交易前利用市场上可获得的信息信息或数据进行预处理,算法交易的实盘运行和算法运行结束后对运行效果的综合研究。

8,算法交易分类

算法交易分为几类,一类是被动型的算法交易,比如说TWAP和VWAP还有VP(交易量参与度),基本上是根据历史数据进行分析,然后关注冲击成本。此外还有主动性的算法交易,在被动的算法上添加了一些主动调整,他会兼顾冲击成本和交易风险之间的关系,这里包括IS(执行差额算法),MVWAP,Market-At-Open,前两类算法主要关注降低冲击成本或者市场成本。而流动性算法是探查还有隐藏流动性,隐藏建仓意图,国外用的比较多,国内用到比较少。还有一类是综合型算法,目前在市场上占据主要地位的是被动型算法交易。此文介绍比较典型的TWAP和VWAP算法。

9,TWAP算法:

TWAP通过算法的拆分,使我的建仓成本和某段区间内的时间加权平均价格相吻合。理解还是比较简单的。指定时间段,100万股,比如接下去3个小时购买,每间隔10分钟买一次,3个小时可以建仓18次,总体的数量,除以18次,可以得出每一次交易的数量1000000/18 = 55555。通过拆分,每间隔10分钟发一笔委托,不同分割节点均匀分拆,和市场实际的成交情况没关系的。建仓速率是匀速的。有些大的机构会加一些随机的因素在里面,均匀的拆分,很容易发现,这样很可能暴露意图,每次数量加一个随机数,这样能隐藏我们建仓的目的,多了一些不确定性,比如恒生PTrade每笔委托时间在某个范围内随机,以及每笔委托数量在某个范围内随机。两个局限性:市场成交量是波动变化的,均匀分配固定的数量是不够合理的,盘中冲击比较大。如果订单比较大,每次的数量数量还是比较大的。优点就是比较简单,操作上也比较简单,这种算法就适用于流动性比较好的或者说规模比较小的交易。为了改进局限性,市场是也退出了VWAP算法。

10,VWAP算法:

计算历史每一段时间平均历史成交量,比如说过去20天,每一分钟的分布会计算出来,这样我们可以得到过去20天,每分钟的成交量是多少。分布可以画出来。每一个时间段的成交量比例在这段时间内总成交量的占比,这个占比作为我这时点的成交量拆分的比例。每时刻发出的委托数量是基于历史的平均成交量,与当前市场价格、成交量无关。也有一些改进的方式,有一个改进的算法,根据市场最新价格和实时VWAp之间关系可以调整下单的数量,AIM算法,当市场最新价小于实时的VWAP的时候,他就放大交易量,最新价>实时VWAP,缩小。带反馈机制的VWAP,就是根据成交情况,比如市价单,就成交了,比如限价单,那就是对于一些没有成交的股票,那他可以将没有成交的股票分摊到后面的时间段。

VWAP算法的核心即时最小化与市场实时VWAP之间的差异。使得真实交易的执行价格尽可能的接近VWAP基准价格,从而较少市场冲击成本。因此VWAP策略一般不直接对交易的冲击成本建模,而是注重日内交易量分布的预测。

具体来讲,如果投资者选择在一天的交易时间运行VWAP策略,并将该交易日的交易时间划分成N个相等时间长度的间隔,即分N次进行股票的买入卖出操作,假定个时间间隔内对应的委托单成交价格为即时的市场均价,对应成交数量为,则该投资者当天的VWAP成交均价为:

其中,表示第i次价格按照成交量加权时的权重。VWAP算法的表现方式是对大额的委托单进行拆分,在预先设定好的的时间段里面分批分量的下单,以期达到最终买入或卖出时的成交均价VWAP尽可能的接近该时间内整个市场的VWAP这一基准。

一般在交易软件上,算法交易包括几个参数,股票代码,数量,策略执行时间,买卖方向,买卖价位,下单间隔,自动撤补等。比如在10:10-11:10之间买一价买入60000(浦发银行)10万股,下单间隔为5分钟,可以允许在60秒内未成交的委托自动撤补。

VWAP策略在实现过程中主要分为两步,一是如何合理准确的对即将委托的大额订单进行拆分,二是对拆分后的订单进行下单委托。

假设投资者选择在一天的交易时间运行VWAP策略,预计委托的总量为V,将该交易日的交易时间划分成N个相等时间长度的间隔,即分N次进行股票的买入卖出操作,然后通过历史数据确定在每个时间段内应当委托的数量。假设每笔订单委托委托都能达到成交的效果,成交价格相对应的当前市场均价,如果每个划分后的时间内,市场真实的成交量为,那么由VWAP策略的目的—最小化策略VWAP价格成交价与市场VWAP的差异,则可以用如下的最优化问题来描述:

约束条件是:

求解上述最优化问题,可知当时,最优化问题的可以取最小值。也就是说,如果投资者能够预测市场每个时间段的成交量占交易当日总成交量的权重,则投资者严格按照这个权重来拆分委托单,分段分时的进行,最终的成交均价会等于市场的成交均价。

        将大额度的订单拆分成数量不全相等的订单后,需要重新考虑具体到每一笔分配后的交易额度。正如前文所述,我们的模型是建立在假设投资者每一笔交易都能以市场均价成交的基础上,而在实盘操作过程中,我们不可能实现这一的假设,每个下单间隔内的时机的成交价格都会跟真实的市场均价存在不同程度的差异,为了尽可能的控制这样的差异,我们采取分配到当前下单间隔内的子单进行进一步的拆分,这里的拆分,我们采取平均拆分,其实就是TWAP拆单方式,比如在10:10-11:30买入10万股国盛金控(002670),采用的下单间隔为5分钟,假如在10:45-10:50内通过VWAP方法计算出来的委托数量是2000股,那么在这5分钟内,每一分钟下单400股。执行的其实是一个等时间间隔下单策略(称为TWAP,这样得到的成交均价和全市场成交均价会有差异)

传统的VWAP策略(也称历史VWAP策略)是利用股票连续多天历史成交数据的均值来估算日内成交量分布的。具体来说,假定t日第i个时间段的市场成交量为,传统VWAP策略在t日前对的预测方法为:

其中参考周期k可以由投资者在运行VWAP策略时预先设定,通常取一个月的数据(20交易日),得到t日日内交易量的预测值之后,即可确定t日第i个时间段的下单比例:

每次下单量就是

下单的时候是市价指令还是限价指令,如果采用市价委托方式,可以有效的控制最终成本均价与市场均价之前的偏差,也能够在一定程度上提高委托成交的效率,避免限价单长时间挂单不能成交的风险,但也会造成价格的波动将处于不可控的状态。如果采用限价委托方式,合理的报价可以控制成本价格在一定范围内,防止市场价格的急剧变化带来的波动风险,但也存在一定的无法及时成交的风险。理论上,价格差异幅度较大时,最科学合理的决策时下限价委托单,反之当价格幅度小时,限价委托单的期望收益会减少,投资者占优的策略是下市价单。

还有个问题就是,之前我们将一天划分成N个时间段,每个时间段都是市场均价成交,但是真实的交易中根本无法做到这一点,每个时间段内的实际成交价和市场均价都会有部分偏差。为了控制偏差的幅度,我们需要对每个时间段分配到的委托单进一步拆分。

当然,在隐蔽大规模交易方面仅仅依靠传统的算法交易还是不够的,这个过程可能还需要一些其他策略的配合,例如在细分的下单量上附加一些噪声、或者使用随机算法对大单进行拆分等,这里我们暂时不做过多讨论。

测量交易成本的目的是评价过去的交易表现,从而对未来交易策略的改进提供定量依据。通常来讲,在算法交易中,交易成本被定义为实际执行价格与基准价格(如经常使用的VWAP)的差

冲击成本和交易成本的平衡。算法交易对交易成本控制的最主要部分是冲击成本。对于一个容量有限的市场来说,无法避免由于市场流动性短缺所带来的大规模交易冲击成本。为

了减少市场冲击,投资者需要将订单拆分为较小的部分,分步、逐渐地进行交易操作。但是,这样会使交易价格面临上涨(下跌)所带来的时间风险,以及订单不能够及时完成所带来的机会成本。相反,快速的交易可以减少这些成本,但会带来较大的冲击成本。因此对于交易速度的合理权衡,是很多算法交易策略需要致力完成的主要目标。

传统的VWAP算法的劣势,传统的VWAP算法是通过预测市场交易量分布在最小化市场冲击成本,同时使得整个交易获得VWAP算法的平均成交价格。但是这个算法还是有两个弊端,一个是这种策略属于完全被动,完全静态的策略,即在策略开始执行之前,已经完成了所有策略中的决策(何时下单,下单量多少),投资者只需要在设定的交易时间内执行策略即可,没有将市场的最新信息如成交量变化,价格变化等考虑在内。这样就使得这种策略不能更好的适应市场的变化,尤其是出现异常时的大幅波动时,因此就无法获得更好的交易价格。第二种是该策略完全依赖于对日内交易量分布的预测,如果预测不准确,出现了较大的偏差,那么该策略的执行效果也就会大幅度的降低。

附录:

价格冲击成本有两种计算方法,一种是绝对值计算法,一种是相对值计算法,比如说vwap算法,就是跟市场成交量的vwap价格做比较。

绝对冲击成本计算方法:设分别表示股票时刻限价订单簿中的多个卖出价格,且分别表示所对应的数量;分别表示股票i在t时刻限价订单簿中的多个买入价格,其中分别表示所对应的数量,则在t时刻买入Q金额股票的价格冲击指数为:

其中:,(若K不存在,则用空值表示)

卖出Q金额股票i的价格冲击指数为:

其中,( 若K不存在,则用空值表示)

相对冲击成本计算方法:

来源:

《改进型成交量预测的VWAP算法交易策略动态模型设计与实证研究》

《国信算法交易文档》

《上海证券交易所市场质量报告》

  • 32
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本课程主要讲解如下内容:引言NumPy多维数组ndarrayNumPy创建数组1、KNN算法背景02、KNN中距离度量03、KNN分类算法流程04、手写KNN分类算法05、KNN回归算法流程 06 量化交易  量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。 定量投资和传统的定性投资本质上来说是相同的,二者都是基于市场非有效或弱有效的理论基础。两者的区别在于定量投资管理是“定性思想的量化应用”,更加强调数据。量化交易具有以下几个方面的特点: 1、纪律性。根据模型的运行结果进行决策,而不是凭感觉。纪律性既可以克制人性中贪婪、恐惧和侥幸心理等弱点,也可以克服认知偏差,且可跟踪。 2、系统性。具体表现为“三多”。一是多层次,包括在大类资产配置、行业选择、精选具体资产三个层次上都有模型;二是多角度,定量投资的核心思想包括宏观周期、市场结构、估值、成长、盈利质量、分析师盈利预测、市场情绪等多个角度;三是多数据,即对海量数据的处理。 3、套利思想。定量投资通过多面、系统性的扫描捕捉错误定价、错误估值带来的机会,从而发现估值洼地,并通过买入低估资产、卖出高估资产而获利。 4、概率取胜。一是定量投资不断从历史数据中挖掘有望重复的规律并加以利用;二是依靠组合资产取胜,而不是单个资产取胜。 量化投资技术包括多种具体方法,在投资品种选择、投资时机选择、股指期货套利、商品期货套利、统计套利和算法交易等领域得到广泛应用。在此,以统计套利和算法交易为例进行阐述。 1、统计套利 [1]  统计套利是利用资产价格的历史统计规律进行的套利,是一种风险套利,其风险在于这种历史统计规律在未来一段时间内是否继续存在。 统计套利的主要思路是先找出相关性most好的若干对投资品种,再找出每一对投资品种的长期均衡关系(协整关系),当某一对品种的价差(协整方程的残差)偏离到一定程度时开始建仓,买进被相对低估的品种、卖空被相对高估的品种,等价差回归均衡后获利了结。股指期货对冲是统计套利较常采用的一种操作策略,即利用不同国家、地区或行业的指数相关性,同时买入、卖出一对指数期货进行交易。在经济全球化条件下,各个国家、地区和行业股票指数的关联性越来越强,从而容易导致股指系统性风险的产生,因此,对指数间的统计套利进行对冲是一种低风险、高收益的交易方式。 2、算法交易。 算法交易又称自动交易、黑盒交易或机器交易,是指通过设计算法,利用计算机程序发出交易指令的方法。在交易中,程序可以决定的范围包括交易时间的选择、交易的价格,甚至包括most后需要成交的资产数量。 算法交易的主要类型有: (1) 被动型算法交易,也称结构型算法交易。该交易算法除利用历史数据估计交易模型的关键参数外,不会根据市场的状况主动选择交易时机和交易的数量,而是按照一个既定的交易方针进行交易。该策略的的核心是减少滑价(目标价与实际成交均价的差)。被动型算法交易most成熟,使用也most为广泛,如在国际市场上使用most多的成交加权平均价格(VWAP)、时间加权平均价格(TWAP)等都属于被动型算法交易。 (2) 主动型算法交易,也称机会型算法交易。这类交易算法根据市场的状况作出实时的决策,判断是否交易交易的数量、交易的价格等。主动型交易算法除了努力减少滑价以外,把关注的重点逐渐转向了价格趋势预测上。 (3) 综合型算法交易,该交易是前两者的结合。这类算法常见的方式是先把交易指令拆开,分布到若干个时间段内,每个时间段内具体如何交易由主动型交易算法进行判断。两者结合可达到单纯一种算法无法达到的效果。 算法交易交易策略有三:一是降低交易费用。大单指令通常被拆分为若干个小单指令渐次进入市场。这个策略的成功程度可以通过比较同一时期的平均购买价格与成交量加权平均价来衡量。二是套利。典型的套利策略通常包含三四个金融资产,如根据外汇市场利率平价理论,国内债券的价格、以外币标价的债券价格、汇率现货及汇率远期合约价格之间将产生一定的关联,如果市场价格与该理论隐含的价格偏差较大,且超过其交易成本,则可以用四笔交易来确保无风险利润。股指期货的期限套利也可以用算法交易来完成。三是做市。做市包括在当前市场价格之上挂一个限价卖单或在当前价格之下挂一个限价买单,以便从买卖差价中获利。此外,还有更复杂的策略,如“基准点“算法交易员用来模拟指数收益,而”嗅探器“算法被用来发现most动荡或most不稳定的市场。任何类型的模式识别或者预测模型都能用来启动算法交易。  量化交易一般会经过海量数据仿真测试和模拟操作等手段进行检验,并依据一定的风险管理算法进行仓位和资金配置,实现风险most小化和收益most大化,但往往也会存在一定的潜在风险,具体包括: 1、历史数据的完整性。行情数据不完整可能导致模型与行情数据不匹配。行情数据自身风格转换,也可能导致模型失败,如交易流动性,价格波动幅度,价格波动频率等,而这一点是量化交易难以克服的。 2、模型设计中没有考虑仓位和资金配置,没有安全的风险评估和预防措施,可能导致资金、仓位和模型的不匹配,而发生爆仓现象。 3、网络中断,硬件故障也可能对量化交易产生影响。 4、同质模型产生竞争交易现象导致的风险。 5、单一投资品种导致的不可预测风险。 为规避或减小量化交易存在的潜在风险,可采取的策略有:保证历史数据的完整性;在线调整模型参数;在线选择模型类型;风险在线监测和规避等。 量化策略是指使用计算机作为工具,通过一套固定的逻辑来分析、判断和决策。量化策略既可以自动执行,也可以人工执行。 [2]  一个完整的量化策略包含哪些内容? 一个完整的策略需要包含输入、策略处理逻辑、输出;策略处理逻辑需要考虑选股、择时、仓位管理和止盈止损等因素。 选股 量化选股就是用量化的方法选择确定的投资组合,期望这样的投资组合可以获得超越大盘的投资收益。常用的选股方法有多因子选股、行业轮动选股、趋势跟踪选股等。 1 多因子选股 多因子选股是most经典的选股方法,该方法采用一系列的因子(比如市盈率、市净率、市销率等)作为选股标准,满足这些因子的股票被买入,不满足的被卖出。比如巴菲特这样的价值投资者就会买入低PE的股票,在PE回归时卖出股票。 2 风格轮动选股 风格轮动选股是利用市场风格特征进行投资,市场在某个时刻偏好大盘股,某个时刻偏好小盘股,如果发现市场切换偏好的规律,并在风格转换的初期介入,就可能获得较大的收益。 3 行业轮动选股 行业轮动选股是由于经济周期的的原因,有些行业启动后会有其他行业跟随启动,通过发现这些跟随规律,我们可以在前者启动后买入后者获得更高的收益,不同的宏观经济阶段和货币政策下,都可能产生不同特征的行业轮动特点。 4 资金流选股 资金流选股是利用资金的流向来判断股票走势。巴菲特说过,股市短期是投票机,长期看一定是称重机。短期投资者的交易,就是一种投票行为,而所谓的票,就是资金。如果资金流入,股票应该会上涨,如果资金流出,股票应该下跌。所以根据资金流向就可以构建相应的投资策略。 5 动量反转选股 动量反转选股方法是利用投资者投资行为特点而构建的投资组合。索罗斯所谓的反身性理论强调了价格上涨的正反馈作用会导致投资者继续买入,这就是动量选股的基本根据。动量效应就是前一段强势的股票在未来一段时间继续保持强势。在正反馈到达无法持续的阶段,价格就会崩溃回归,在这样的环境下就会出现反转特征,就是前一段时间弱势的股票,未来一段时间会变强。 6 趋势跟踪策略 当股价在出现上涨趋势的时候进行买入,而在出现下降趋势的时候进行卖出,本质上是一种追涨杀跌的策略,很多市场由于羊群效用存在较多的趋势,如果可以控制好亏损时的额度,坚持住对趋势的捕捉,长期下来是可以获得额外收益的。 择时 量化择时是指采用量化的方式判断买入卖出点。如果判断是上涨,则买入持有;如果判断是下跌,则卖出清仓;如果判断是震荡,则进行高抛低吸。  常用的择时方法有:趋势量化择时、市场情绪量化择时、有效资金量化择时、SVM量化择时等。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值