量化百科

开始聊聊交易之十二:单品种单策略风险的控制

由polll创建,最终由polll 被浏览 34 用户

公众微信号:开始聊聊交易 kslljy654

-------------------------------------------------

最近有朋友反应如360doc、新浪包括部分微信公众号上有人非法转载我的文章。谢谢您的提醒,这个现象我注意到了。年前委托律师处理了一批,剩下的年后处理吧。我个人绝对尊重版权保护,以及尊重别人的劳动成果,所以类似的行为别人是否得过且过我不管,我不会。再次感谢朋友们的提醒。谢谢!

-------------------------------------------------

前一篇文章里面讲了相关风险来源和风险度量的问题,风险的度量,分为了相对度量和绝对度量的两种方法,这一篇文章要讲的,主要是风险的控制。这一篇文章里面所讲的内容,主要是单品种单策略风险的控制。这篇文章之后,看篇幅而定,会在接下来的一篇到两篇文章之中讲述多品种多策略风险的控制、风控目标的设立思路以及风控系统的设计问题。

-----------------------------------------------------------

很多人认为,我们如果只交易一个品种,对这个品种设定固定的止损,那么我就能够把风险有效的控制住,并且我相信大多数交易者认为这个设置是可行的,但是实际操作起来,能够做到的真的很少,一方面因为人心态作祟,另一方面可能存在着一些不可执行的因素。所以,即便是单品种单策略的风险控制,说得再直白一点,设置止损,也并不是一件非常容易的事情,需要考虑到的东西是方方面面的。

一般来讲,单品种单策略风险的控制需要考虑以下几个因素:逻辑出场条件;最小容忍度的度量;出场判定允许的范围;最大允许的止损范围;盈亏平衡点的合理性度量,盈利允许的最大回撤范围。

考虑完了以上6个方面的因素之后,需要做的一件事情就是风控条件的设置和有效性检测。

下面我们抛开策略的东西不谈,仅仅就风控,来谈谈这5个因素以及相关方面的问题。在写上一篇文章的时候,有一些读者觉得不过瘾,于是私信我,说如果要举例子,引用的数据是否能够长一些,并且大家更为熟悉的品种。我问他,大家都熟悉的品种是什么?他告诉我是螺纹钢。所以,写这篇文章将引用螺纹钢15分钟K线的数据。至于数据的长短,我说过,是根据需求来的,就算是我们做量化,也不是一股脑多少年的数据测试有效就完事儿了,还是看交易系统的需求。当然,既然有这个要求,我会尽量去满足,我们知道,2016年整个12月份的行情是比较难做的,所以,下面我就用2016年整个12月的数据作为需要阐述观点的例证来阐述问题。

首先声明:一下各个因素的阐述内容里面所讲的计算,方法,仅仅作为一个例子,让大家更容易看清楚因素的实质,不代表标准做法,也不代表必须采取的任何标准,仅作为一个参考。这就是个例子而已,至于例子是干什么的,不明白的朋友可以查查字典。

逻辑出场条件:

这一个如果单纯来讲,和风控可能觉得并没有什么关系,但是,逻辑出场条件,却往往是风控压力大小的一个决定因素,因为如果一个交易策略,全部是机械的止损,那么事实上,对于进场出场逻辑第一不能行成一个完整的链,而是把出场条件等同于风控条件。

比如我接触过一些搞CTA量化的人,在编写程序的时候,往往进场条件经过了比较严格的过滤,而出场条件却写得非常的宽泛,甚至就是按照一个回撤出场的。而这个回撤的值,往往是一个数据优化的结果。这样导致的结果可想而知:如果测试的时间跨度过小,那么进场条件筛选的有效性会存在疑问,如果时间跨度过大,那么进场条件的筛选可能不会有太大问题了,但是出场又称为了一个问题,因为这种出场条件往往如果往最优化上去靠,这类似于统计学里面考虑了一个“平均期望”的概念,却很难重视“方差”的概念。如果把这个问题说的再深一点,就是进场和出场是一个跷跷板,总有一端容易出问题。

作为一个完善的交易策略而言,我多次强调,要保持的是交易策略的一致性,这个一致性其中有一个很重要的体现就是从进场到出场的持仓过程中,交易的逻辑是贯穿始终的,也就是说出场,是因为当初选择的进场条件,以及其后持仓所秉持的逻辑已经被颠覆或者至少有转变的迹象了。这样的出场,方能保持逻辑的一致性。如果一个策略,你仅仅按照一个回撤的比例去设定的规则,如何能够保证出场的时候,进场的逻辑还没有被破坏?

有的人可能会说,无论如何,这个风险至少控制住了。这个没错,但是,你要知道,类似于固定的止损额度如果次次都触发,相当于每一次都在打风控,这样的一种交易制度明显就是不合理的,或者说从进场到出场还没有一个策略系统而导致风控条件会承受非常大的压力,这样的系统模式长期会存在很多问题,特别对于仅仅交易一个品种用单一策略的投资者而言。

正常的风控是什么样子?应该是你的大多数单子都能够按照逻辑出场,会有一部分单子,因为行情走势的无序性或者非常剧烈的时候,会因为触发风控止损。

逻辑出场有多么重要呢?我在这里举一个例子:如果你的交易是参考一个技术指标在做,那么,这个技术指标的入场点进入之后,如果价格顺向走,技术指标也会顺向走,此时,开始形成一定向上或者向下的趋势,持续的时间和点位都不好确定。那么过了一段时间之后,这种趋势在技术指标上有了一定的积累,价格也会已经有了一定的顺向的空间,此时,即便逻辑不成立了,出场了,也不一定亏损。这种逻辑,会存在一种严格的时间和空间的关系。如果你只设定一个止损位或者一个回撤范围,这便仅仅是一种空间的关系,而体现不出时间和空间对应的关系,此时,你要做的不是趋势,因为出场体现不出来趋势形成的过程,而仅仅是空间对应的关系。这其实在一定程度上是不符合趋势的定义的。

最小容忍度的度量:

我相信,即便有了交易逻辑,度量一个止损点位对于部分交易人员来说也是一个头疼的问题。所谓的容忍度,就是假设目前的行情已经徘徊在了止损点附近,且大概率下一根就要止损了,但是你的止损设定了一些特殊的点位和时间范畴,如果这个时候有较大的波动发生,且这个波动对你是不利的,会导致你的回撤非常大,甚至偏离你的止损原则,这个时候你最少要设置的止损点或者初始回撤的点位是多少才能够保证异常的波动被涵盖而自己又小概率的蒙受更大的损失。这个值,就是应对极端波动用的,否则,会有较大概率误会行情。相对的度量,相当于一个极限值,也就是当我们设定的止损回撤最小是多少的时候,我们的策略才能够基本正常运行。

其实,对于不同的交易模式,所面对的最小容忍度的度量方式所考虑的因素是不一样的,但总体来讲,需要考察对应的K线的时间周期级别的大概率波动范围;

这个时候我们来看看前面提到的螺纹钢数据:

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='604' height='206'></svg>)

如图所示,是螺纹钢15分钟级别整个12月份的波动数据。我们可以看到,其中有一个非常明显的极值,一个在200多,一个接近100,这不是我们要考察的范围,如果我们交易的时间周期是有限的,比如这是15分钟级别的,平均打止损的一个时间周期若只有20根(回顾一下,按照我对交易的理解,在只考虑正常的范围内,交易止损和止盈所经历的时间周期是不一样的,因为对于趋势交易者而言,持仓的时间周期越长,代表趋势的顺向走的时间周期越长,相对的盈利空间会随着时间扩大,反推过来,当行情止损的时候,所经历的空间非常有限,那么所对应的的时间周期大概率来讲很小,而在走顺向的时候,因为有对应的时间和空间的关系,经历的时间往往比大止损所经历的时间要长很多),这两个值根本就不用考虑。因为这两个值如果碰到,这在应急处理的范畴,而最小容忍度的问题不在应急的范围内,而是作为止损适用性的讨论,是一般问题。

就上面的一张图,螺纹钢,如果按照15分钟周期取K现,12月份一共有近500根K线,上图反应的就是500根K线的一个波动状况。如果,我们平时做交易,会对自己的交易有一个大概的统计:这样一个时间周期级别在统计时间段内一般有几次交易?每一次亏损的交易持续时间有多长?一般的规律在于,一个时间段内交易的次数越多,亏损的交易持续的时间越长,那么对数据的广泛性就越敏感。比如这500个数据之中,如果承载了50次交易,那么基本上每一根K线可能都用上了,这个时候,我们可能对于数据要做到非常有普适性;而如果支撑在了10次交易,基本上盈利和亏损的时间规律结合行情也就容易摸出来了。这个时候,我们取一个百分比数据也许就能够说明问题。所以核心的问题就在于:这些数据之中,百分之多少之前的波动数据是我们一定规避不了的?对于我而言,一般设置在5%,那么对于这样的行情,也就是25个数据,如果交易再密集一点,可能会直接取一个中位数,这样基本也就能够涵盖整个情况了。比如,在这里,我认为波动最剧烈的前5%数据规避不了,另外95%的数据都会在规避范围之内,这个数据如果我们就用excel进行编辑,用PERCENTILE函数就可以。

比如这一组波动数据,我用95%的百分比范围算出来的值为51,那么,至少我就必须考虑,如果面对这样的波动情况,按照我的交易风格和交易频率,以15分钟的K线为载体,那么我在初始阶段所设置的最小止损就不会小于51个点,通常情况下,取个整,就是50个点。

如果有人在15分钟级别做超短期交易,那么,百分比数值如果取50%,那么,取值得到的是23。

对应K线的时间周期级别的该概率波动范围的测算意义就在于,在刚刚减仓阶段,以目前的交易风格,设置的初始绝对止损点如果小于这个范围,交易可能会失去意义,因为其涵盖不了单根K线的波动。如果在这个范围内你仍然认为损失过大,需要考虑的不是缩小止损点,而是减小仓位。

有些人可能还会有一个疑问:我一般是按照收盘价来看进出场的,而波动的计算方法往往涉及最高价最低价,用这个方式去套用是否合理?其实两者之间不冲突,因为这样一个值如果能够忍受,按照收盘价计算的一定在其范围之内。而且相对于绝对止损而言,是容忍度问题,用收盘价计算,是出场问题。容忍度能够超过,对应的操作就是立即平仓,而不是等到价格再走到更加有利的位置,因为市场是不确定的,价格亦可能走到更加不利的位置,而这个位置已经突破了容忍度的限制,是不允许被看到的。

这个因素,是解决依靠逻辑出场的突发情况中,允许的最大回撤的问题。

出场允许的判定范围:

一般来讲,我们判断出场的范围都会有一个方式,比如突破一个重要的技术指标出场。那么,我们界定突破就要有方法,而不是凭感觉。比如,我会常用一种方法,就是连续2根K线的收盘价发生时,参考指标都连续符合突破标准,此时就判定有突破风险,无论后面情况如何,先出场再说。那么既然判断有两根K线都在符合这样一个状态,在我统计的有效数据之内,就会对这两根K线所能够运行的有效轨迹进行一个大体的统计。一般情况下,我会用第二根K线的收盘价减去第一根K线的开盘价的绝对值去计算这个值。在多空走势非常不一样的品种当中,我对值的统计会分门别类带方向,但是这种情况会出现得很少。

那么继续以螺纹钢的数据为例,我统计出来两个K线的波动率特征如下所示:

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='559' height='261'></svg>)

和上图容忍度的图做一个对比:

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='559' height='248'></svg>)

我们可以看到,惯性波动发生的时候,往往单根K线的走势也会比较极端,所以,以单根K线的容忍度作为对行情的紧急刹车,而在此基础上设置一个合理的判定区间,则是一种有效的保护方法。判定有效,有两个标准:能否有效的防止更大的回撤的发生;误判率能否控制在一个范围之内。

如果我们按照百分比看数据的波动,可以大致得到以下的数据:

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='303'></svg>)

根据前面所说的,判定取一个什么样值的范围,往往看一个做单的频率,以及一个标准。比如一个月大概10单,那么这个月中碰到即将出场或止损的清醒能有多少?显然不会太多,那么,这个时候,可能取一个80%的数据就够用了。但是如果做单比较频繁,那么出现小概率的数据就会越大,这个时候,数据百分比取的高一些较好,因为极端的数据波动这个时候在止损的时候出现的概率就会更大。如我的交易,一般会取在80%左右的位置,比如这里,大概会取在32个点,如果让几个点,会取在35个点。这样能够涵盖大部分的波动。

当然,如果你采用其他的判定标准,计算的方法也会不一样,这里只是提供一个参考算法,而不是一个参考标准。你完全可以通过这样的一些方法去计算认定出场条件达到的判定成本,从而,能够给回撤一个更加合理的成本。同时,也就可以选择如果过了这个成本,剩下来的回撤可以不承担,因为这个回撤范围的发生已经最终是一个小概率事件了。

这个因素,解决的是靠逻辑出场的时候的判定成本问题。

最大允许的止损范围:

前面,容忍度解决了在濒临出场的时候,一个多少的逆向波动可以认为是小概率波动,并被认定为最大容忍度而提前出场的标准;出场允许的判定范围解决了出场成本的问题(判定是需要成本的);那么,最大允许的止损范围,解决的就是从入场点,到需要判定出场前阶段的范围。

按照常理,这一环是非常重要的,之所以放到这里才讲,一方面,并不是所有的入场情况都需要算这么一个范围,比如一些指标的回踩,回踩的时候就入场,回踩不成功就出场,回踩的时点和判定是否回踩成功的时点是重合的,这个时候就不存在需要判定止损范围的情况。另一方面,最大允许的止损范围和参考的技术指标有关,也和交易逻辑有关,参考的侧重点不同,所依据的思路也会非常不一样。再一个,最大允许的止损范围的测算,不单单是风控,和资产管理系统包括策略系统是紧紧相连的。一方面,最大匀速的止损范围的确立,标志着单笔交易最大回撤的范围基本框定,框定了这个范围之后,通过资管系统,可以马上认定这个回撤是否合理。认定当然有两种情况,一种情况就是合理,那么就用。如果不合理,情况要复杂一些:第一种情况就是调整仓位,但是调整仓位之后可能会导致其他策略仓位跟着变得不合理(这个会下一篇讲),这就像是解一个多元多次方程,可能有很多解,也可能无解。当碰到无解的情况的时候,所需要的就是调整策略,比如指标参数,依据范围,甚至考虑废止或者添加策略,这都要视不同的情况而定。

但无论如何,只要用到的方法需要计算最大允许的止损范围,就要对其进行计算。这个计算,是为了解决一个难点,就是很多利用逻辑的出场,回撤是没有办法直接确定的。比如很多人用均线做金叉死叉,金叉进,死叉平或者直接反手,那么金叉到死叉在刚刚入场或者准备入场的时候,是很难直接做认定的。碰到这个时候,怎么处理这样的问题,就是靠最大允许的止损范围:即无论是否能够确定,我只亏这么多就完事儿了,出场。

一般来讲,最大允许的止损范围的设立,遵循以下几个标准:第一、其运用不能过于频繁,不能让其频繁代替逻辑止损,否则,只能说明策略逻辑不合理,或者最大允许的止损范围过窄;第二、最大允许的止损范围发挥作用的时候,是在系统出问题的时候越多越好。我前面讲过,世界上不会存在一套完美的交易方法,交易方法都有这样那样的问题,当然盈利点是明确的。我们可能并不需要找另外的东西去尝试解决这个问题,因为会带来新的问题,我们所需要知道的,就是问题在哪里,这样就可以选择规避这样的问题。这里的这个因素,无疑就是用来做问题规避的。如此运用允许的最大止损的范围,才是合理的。

举一个例子,还是说的均线做金叉死叉的,金叉进,死叉反手或平仓。当转向死叉的时候,此时会产生大量的回撤,但是交易者又不想对转向做提前的预判,那么,这个时候设置的最大允许的止损范围就需要对是否转向到死叉形成之前的这段距离至少有一个有效的研判作用。这里只是举一个很简单的例子,仅供大家思考,这个问题,当然是具体问题具体分析。

盈亏平衡点的合理性度量:

盈亏平衡点的合理度量很多人认为不是风险因素,因为当判断到这个阶段的时候,基本已经在考虑盈利的问题的,但是前面一篇定义风险的时候就讲过,价格的波动是风险的根源,只要你有持仓,你就有风险,利润的回撤难道不是风险?

盈亏平衡点里面存在这样一个逻辑:当我用这套方法进行交易,当利润达到多少以后,就不再允许利润全部回撤并再出现亏损的情况。也就是过了这个点,我只会考虑出场的时候利润还剩多少,而不会再亏损。为什么需要考虑这个问题?因为此时趋势还没有结束,还有盈利空间,但是获得后面的盈利空间是有风险的,这就相当于要首先看定所需要付出的筹码。

我们知道,在建仓之初,往往需要给行情一定的容忍度,因为你不能指望你一开仓行情就顺着你的开仓方向去走,但是,当行情顺向走一段之后,开始慢慢脱离开仓的点位,并积累了一定的利润,在这个时候,对于很多人来说是最难受的,如果持仓,要换取更大的利润,那么就要冒着回撤甚至回撤到亏损的风险,如果这个时候就平仓,那么似乎对后面的利润就心有不甘。所以,大多数人会给自己一个移动止盈或者止损。但是,移动止盈止损很多时候也并不好用,因为觉得刚刚打到了,可能行情又回去了。这个时候你有没有考虑过,既然开仓的时候,我们认可行情的不确定性会给一定的容忍度,那么,在有一定浮盈的时候这个容忍度是不是要继续有?答案明显是肯定的。

因为不管你用什么方法交易,都会涉及到一个问题,这个问题我在讲技术分析的时候曾多次强调:你所用的这个方法,是否具备明确的盈利点,这个盈利点着力在哪里。那么,什么是盈利点:说得通俗但不那么严谨一点,就是你的这种方法,靠什么样的类型的行情赚钱,类型包括很多特征:行情的走势特征,行情的级别,时间和空间的对应关系。只有确定了这些因素,才能够对盈亏的平衡点设置的合理性进行良好的度量。

一个方法的盈利点,首先对应的是你能够获得收益的一个基本形态特征,然后,对应的时间和空间级别也能够得到界定。而这里你需要明确的,就是时间和空间的对应关系。我很多次都会强调一个时间的概念,因为在交易的过程中,太多的人都只注重空间,却忽略了形成空间所需要的时间。而盈亏平衡点的设定,恰恰就应该有两种思路,一种是空间的思路,当空间达到了一定程度的时候,这个时候自然不想让利润回吐回去,这是一种大多数人都具备的惯性思维;一种是时间的思路,因为即便空间没有产生一定的异动,但是时间过得久了,其实行情会极大概率会和当初你的入场逻辑产生越来越多的冲突,这个时候,即便盈利不够丰富,也可以将其纳入盈亏平衡点的设置范畴。

那么,对于方法较固定的人,对于时间和空间的概念是比较明确的,这个时候就可以做一个事情:想清楚两个问题:我所做的行情一般的点位空间范围是多少?一般对于达不到空间点位但比较黏合的行情,让其能够保证还基本有效的时间范围是多少?第一个问题所解决的事情是:当达到这个空间范围一定比例的时候,为了保护前期的利润不会吐,而让行情能够达到充分的盈利空间,所设置的盈亏平衡点的问题。第二个问题所解决的事情是:当行情走得不顺但有了一定盈利的时候,对很少的利润因为可能指标不再适用而形成的利润的保护问题。

对于方法不太固定的人,首先要做的是尝试,首先尝试让建仓之初随机波动产生的利润和亏损不再对你的心态造成影响,这样更加有助于你判断正误。然后尝试开始设置一个盈亏平衡点,并设置这个盈亏平衡点达到以后采取的措施,这样会对你的交易帮助很大。

盈利允许的最大回撤范围:

当然,这里指的是达到你所设定的盈亏平衡点之后,盈利所允许的最大回撤范围。通常来讲,除了逻辑出场之外,用两种方法的人比较多:一种,按照最大盈利点位允许回撤一定的比例;一种,设置一个游动止盈(寻找支撑或者压力点位的方法我划定在按照逻辑出场里面,所以这里不说这个问题。)。

对于这两种方法,有好处也有弊端。比如通过比例来设置的,需要注意一个问题:你进的点位基本不可能是行情的头,参考衡量的点位,是行情的尾的概率也不会太高。那么,这个比例,你是想同时参照一下行情点位,还是仅仅作为一个资金参考。如果要带对点位的研判,你需要注意的问题就是:你的进场出场点位,和整体行情段位的冲突。这个时候,比如你按照黄金分割或者百分比的测量,可能和行情的整体性是有冲突的。这是特别要注意的问题。当然,这样做的好处是久而久之对资金的规划性体现得会较好,而且,在是否能够包含正常回撤的问题上,较固定点位的回撤比例要更加的容易。

按照固定的点位设置游动的止损止盈,对于大多数投资者而言可能更加熟悉,但是这么做的难点是找到一个合适的游动值。比如在开仓之后的容忍度的设置的时候,我们可以取一个很小的比例的值的范围进行设定就完事儿了,但是对于盈利,在行情延续的情况下往往是具有持续性的,所以,这个值所要包含的内容会更加的一般化。也就是说一般值对其的影响会更加的深远,而极端值如果达到了再走顺对其的伤害却更大,所以,这个比容忍度上更加难以把握。数据上,需要综合考虑行情的波动率以及波动范围;策略上,需要交易者自身对利润的把握度和允许的回撤空间之间的关系经过对比权衡,而在这一点上,是仁者见仁智者见智的。

虽然无法讲更多具体的东西,有一点大家却要注意,就是:一定要有一个标准,一个可执行的标准。

--------------------------------------------------------------

那么,作为单个品种的风控来讲,体现出来的一个整体模样应该是什么样子的呢?

还是以前面提到的12月份的螺纹钢的15分钟K线的数据为一个例子来说明:

假设目前有一个策略,这个策略有明确的进场点和出场点,那么风控上:

建仓阶段:在走的前10根K限制内,在策略之上给予一定的包容度,允许行情有50个点的回撤,若超过50个点的回撤,无论情况如何,立刻止损;在此基础上,若10根K线走完,并没有进场时候的盈利逻辑的持续,县出场观望。在这10根K线之内,若有突发情况,则在这根K线逆向波动50点的时候立刻出场,不做任何其他判断。

逻辑出场:当判定持仓已经不符合逻辑的一致性的时候,即出场,出场做以下判断:2根K线连续和逻辑相冲突,在第二根K线结束,第三根K线开始的时候直接平仓。在逻辑判定的过程中,从需要判定的第一刻起,若行情发生了35点以上的逆向波动,则中止判定过程,立马平仓。

在已经盈利120点以后,做盈利保护,不允许盈利再回到60个点以内,如果触及,则立马保护性止盈,并对行情再作判断;在利润120个点以上,始终保持让利润不会撤一半设置保护止盈线。若止盈线还未触及就已经有了逻辑出场条件,以逻辑出场为准。

如此,建仓阶段,逻辑出场的保护,盈利的保护都具备的话,一个策略的风险控制基本就完整了。

----------------------------------------

最后,我希望大家能够明确几个问题:

第一、风控是分阶段的,建仓初期的风控和后期的风控思路会随着交易的逻辑思路有所不同,但总体不冲突;

第二、风控对点位的限定,能够让大家对于预期的亏损或利润的回撤有一个预判,做这个预判有着很好的意义,能够让你明白这种情况即便发生了,资金上的效果,这样可以大大的稳定交易心态;

第三、风控系统没有绝对的那一种好,哪一种不好,都会有一定的适用性,同样,也都会有一定的误判率;

第四、风控的目的是为了控制风险,给资金在风险可控的情况下追求利润提供可能,而不会参与到利润的追逐当中,否则系统很容易崩塌;

第五、风控系统的使用频率不宜过高,如果交易触及风控出场的次数过多,只能说明要么没有交易逻辑,过度倚重风控系统,这样,风控系统失效的概率也就越大;要么风控系统不适合该策略导致策略无法很好的执行,这两种情况都是要规避的;

第六、风控系统的可执行性和明确程度都非常的重要,首先要保证风控系统本身不要产生额外的风险。

-------------------------------------------------------------

\

标签

交易风险控制