ATR是一个更好的波动率测度指标 -- 知识铺
文|杨勇 冯佳睿 来自海通证券
1.研究背景
1.1重要概念:什么是"好的"波动率指标
为了描述价格运行过程中变动的速度和幅度,我们通常使用波动率这一指标。所有的波动率测度方法都是为了描述市场在某一段特定时期的变化,是一种市场价格分散度或变动状态的度量指标。有些波动率指标会随时间变化而发生剧烈变动,而另一些则相对较为平稳;有些波动率指标的计算包含了过去时间窗口的所有数据点,而另一些则只包含了一些极端的点。那么,不同的波动率测度指标之间是否有好坏之分呢?
在《他山之石(2014年2月):ATR是一个更好的波动率测度指标吗?》中,Marci提出了"好的"和"坏的"波动率的概念。当价格改变原有状态朝某一方向移动时,如果某个波动率测度指标能及时反映价格最新运行方向上的正常波动状态,那么可以认为这个波动率是"好的"波动率。一旦价格突破了这个正常的波动区间,我们通常可以对相应突破方向的价格趋势加以确认。而所谓"坏的"波动率是指波动率指标并不能及时反应新的价格运行方向上的波动状态,基于该类指标所形成的价格突破趋势确认信号的可信度将大打折扣。
从某种意义上说,该定义主要强调波动率测度指标在市场发生趋势性变化时的表现,因而比较适合基于"好的"的波动率指标构建趋势突破交易系统。
1.2常见的波动率测度指标:SD和ATR
一般常见的波动率测度指标有四种类型:通过最高价和最低价衍生得到的价格波动区间、价格围绕趋势线的分散程度、历史波动率以及由期权定价反推出来的隐含波动率。四种波动率测度类型中,PerryJ.Kaufman首推ATR(AverageTrueRange),所以它成为了本文首先选择的研究对象。在JohnBollinger选择波动率指标构造布林带时,他考虑了七种计算方法,但最终选中了SD(StandardDeviation),因此SD成为了本文的第二个研究对象。
SD是用来分析数据离散度时使用得最为广泛的一种测度指标,在正态分布假设下,SD可以帮助我们很好的刻画价格分布特征。它的定义如下:
其中m是过去N个时间点数据的平均值,也即通常所谓的时间窗宽。JohnBollinger通过从当前移动平均价格中增加或减少某个倍数的SD值来构造布林带(BollingerBand),它是一种广泛用来检验价格和趋势的技术指标。常用的时间窗宽为20,构造布林带的乘数因子为2。
ATR是由Wilder在他的"NewConceptsinTechnicalTradingStrategies"一书中提出的。一般来说,一段时期内的价格波动可以定义为这段时期内的最高价与最低价之间的差值,但该定义忽略了另外一个事实:一个时间段到下一个时间段之间价格可能出现跳跃,从而使得一个时间段内的最低(高)价在前一个时间段的收盘价之上(下)。真实波动区间(TrueRange,记成TR)的想法即由此而来,被定义为以下三个值的最大者:最高价减最低价、最高价减前收盘价、最低价减前收盘价。Wilder推荐使用14天为时间段,并且给出了相应的波动率指标ATR(AverageTrueRange)计算公式:
ATR的思想可以从很早的技术分析文献中找到,最有名的一个技术交易系统是KeltnerBand。KeltnerBand的具体构造方法与布林带类似,也是从当前移动平均价格中增加或减少某个倍数的ATR值来构造价格波动区间的上下界。
2.SD和ATR优缺点的理论分析****【小提示:回复关键字“高频量化”或者“109”获得专题全部内容】****
为从理论上探讨SD和ATR这两个波动率指标的优缺点,我们通过设定某些简单的价格变动情境(图1-图4)来进行对比分析。每种情境,也即每个图中的结果通过三个部分来展示:最上面的部分展示了所设定的价格变动情境;第二个部分展示了相应的SD指标变动;第三部分展示了相应的ATR指标变动。
图1给出的是价格从盘整阶段向上涨趋势转化的过程。注意到这里所有的单根K线形态都是一样的,唯一不同的是K线的移动方向;计算SD和ATR所采用的时间窗口都是20。在这种情境下,ATR一直保持着较高的水平;但是对于SD则不同,SD随着趋势的不断演绎而逐步抬升,直到20个交易日之后才处于一个正常的稳定水平。这意味着在这种情境下SD无法很好的描述新的价格变化方向上正常的波动状态,而ATR则能较好的完成这一任务。
图2给出了一个不带缺口的趋势反转情境。这种情境下ATR仍然可以稳定的保持着较高的水平,也即它能对新的价格运行方向上的波动状态进行有效的刻画;但SD的表现则明显不同,在新的价格趋势刚开始时,SD会因为趋势方向的改变而缓慢下降,直到新趋势持续了一段时间后才开始缓慢上升并且最终回到它的正常值。
图3给出了趋势反转且K线之间出现缺口的情境。新趋势中缺口的出现意味着新趋势的波动状态高于原有趋势。这种情境下,ATR对新趋势也有一定的适应过程,在新趋势的运行过程中逐步变大,直到一段时间后才稳定在一个较高的水平;但SD在适应新趋势时又一次表现出对趋势逆转时波动率提升的错误描述,它在新趋势刚开始出现时先缓慢下降,直到新趋势延续了较长时间后才开始逐步由底部抬升,并最终稳定在新的正常水平。
图4的情境中有关K线的设定有所不同,在最初的下行趋势结束后,新K线首先保持不变,20天后其上下影线均逐步变大,这意味着此时单根K线内的波动程度在逐步变大,实际上也就是区间内的波动率在逐步提升。在下行趋势刚结束时,由于新K线保持在一个稳定的水平位置,真实的波动率比较小,此时ATR一直处于一个较低的水平,而SD则是从一个非常高的值逐步下降到0;当新K线的上下影线逐步变长时,我们发现ATR指标开始逐步上升,恰好对应了此时波动率的变化,而SD则继续在0位置保持不动。
此外,整体来看,从以上4个图可以得到的另外一个重要结论是:SD指标本身的波动比ATR要大。
3.SD和ATR趋势确认效果的实证分析
这一部分我们对上证综指、沪深300、创业板指以及中小板指这四个标的SD和ATR指标进行了实证分析,详细比较了基于SD和ATR的两种趋势交易系统在以上四个指数的实证表现。
所使用的数据区间为:2010.6.1-2014.2.10日;数据频率:1分钟K线、5分钟K线、30分钟K线以及日K线(由于篇幅关系,本文主要展示的是基于30分钟K线的实证结果)。
3.1 SD和ATR序列的统计结果
图5以沪深300为例,给出了2010.6.1日以来基于30分钟K线计算得到的SD和ATR序列,所使用的时间窗宽均为20。橘红色线表示SD序列,灰色的线表示ATR序列,蓝色的线为沪深300指数。由该图明显可以看出,由SD计算得到的波动率指标的波动性明显要大于基于ATR得到的波动率指标。
表1给出了30分钟K线频率上各个序列的统计结果。结果表明:ATR在平均水平上比SD低,SD的最大值与最小值之间的比值要比ATR大。其他各频率以及各指数得到的结果类似,在此不再一一列出。
3.2基于SD和ATR的趋势交易系统的实证对比
3.2.1两个趋势交易系统:通道突破、SAR
为对比检验基于SD和ATR的趋势交易系统的效果,我们设定了两个趋势交易系统。模型一:通道突破交易系统
对基于SD的BollingerBand或基于ATR的KeltnerBand这类通道指标而言,一个最直接的应用是通道突破系统。
通道突破交易系统:每次价格向上(下)突破了由不同的波动率指标构造的上(下)轨道之后,我们对上(下)行的趋势加以确认并做多(空),直至价格再次触及下(上)轨道之后平仓。
模型二:SAR(StopandReverse)交易系统**【小提示:回复关键字“高频量化”或者“109”获得专题全部内容】**
Wilders提出的SAR交易系统是一个可以用来测试不同波动率指标有效性的工具。最初的SAR是基于原始的ATR指标来构建的,是一个广义上的趋势交易系统,我们这里主要关注基于SD和ATR的SAR交易系统的优劣。
SAR交易系统:基于当前多头(空头)头寸持有过程中的最高(最低)收盘价减去(加上)一定倍数的波动率测度指标(SD或ATR)值得到止损反向通道,当价格突破该通道后平掉原有头寸并建立反向头寸。
由上可知,该交易系统与模型一中的交易系统有两个主要的不同点:该交易系统并不依赖于当前价格的移动平均值,而是与其当前头寸持有过程中价格的最大或最小值有关系;该交易系统只有一个通道,多头持仓过程中该通道在价格下方,空头持仓时则相反。
有关交易系统实证检验的几点说明:
1)由于本文的目标并不是构造一个具有较高收益率的系统或者是优化这一系统,而是比较两种不同的波动率测度指标在趋势确认过程中的优劣,因此本文只考虑了通道突破的情形,并未对相应的交易信号进行进一步的过滤或优化。对交易系统进行优化的工作可参考我们后续的相关研究报告。
由于趋势型交易系统中,那些事后证明盈利的交易信号往往可以理解成较好的抓住了价格趋势,因此我们对实证分析结果的讨论主要集中在胜率、最大盈利和盈利交易的平均盈利幅度上,而且最为关注的是基于SD的交易系统和ATR的交易系统在这一实证结果上有何区别,以探讨两者作为趋势确认指标的有效性。
2)在系统参数选择上,我们对比分析了两个时间窗宽,分别是20(BollingerBand的常用窗宽)和14(ATR的常用窗宽);对于模型一使用的通道带宽构建因子为2,也即通过当前时间窗宽内的移动平均价格加上或减去2倍SD或ATR来得到上下轨道;对于模型二使用的通道带宽构建因子为3,这是Wilder推荐的常用参数。
3)由于同一时间窗宽参数下得到的SD序列和ATR序列的均值有明显的差异(表1),为了尽可能的避免这种标度上的差异对下文的分析和结论产生影响,我们需要对两个波动率测度指标进行标度调整(Rescale),具体做法如下:
对于同一价格序列计算出来的SD和ATR,我们保持SD不变,将ATR乘以某一标度调整因子(Scalingfactor),强制使得调整后的SD序列均值和ATR序列均值相等。
四个指数30分钟K线上的标度调整因子见表2。由表2的结果可知该标度调整因子在不同的年份中有较好的稳定性,从而在一定程度上印证了以上调整方法的合理性。
3.2.2基于ATR和SD的趋势交易系统结果实证分析
基于以上模型测试得到的主要结论如下(见表3、表4和表6):
1)从交易频率来看,基于SD的交易系统比基于ATR的交易系统产生的交易信号更多,要多出60%左右。这一结论完全是符合我们预期的,由前面的图5和表1可知,由于SD序列的波动性明显要大于ATR序列的波动性,相对更容易触发交易信号。
2)由于SAR模型中的止损价格更接近当前的价格,在同一时间窗宽下更容易触发止损从而具有更多的交易次数,比通道交易系统的交易次数要多出73%左右。
3)从盈利交易平均盈利幅度和最大盈利幅度来看,无论是在通道突破交易系统还是SAR交易系统中,基于ATR指标的实证结果均明显好于SD。其中,基于ATR交易系统的盈利交易平均盈利幅度比基于SD的交易系统要高出36%左右;最大盈利幅度要高出28%左右。这意味着相对于SD而言,ATR是一个更好的趋势确认指标。
4)从胜率来看,基于SD指标的实证结果要略好于基于ATR指标的实证结果。这是否意味着从胜率的角度来看,SD相对于ATR是一个更好的趋势确认指标呢?进一步的分析(表6)表明,答案是否定的。
3.2.3交易系统实证结果的情境分析
由于SD序列本身具有更大的波动性,使得基于SD指标的交易系统容易触发更多的交易信号。因此,要对比基于SD和ATR交易系统信号胜率的差异性,就需要我们对因为SD本身的剧烈波动而额外产生的交易信号进行更细致的分析。
以通道突破交易系统为例,我们可以对信号的触发情境进行分类。为了方便,对每种情境我们都分做多和做空两种信号进行讨论。
情境一:(K1、B0)
指的是基于ATR的KeltnerBand触发了某一方向的交易信号,但在该信号产生的头寸持有期间基于SD的BollingerBand没有触发同一方向的交易信号,这种类型的信号更多的可以看成是由于ATR序列的自身波动而额外产生的。
情境二:(K0、B1)
指的是基于SD的BollingerBand触发了某一方向的交易信号,但在该信号产生的头寸持有期间基于ATR的KeltnerBand没有触发同一方向的交易信号,这种类型的信号更多可以看成是由于SD序列的自身波动而额外产生的。
情境三:(K1、M_B1)
指的是基于ATR的KeltnerBand触发了交易信号,在该信号产生的头寸持有期间基于SD的BollingerBand先触发了相同交易方向的交易信号,然后再触发相反方向的交易信号,然后再触发相同交易方向的交易信号,这种类型的信号更多的可以看成是由于SD序列的自身波动而额外产生的。
情境四:(M_K1、B1)
指的是基于SD的BollingerBand触发了交易信号,在该信号产生的头寸持有期间基于ATR的KeltnerBand先触发了相同交易方向的交易信号,然后再触发相反方向的交易信号,然后再触发相同交易方向的交易信号,这种类型的信号更多的可以看成是由于ATR序列的自身波动而额外产生的。
情境五:(K1、B1)
指的是基于SD的BollingerBand和基于ATR的KeltnerBand均产生了同向交易信号,两者的头寸持有期间至少有部分是重合的,且并未出现(M_K1、B1)和(K1、M_B1)的情形。针对同一趋势而言,这种类型的信号在本质上并没有不同,只是对应的趋势运行阶段有所差异,因此不是我们关注的重点。
表6给出了各种情境下交易信号的盈利统计结果。这里有几点需要特别说明:
1)由于我们的交易系统是永远持仓的,因此做多交易中情境一、情境二、情境三和情境四与做空交易的情境四、情境三、情境二和情境一是一一对应的。对于做多的交易信号,若多头持仓以1表示,多头平仓后的状态以0表示,则多头交易中的各种情境可以用表5的各种示例来说明。
2)情境一(K1、B0)盈利与否主要看KeltnerBand系统持仓期间是否有盈利;情境二(K0、B1)盈利与否主要看BollingerBand系统持仓期间是否有盈利;情境三(K1、M_B1)盈利与否主要看KeltnerBand一直保持持仓,但BollingerBand中间有反向仓位的这段时间中若保持KeltnerBand的持仓方向的话是否会产生盈利;
情境四(M_K1、B1)盈利与否主要看BollingerBand一直保持持仓,但KeltnerBand中间有反向仓位的这段时间中若保持BollingerBand的持仓方向的话是否会产生盈利。
结果表明,不论是做多还是做空,不论在哪个指数标的上,情境二(K0、B1)和情境三(K1、M_B1)出现的频率最高,平均都在20次左右。由于情境二中交易信号赚钱的概率一般不超过5%,这意味着情境二代表的由于SD自身波动引起的额外交易信号往往事后被证明是错误的,属于趋势伪突破信号;情境三中交易信号(假定在BollingerBand出现反向交易信号时维持KeltnerBand原交易信号不变)赚钱的概率一般在90%以上,这意味着此时BollingerBand所产生的反向交易信号往往事后被证明是错误的,属于趋势伪突破信号。
当然,情境一(K1、B0)和情境四(M_K1、B1)所代表的由于ATR自身波动额外产生交易信号也往往事后被证明是错误的,但其交易次数较少,平均来看都不超过5次。以上结果表明,基于SD的通道交易系统更容易产生伪突破,SD不是一个较好的趋势确认指标。
现在可以来回答前文提到的问题了,基于SD的通道交易系统胜率要好于基于ATR的交易系统,这并不意味着从胜率的角度来看SD相对于ATR是一个更好的趋势确认指标。这是因为由情境三(K1、M_B1)可知,大量从KeltnerBand的角度来看是同一趋势的价格序列被BollingerBand切分成几段,使得基于BollingerBand交易系统的盈利交易次数大幅增加,从而相对有着略高的胜率;但也正是因为BollingerBand系统中一个较大的趋势被分割成相对较小的趋势,使得那些盈利交易的平均盈利幅度相对降低。
综合考虑以上结果,我们认为相对于SD而言,ATR确实是一个更好的趋势确认指标,他不容易产生趋势伪突破信号(对比情境一和情境二),有着更好的稳定性(对比情境三和情境四)。
4.SD和ATR通道交易系统的案例分析
为了更清晰的比较以上两个趋势确认指标的不同之处,我们对沪深300指数上近期一个最有说服力的案例进行了详细分析,该案例发生在2013年12月10日到2014年1月22日。
由表7和图6可知,对于BollingerBand和KelnterBand系统,两者几乎同时于12月11日10:00发出做空信号,KeltnerBand交易系统空仓状态一直持维持到2014年1月21日收盘,但BollingerBand交易系统中间出现了多次试图做多的交易信号(第一次做多信号发生在12月24日10:30,随后12月26日13:30反向做空,第二次做多信号发生在12月31日11:00,随后2014年1月3日10:00反向做空,第三次做多信号发生在1月8日10:00,随后1月9日14:30反向做空,第四次做多信号发生在1月16日14:00,随后1月17日10:00反向做空,最后于1月22日10:00结束做空步入最多状态)。
基于ATR的KeltnerBand的上下界的带宽(粉色)虽然随着市场的波动而波动,但一直保持着较为平稳的状态。该次交易最终获得了223点的盈利,约为该区间内价格最大变动幅度的82%,很好的抓住了指数的这一波下行趋势。对于BollingerBand系统,由于中间还出现了4次伪突破信号,交易次数明显增多,并且每次伪突破交易都带来了损失,这段时间内该系统获得的交易利润为71点,约为该区间内价格最大变动幅度的24%,还不到KeltnerBand系统的32%,即使仅仅考虑做空交易,所获得的利润约为188点,也不到KeltnerBand系统的84%。
对图6进行更仔细的分析可知,BollingerBand的带宽(黄色)表现出较大的波动,尤其是市场出现快速反转时这个带宽会变小,这可以在前面的理论分析中找到解释。在一个较强的趋势中,某些走势上的"反转"往往事后被证明仅仅是一个反抽,如果此时通道突破交易系统的带宽因"反转"的出现而变小,使得即使是较小的反抽也能很容易造成反方向的趋势突破,从而造成通常意义上所说的"伪突破"。这个例子表明,从减少伪突破出现概率的角度来看,ATR的表现确实要好于SD。
5.小结及研究展望
我们首先提出了"好的"波动率和"坏的"波动率的概念,然后在理论上、实证上以及案例中对比了ATR和SD这两个波动率测度指标的优缺点,发现ATR是一个更好的趋势确认指标。
重要概念:什么是"好的"波动率
一个"好的"波动率是指,当价格改变原有状态朝某一方向移动时,如果某个波动率测度指标能及时反映价格最新运行方向上的正常波动状态,那么可以认为这个波动率是"好的"波动率。一旦价格突破了这个正常的波动区间,我们通常可以对相应突破方向的价格趋势加以确认。由于该定义主要强调波动率测度指标在市场发生趋势性变化时的表现,因而比较适合基于"好的"的波动率指标构建趋势突破交易系统。
重要结论:ATR是一个更好的趋势确认指标
1)相对于SD而言,ATR确实是一个更好的波动率测度指标,其自身的波动较小,更适合用来对趋势行情加以确认;
2)SD在趋势反转时的反应会比较慢,容易出现趋势伪突破现象,而ATR则能更快更稳定的度量当前价格运行方向上的正常波动状态,从而更好的对价格趋势加以确认;
3)无论是从交易触发频率、盈利交易的平均盈利幅度还是从最大盈利幅度来看,基于ATR的趋势交易系统往往可以获得更好的效果,盈利交易的平均盈利幅度较SD交易系统高出36%左右,最大盈利幅度高出28%左右;
4)最近的实例表明,在2013.12.10日开始至2014.1.21日的下行趋势中,基于ATR的趋势交易系统抓住了区间价格最大下行幅度的82%,而基于SD的交易系统则仅仅抓住了最大跌幅的24%。
重要贡献:提出了技术指标理论分析新范式和实证结果情境分析方法
除了上述重要结论,本文在方法论上的最大贡献在于提出了从理论上研究技术指标有效性的独特分析范式,以及评估技术指标实证结果的情境分析方法。这两种方法的独特视角可以扩展到其他技术指标或相关策略的研究中去,为改进策略效果提供帮助。
研究展望:对趋势交易系统进行细节完善和优化
本文的目标并不是构造一个高收益率的交易系统或者是优化这一系统,因此本文并未对相应的交易信号进行过滤或优化。对交易系统进行优化的工作可参考我们后续的相关研究,比如:价格突破应以最高价为依据还是以收盘价为依据、价格突破发生时的交易量与信号有效性之间是否有关系、交易的开仓和平仓条件是否应该保持一致等等。返回搜狐,查看更多
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/stocktactics/post/20240417/ATR%E6%98%AF%E4%B8%80%E4%B8%AA%E6%9B%B4%E5%A5%BD%E7%9A%84%E6%B3%A2%E5%8A%A8%E7%8E%87%E6%B5%8B%E5%BA%A6%E6%8C%87%E6%A0%87--%E7%9F%A5%E8%AF%86%E9%93%BA/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com