开拓者量化网 资讯频道 程序化交易 交易心得 统计假设检验在量化交易中的应用

[转] 统计假设检验在量化交易中的应用

2015-02-09 10:05 来源: 量投网 浏览:817 评论:(0) 作者:hjh1350

假设检验的基本原理:如果假设A成立,那么事件B发生的概率低于5%(当然也可以用10%或者1%等标准)。实际随机抽样检测中B发生了,我们可以在0.05的显著性下认为假设A不成立。在实际应用中我们要注意的是,第一,样本书越大,越容易验证条件A是否成立;第二,观察事件B是否发生时,一定是要随机抽样的。比如上面那个硬币的例子,如果不是随机抛硬币,而是由一个硬币抛掷高手来有认为控制硬币抛掷后的结果,那么得出来的结论对于硬币是否标准这一假设是没有参加价值的。为什么很多历史数据中表现很好的交易系统在后期的实盘时效果很差,很大一个原因就在于针对历史数据所设计的交易系统不符合抽样随机性。

交易应用示例:

写了这么多,还没有写到交易上,可能有些朋友急了。稍安勿躁,有了上面的基础,再来谈交易模型的假设检测,就很容易了。

先看一种最简单的量化交易模型,就是止盈和止损是同样比例的量化交易模型。比如西蒙斯曾经谈到过八十年代他们曾经靠一个很简单的模型赚过很多钱,就是跳空高开(或低开)后短时间内价格反向运动的概率很高,他们的交易策略就是高开后做空,低开后做多。现在我们来根据这个思路尝试做一个交易模型:跳空高开(或低开)x%后开盘入场做空(或做多),盈利或者亏损y%后就出场。为了便于讨论,我们先假设不存在滑点、手续费等问题,同时假设当天价格日内离开盘价的波动幅度必然会超过y%,也就说日内该笔交易一定会结束,要么是盈利y%后出场,要么是亏损y%后出场。这么简化后,大家再拿这个和抛硬币的例子对比,是不是完全一样了。

现在来运用假设检验的方法来验证这个量化交易模型。如果这个交易模型是无效的,那么交易盈利或者亏损y%的概率应该是各50%(如果亏损大于50%可以反向做的),和硬币的例子中两种结果的概率完全一样。现在我们拿检验硬币的思路来检验这个模型到底是不是无效的。我们拿这个交易模型去历史数据中测试,假如总共有50次交易记录,其中盈利的次数达到了32次以上或者18次以下(这样情况就把模型反着写,即高开后做多低开后做空),那么,在5%的显著性下我们可以拒绝模型无效这一假设,这个交易模型是有效的。

有的朋友可能会问了,这个模型中的x和y这两个参数到底取什么值呢?这就涉及到模型训练的问题了。x和y具体取什么值最合适,不通过数据测试,我们是无法知道的。通用的统计学方法(通讯、搜索引擎等领域也是这个方法)是,选取大量的训练数据,对模型各个参数进行测试,选择表现最佳的参数。具体到交易上,就是选取足够多的历史数据,进行参数优化,综合考虑收益率、最大回撤、稳定性等因素,选择相对最合适的。不同参数之间的好坏差异的比较在统计学上也是有方法的,相对复杂一点,以后有机会再写一篇详谈这个。

既然是量化交易模型训练后的最佳参数,问题也就来了,这个最佳参数是非随机产生的,而是人为训练选择的,这违背了我们在做硬币检测时所强调的随机抽样。那么,如何验证这个模型的有效性呢?统计学的方法是拿这个模型对新的数据(与原有训练数据完全独立)做测试,如果测试的结果仍然拒绝模型无效这一假设,那么,我们可以认为模型在很大的概率上是有效的。具体到交易而言,就是把历史数据分为训练数据和盲测数据两部分,训练数据用于模型训练,如果在训练数据上训练好的拒绝无效假设的交易模型在盲测数据中仍然表现为拒绝无效假设,那么,可以认为模型在很大的概率上有效。当然,还有进一步更严格的方式是,让模型继续在未来的新的数据上测试,如果表现仍然很好,则再可以考虑分配一定比例的资金开始实际运作。

我们在做程序化交易中经常谈到量化交易模型的衰败。那么,用什么标准来判断模型的衰败呢?我的个人思路是:继续用假设检验这个方法来检验。就是如果你在不断的交易过程中你的后期的一系列交易数据已经无法拒绝交易模型无效这一假设了,那么,这个时候即便你的量化交易模型仍然还是盈利的,你也要小心了,至少应该降低仓位了。

这个高低开的日内交易模型是很简单的一种模型了,止盈止损都是一个额度,50%对半开的随机假设,这个直接套用硬币的例子就可以。还有更复杂一点的,比如趋势交易模型,这种模型由于其趋势交易追求高盈亏比的理念,这种模型的胜率是低于50%的,一般在35%左右,但是盈亏比可能高于3:1。这种模型就不同于硬币的例子了,无法直接套用硬币的计算结果,但是思路是一致的,有兴趣的朋友可以自己思考一下这种情况下应该如何计算。


注意事项:

1.不可忘记或者因为某些利益因素故意忘记抽样统计中的随机原则。概率法则有效的前提是随机抽样。如果人为影响样本的抽取过程甚至制造假的样本,则样本对于总体的预测价值是0甚至是相反的。在做量化交易模型测试时,务必至少要有训练数据和盲测数据,在训练数据上表现优异的模型必须在盲测数据上也能足够优秀到可以拒绝模型无效的假设,才可以考虑将模型运用到实战中。网上有不少卖模型的人,给出的模型在历史数据上的交易曲线几乎是一条无回撤的上涨直线,但是,一旦实盘交易,就开始大幅度回撤,很大的可能就是在于这个模型针对历史数据做了非随机性的定向优化,同时因为利益的关系模型开发者故意没有做盲测这一个过程。


2.牢记假设检验的原则,宁可错过,不可做错。任何一个模型,在没有足够的数据证明这个模型是有效前,均假设该模型为无效的。这就是量化交易的痛苦的地方,量化交易者最容易出现的情况是,花了很多时间,在训练数据上挖掘出了一系列的可以拒绝无效假设的交易模型,跑到盲测数据上一一测试,均无法在0.05的显著性水平上拒绝模型无效的检验,心拔凉拔凉的,感觉这么多时间的付出浪费了,心有不甘。再怎么心有不甘,也不能自欺欺人的把没有拒绝无效假设的模型上线,心有不甘总比亏钱好。

3.要有风险意识。即便是在0.05的显著性水平下在训练数据、盲测数据甚至是新的实盘交易数据上全部拒绝无效假设,也不代表这个模型一定是永远有效的。一方面,这是由于这种将低概率事件近视为“不可能事件”的假设检验方式决定的。另一方面,也是很重要的一方面,就是可能随着时间的变迁,市场本质特征发生变化了,你这个模型背后所体现的那个影响市场的因素发生变化了。

说到量化交易模型背后所体现的因素,我展开多说一点。近几日和小鱼在微博上讨论了概率是否在金融市场上可以运用和市场是否可以预测的问题。否认市场可以预测的一个很有力的论据就是影响市场走势的因素千千万,交易者根本无法一一识别这些因素,更加难以识别这些因素中每个因素的权重影响,故无法预测。那么,有没有可能存在这样一种情况,就是我无法直接知道是哪些因素影响了市场,但是我可以间接的通过一种方式预测市场会以什么样的概率运动。我先说统计学上一个有趣的例子。

在美国的中西部的一个小镇上,人们发现一个很有趣的不合逻辑的现象,就是冰激淋的消费量越高,犯罪率越高。这个具体的两个变量间的线性相关程度统计学里面是有专门的公式的。总之,就是经过统计发现,犯罪率的高低与冰激淋的消费量存在强的正相关,即冰激淋销量高时犯罪率高,冰激淋销量低时犯罪率低。

现在两个问题:1.冰激淋销量是否可以预测犯罪率;2.如果人为控制改变冰激淋销量,是否可以改变犯罪率。

对于第2个问题,我想任何一个有生活常识的人都会知道,犯罪率与冰激淋销量完全无关,人为改变冰激淋销量并不能改变犯罪率。对于第1个问题,就会比较困惑了。因为常识告诉我们,冰激淋与犯罪无关,但是统计学的数据又表明二者是正相关,那么到底是什么原因呢?慢慢的,人们终于想到了天气这一共同因素。冰激淋的销量与天气紧密相关,天气越热销量越高,同时,天气越热,人越容易在室外活动,越容易开窗(导致偷盗概率增加),女性越容易穿着暴露(导致性犯罪增加),人的心情也越烦躁(导致冲动型犯罪增加)。于是,我们知道了,因为天气这一共同因素,只要没有人为的刻意影响冰激淋的消费量,冰激凌的消费量是可以预测犯罪率的。其实,只要我们没有人为的刻意影响冰激淋的消费量,即使我们不知道是因为天气这一共同因素,我们也可以用冰激淋销量来预测犯罪率。

现在说回到量化交易。假如,有这样一个量化模型,无论是在训练数据上还是盲测数据上还是在新的实盘交易数据上,均可以在0.05的显著下拒绝模型无效的假设,那么,我们有必要认为,在95以上的概率上,这个量化模型背后存在一种共同的影响因子能够较大的影响市场的短期走势,尽管,这个影响因子到底是什么我们不知道,但只要这个因子在,这个量化模型就仍然有效因为我们不知道这个因子是什么,所以我们更加不可能直接的发现这个因子是否已经变化了,我们仍然只能通过这个量化模型的之后的表现来间接预测。如果量化模型一直在0.05的显著下拒绝无效的假设,那么可以认为这个因子仍然存在,如果无法拒绝了,则可以认为这个因子可能消失了或者至少没以前那么重要了


通过上段分析,可以看出时间对于量化交易模型有效性的重要性。我想这也是高频交易开始流行一个很重要的原因。因为高频交易的模型,训练和盲测所需要的时间周期很短,那么量化交易模型背后的那个影响因素仍然存在的概率很高,而低频交易,训练和盲测所需要的时间可能需要半年甚至更长时间,很可能那个影响因素已经变化了。


评分:     

评论列表(0)
第 1- 0 条, 共 0 条.

您需要 [注册] 或  [登陆] 后才能发表点评