无庸置疑,交易中风险无处不在,无论是人工交易还是自动化的程序交易,都必须要认真对待风险控制这一重要工作环节。 单有事后风控显然是不够的,风险必须提前防范。怎么防范呢?笔者认为应该建立一套完整的体系,借助系统的力量来进行。 <!--more myquant--> 系统的力量通常,成熟的交易者都讲要建立自己的系统,符合个人交易风格的系统千人千面,但往往都有一个共同的点,强调执行的纪律性,其中最最关键的部分其实说的就是风险控制。 引子很多人都有自己下厨做菜的经历,个人感觉做饭是一项挺复杂的系统工程,尤其是前期的准备工作,费时费力,大厨的掌勺工作那部分到是考究天赋和技术的,工作量并不太大,但前期的准备工作量非常大,其中的切菜也是个危险活,做过饭的人应该有体会。 没有做过饭的人至少应该都见过“切菜”吧,电视上还偶尔有厨艺比赛,其中一项就是比"刀工",如何把菜切得又漂亮,又方便烹饪,并且速度还要快,这确实不是一件容易的事,更可怕的是经常还会不小心切到手,我在这里告诉大家一个秘诀,可以保证你以后绝对不会切到手。 秘诀源自小时候奶奶的教导,切菜时,按住菜的手暴露在刀口下,是最危险的,但只要把四个指头自然弯曲起来,指头向下轻按住要切的菜,保持第二指节竖直向下,四个手指的第二指节会共同形成一个立面,然后刀背贴着这个立面上下运动,因为正常人的手指做这个动作后,指头都会缩到这个立面远离刀的一侧,正好避开了刀锋,这样,无论你怎样运刀如飞,都不会切到手指了。 这就是系统的力量!不是靠你保持谨慎,专心致志地才能防范,那样一旦忽视它就又会跳出导致破坏,而是通过精妙的设计,形成一个安全的"防火墙"系统,来确保系统整体是安全可控的。 资金层面的风险控制从大的层面来讲,资金层面的风险控制应该是第一位的,无论你用传统的资金分配法构造投资组合也好,还是用Risk Parity方法来构造你的投组也好,都是从资金层面对风险进行宏观的控制。 在掘金量化平台上,我们提供了帐户资金分配层面的控制,一个策略组使用同一个或同一组帐户(如股票+期货),组内的每个策略是一个虚拟的子帐户,各个策略可以进行独立的资金量的控制,平台会利用风控规则进行检查,避免某个策略因为错误过多地使用了资金,从而避免的风险暴露的增加。 策略层面的风险控制具体到策略层面,可以进行一些更为具体的风险控制,策略层面的风险控制可以是在策略内部实现的,也可能是实现在策略外部的,比如掘金量化平台中的风控规则系统,就提供了各类常用的风控规则,这样策略可以根据需要挂载,不同策略间也可以共用,避免了重复开发。 站在基金经理,或公司管理者层面来讲,策略内部逻辑是一个具体而细节的东西,很多时候不太可能逐个去详细核实检查,这样的工作量太大而且很难真正落到实处。 策略内部的风控对于一个交易策略而言,其核心逻辑就是要在合适的时候发出“入场信号”和“出场信号”。 此外,入场信号在策略内部往往是一系列敏感信号过滤后的结果,具体来讲,就是通过模型的一些条件边界的设定,各个信号阀值的设定,模型内部经过逻辑处理后才最终发出的交易指令,这实际上就是在最后发出交易信号前进行了风险控制;此外,通常还会在策略内部设置了仓位的管理逻辑,通过逐步加仓、或者是第一个信号时只是试探性加仓,在趋势回调时再趁机补仓,从而更好地控制持仓成本; 另外,策略内部往往还有止赢止损的“出场信号”, 常用的有固定的止赢或止损,例如,赢利10个点或亏损3个点就结束这次交易;也有移动的止赢,例如,当价格从最高点回落3个点后止赢,或者是价格穿过MA均线后再止赢,来争取比固定止赢更多的赢利。 策略外部的风控首先,风控逻辑是无法完全实现在策略内部的,策略本身是一个独立完备的实体,但无论策略师怎样努力,都无法避免一些错误,也无法完整地考虑到市场可能出现的所有情况,此外,策略的核心目的是为了赚钱,把所有的可能的情况完整地分析并实现在策略代码逻辑中也基本上是不可能的,这样的策略代码会变得非常臃肿并且难以维护; 与其在策略内部实现复杂的逻辑,不如在策略外部进行限制措施,确保一些对赢利会造成伤害、现有策略逻辑下可能会发生的错误能在最后关口被阻止,以第三方的角度来控制策略风险,从这个意义上来讲,策略外部的风控无论从实现成本还是客观性上都更加地有意义。 |