第8章 K线评分法:一个新的交易方法
传统的系统开发都有明显的缺陷: 交易规则要么是黑的,要么是白的。只有当入场逻辑条件全部满足时,你才能入场;只有当出场逻辑条件全部满足时,你才会出场。两者之间并没有灰色地带,比如这是一个弱入场,那是一个强入场,或即使有一个逻辑条件不满足,这仍是一个好的入场机会。在本章中,我将介绍一种新的系统开发方法,我把它称为"K 线评分法" 。它会对每种金融工具每根K 线的盈利潜力进行分级。用用户自定义的标准来给每根K 线进行评分其分数为用户人场并持有至自定义的天数后的预期盈利。当该K 线的评分很高时,说明价格在向上移动;而当评分很低时,说明价格在向下移动。对K 线评分的方法,可以作为入场方法或出场方法来单独使用,也可以作为其他入场标准的补充。
本章将介绍这种K 线评分的方法,并提供大量的关于评分标准的例子,以及介绍整个评分过程。在介绍完该方法之后,我们将用股票市场的日频K 线数据来开发一个系统。该系统会把K 线评分法作为最终选择标准,来对某种传统入场技术所产生的交易机会进行选择。关于该系统是否存在曲线拟合的问题,我们会进行BRAC 检验。
传统系统设计的缺点是规则太僵硬
在第7 章所开发的唐奇安系统中,我们使用了唐奇安20 天最高价/最低价标准、70 天趋势过滤器和高波动率过滤器来发出入场信号。如果某天某个金融工具满足了这些条件,则会人场交易。如果没有满足全部条件,则什么都不做。但是,如果今天有100 种金融工具都满足了该入场条件呢? 其中一些入场是否会比另一些入场更好呢?传统设计中的那些僵硬规则并不会考虑这些情况。如果某个金融工具的收盘价在20 天最高价之上,同时也创了历史新高,但波动率高了1 美元,那又该怎么办呢? 这会不会是一个好的入场呢? K 线评分法可以在不要求满足特定入场条件的情况下,来对潜在的入场进行量化分析。
K 线评分法介绍
K 线评分法是一种对某种金融工具每根K 线的变动潜力进行区分的主观方法。K 线评分法包括两个部分,第一是判断标准,第二是X 天后的最终盈利。判断标准和度量盈利的天数,都是由用户自定义的。假设你决定使用14 根K 线的RSI 指标来作为判断标准,并且用入场后的第三天来作为度量盈利的时点。你将需要计算每根K 线的14 根K 线RSI 值,并标注该RSI 值在三天后的盈利(假设你在该RSI 的K 线的第二根K 线的开盘时入场做多) 。然后你就根据RSJ 值对历史结果进行排序,保证每个RSI 值都对应一个为期3 天的盈利。从上到下进行分组,每一组中都包括相同数量的RSI 样本。其结果可能看上去像表8-1 所示的那样。表8-1 是纳斯达克100只股票自2000年至2011 年底的结果。

表8-1 显示出纳斯达克股票的反趋势本质。当RSI 很小时,股价倾向于上涨;而当RSI 很大时,股价倾向于下跌。你还可以使用7 天的RSI 和1天的盈利,或者使用50 天的RSI 和10 天的盈利。所有这些都是用户自定义的。
当使用大量独立的度量方法,并将它们的结果组合成一个总的K 线评分时, K 线评分法最有用。你可以用从短期到长期的不同参数值来覆盖不同的时间框架,比如3 天、14 天和40 天的RSI 作为判断标准。或者你可以用诸如成交量和加速度等不同的股票特性来作为判断标准。如果使用的判断标准多于一个,那就必须在入场时使用相同数量的K 线,这样度量盈利才有意义。各个评分的和,就是该K 线的分数。用该分数除以判断标准的数量,就得到了在第二天开盘时入场,在未来一定天数时的期望盈利值。高评分意味着应该做多,而低评分则预示着做空的机会。K 线评分法还可以用来作为一种出场技术。如果你持有多头头寸,而此时的K 线评分很低,那就应该退出该笔交易。
在评分时,如果你想做短线交易,那就应该度量短期( 一个、两个或三个K 线的变化)的表现。这并不意味着你只能使用短期的判断标准,你当然可以使用40 天的RSI ,考察持有一天、两天或三天的盈利。如果你想做长线交易,那就应该度量20 、40 或更多K 线的盈利。唯一限制你的,是你的想象力。总评分会告诉你,你的工作究竟有多出色。你希望有差异的结果,即评分高的值与评分低的值应该有很大的距离。如果最大盈利与最大亏损之间的距离很小,那你所选择的判断标准,或者用于计算盈利的天数,就算不上好。对于你挑选好的K 线用来做多或做空时,就没什么帮助。
评分法还可以与你在交易中所钟爱的其他策略要素组合在一起。我采用在下跌时买入的方法来短线交易股票并在入场后第一天使用一个盈利目标。如果该盈利目标没有被触及,我会在下一天的开盘时出场。我可以用这些出场规则来交易,假设我在每天开盘时对那些具有最佳K 线评分的股票做多,而不是买入下跌的股票。这会给我一种我喜欢的出场策略优势。
K 线评分法可以应用于任何资产类别,不过我的观点是当有大量金融工具时,它的表现最好。在商品的世界中,只有不超过100 种的流动性工具。如果你用K 线评分法来确定每根K 线的最佳信号,那你最多只能在十多个交易中去选择。对于外汇交易也是如此。不过市场中有数以千计的高流动性美国股票。大多数系统都会在每根K 线上产生大量的交易。对这些交易进行评分,就可以让你优中选优。或者,你可以建立一个仅依赖与K线评分的系统,因为对于所有候选者而言,总会有个方法在某根K 线上评分很高。
K 线评分法示例
与任何其他技术一样,你需要大量的样本来避免曲线拟合。在本节中,我们将考察一些使用股票和商品的例子。对于股票的例子,我们使用了由3372 只股票结成的篮子,包括自2000 年至今的连续日频K 线数据。在这些数据中,共有3500000 根K 线的流动性大于20000000 美元。对于商品而言,我们使用了由56 种商品组成的篮子,包括自1980 年至今的连续合约日频K 线数据。在这些数据中,截至2011 年底,共有363000 根K线。在股票和商品的例子中,我们都将评分结果划分至相同数量的组中,就像我们在本章之前的RSI 例子中所做的那样。不过我们现在将不再分为10 个组,在没有额外注明的情况下,都将分为20 个组。在现实中,组数越多,效果越好。唯一的限制是,每个组中相同的样本数量(数以千计)应该能避免曲线拟合。
以K 线类型为标准进行评分
有许多种方法来区分某根K 线。蜡烛图是其中的一种,而开盘价、最高价、最低价和收盘价之间的关系,是另一种。我根据收盘价与开盘价之间的关系,把K 线分为四类: 第一类为收盘价大于开盘价,且收盘价在该波幅的上半部分; 第二类为收盘价大于开盘价,且收盘价在该波幅的下半部分;第三类为收盘价小于等于开盘价,且收盘价在该波幅的上半部分; 第四类为收盘价小于等于开盘价,且收盘价在该波幅的下半部分。通过加入昨天的收盘价与当前K 线的收盘价之间的关系,我把K 线类型的数量扩充为八种。图8-1 显示了这八种K 线类型。

表8-2 显示了对于股票和商品,这八种K 线类型在下一天的评分。对于股票而言,用下一根K 线的收盘价与其开盘价之间的变化百分数来计算盈利; 对商品而言,则用下一根K 线的收盘价与其开盘价之间的金额变化来表示盈利。

股票的收益相对较小,虽然第4 种K 线类型可能有用。对于商品而言,第5 种至第8 种K 线类型都能获得正收益,但每种情形下,今天的收盘价都比昨天的收盘价更低。这意味着,虽然商品在日频K 线的中长线区间中表现出趋势特征,但在以一天为基础进行考察时,它们是反趋势的。这四种K 线类型中,有三种为今天上涨的收盘价会在下一天下跌。
以收盘价高于/低于均线的标准差倍数为标准进行评分
对于每根K 线,我们都用最近20 天的收盘价来计算标准差。并用最新的收盘价减去最近20 天的收盘价平均值,该差值除以标准差值,就得到了最新收盘价高于在低于其20 天平均价格的标准差倍数。这就是用来进行K 线评分的标准。表8-3 显示了股票和商品在计算入场后5 天时盈利的价格标准差结果。

在看上表时,有两件值得记住的重要事情:股票和商品类别的每个组中,都包含了相同数量的交易;股票中所有日期的流动性都高于20000000美元,而商品中则为每个商品都有交易的日期。通过观察表8-3,对于股票和商品,都有许多有意思的现象。
对于股票而言:
● 股票的反趋势本质很明显。在5 天收益的不同组中,最大值出现在标准差倍数强烈为负时。当价格强烈上涨时(从很大的正标准差倍数可以看出) ,出现了最强的负收益。
● 纵观5 天的交易,可以发现股票存在持续的向上偏差:在5 天中,16 个组的平均交易期望值为正,只有4 个组在5 天中的交易期望值为负。此外,正期望值最大的组,其收益率为0.513% ,这是最大的负期望值( -0.141) 的3 倍。
对于商品而言:
● 商品的趋势跟随本质也很明显。正收益一般发生在标准差倍数为正数时,而负收益一般发生在标准差倍数为负数时。但有一点与股票不同: 最大的收益并不发生在最极端的组中。最大的正收益发生在从上往下数的第5 个组中,而最大的负收益发生在从下往上数的第6 个组中。仔细想一想,这与传统的系统开发存在怎样的差异。我们常对商品多头交易测试业绩指标的上部极端值; 而对商品空头交易,则为该指标的下部极端值。K 线评分法选出了最好和最差的表现,不管它发生在哪里。
● 向上的偏差是很明显的,因为在20 个组中,有12 个组都有正的期望收益。
下面让我们来看看以成交量为标准进行评分的例子。
以成交量高于/低于均线的标准差倍数为标准进行评分
这个标准的计算方法和上一节类似,不过这里用的是成交量,而不是收盘价。对于商品而言,成交量意味着所有合约的成交量。表8-4 显示了用最近20 天的成交量来计算标准差,并计算入场5 未后J盈利的结果。

在关于交易的书籍中,很少有对成交量的专门讨论,但表8-4 显示,它确实可以表现出一些机会。在股票中,那些成交量在均线之下一倍或更多倍标准差的股票,其在平均意义上会在后续的5 天中较其他股票有2-4倍的增值。在商品中,高成交量(第1 组和第2 组)和极低成交量(第20组)都是价格上涨的很好预测指标。事实上,在基于价格的标准差情形中,最好的商品组的收益为57.90 美元,而基于成交量的第2 组,其收益为58 美元。
在下一节中,我们将使用K 线评分法来开发一个短线股票系统。
股票系统示例:
使用定义好的标准来进行K 线评分
使用K 线评分的一种有效方法,是将其附加于一个相当好的入场策略中。这个相当好的入场策略,应该能在每根K 线上产生大量的交易信号。用K 线评分法来对这些交易信号进行排序,然后只选择其中最好的交易信号来交易。下面让我们来看看,在我们只做多的股票系统中,使用标准差来作为我们相当好的入场策略时的情形。我们知道,股票的日频K 线数据倾向于以反趋势的方式运动。因此我们将考察在最新收盘价低于近期均线一定标准差时买入股票的结果。让我们把10 日标准差和20 日标准差作为分析的起点。表8-5 显示了,当在股票价格满足这个标准差标准时的第二天开盘时入场,并在两天后的开盘时出场时的结果。


显然,对于这种持有两天的交易,使用10 天的数据来计算标准差,会得到更好的结果。单日的交易次数基本上与使用20 天数据时的结果一致,但单笔交易的平均收益率在每种情形下都会更高一些。因此我们将使用10天均线之下的1 倍标准差来作为我们的基准。下面来看看K 线评分法是否能显著提高单笔收益的值。
当使用10 天的数据、均线下1 倍标准差来作为入场标准时,会有595806 次交易,单笔交易平均收益率为0.288 。有些人可能会间,这么低的单笔收益,是否还值得去构建个策略?由于这些交易只持续2 天时间,因此在一年中,你可以交易约125 次。在不考虑复利的情况下,用125 次乘以每次0.288% ,就得到每年36% 的收益率(不考虑滑价和手续费) 。在之前的计算中,我们并没有使用杠杆。如果使用2 倍的杠杆,则该值会翻倍,为每年72% 。在考虑复利的情况下,无杠杆和有杠杆的结果分别为43% 和105% 。这就是比较可观的收益率了,即使考虑滑价和手续费,如果风险相对可控,则它可能就是值得去交易的。
如果我们对这个K 线评分标准设置20 个组,则595806 笔交易可以拆分为每组约30000个样本。这个数字已经足够大,可以避免曲线拟合了。但在系统开发的最后,我们仍将使用BRAC 流程,来进行曲线拟合检验。
我们定义的入场标准使用了10 天内的价格行为。让我们使用两个其他的价格标准,来看看单笔交易实际上有多脆弱。这两个标准是: 10 天的标准差度量和20 天的标准差度量。我们还增加了一个成交量度量标准:成交量的20 天标准差。另外增加了一个波动率度量标准:波幅(根据价格进行标准化)的10 天标准差。以及最后增加的8 种K 线类型标准。这样,每根K 线都会用5 种标准来进行刻画。表8-6 显示了这595806 笔交易的分组情况。

表中加粗的数值,表示其业绩高于仅使用单独入场策略时的平均交易结果,也就是单笔交易0.288% 的收益率。其他数值颇不怎么好,它们都低于0.288 的平均结果。由于每根K 线都能从这个5 个标准中得到一个评分,每天评分最高的,是那些有更多高于平均值贡献的样本和更少低于平均值贡献的样本。请注意,单根K 线的最高评分为每一列中最高收益率的和: 0.387+0.418+0.535+ 1.768+0.475 = 3.583。在这585806 根K 线中,这个评分并没有出现。
当在股票市场中使用日频K 线来进行短线交易时,这些标准显示出了许多信息:
● 高波动率的弱势股票有很大的上涨潜力。前5% (第1 组)平均能在未来2 天中获得1.768% 的收益。波动率更低的股票,则在未来2 天中的收益率更低。排在后80% (第5 组至第20 组)的股票的收益率,会比平均值0.288%低许多。
● 若用价格的2 倍标准差标准来度量,越弱的股票,表现越好,直到达到某个点。请注意,在这些列中,排在最后的5% (最后1组) ,其收益都比平均值0.288% 差。这可能意味着,一些最弱的股票,确实是不好的股票,因此不会像其他弱势股票那样反弹。
● 除成交量达到均值之上3 倍标准差时(这些可能是在大批量出货)之外,相对成交量高,结果越好。相对成交量低,也是好事,这可能是由于有人知道这些股票不会进一步下跌,因此他们就没有卖出。
● 在10 天中弱势,而在20 天中并不弱势的股票,会有更好的表现。正如20 天价格标准差标准中的第1 和第2 组所示。
在对每根K 线的这5 种标准的评分进行加总后,我们可以对这585806根K 线按日期进行排序,然后对每一天按评分进行排序。表8-7 显示了每一天中评分排名在前x 名的交易的结果。有时,对于某一特定天,并不存在排名在前x 名的交易,这是由于在那一天,并没有足够多的股票价格在10 天均线之下1 倍标准差处的交易。该表也显示了发生了x 笔交易的天数占比。

在每种情形中,单笔交易平均收益率都显著超过了我们0.288% 的平均值。因此K 线评分法确实让我们能够显著改善原基准策略的表现。
表8-8 显示了一个简单的资金管理方法的收益风险矩阵。该资金管理方法是: 我们交易x 笔头寸,在第一天人场二分之一的头寸,再在第二天入场剩余二分之一的头寸。如果我们的起始资金为50000 美元,并且我们希望同时交易10 笔交易,则我们会在第一天买入5 笔5000 美元的头寸,然后再在第二天买入5 笔5000 美元的头寸。这会让我们充分投资,但并没有使用杠杆。若交易笔数为10,则在每个下一交易日,都有5 笔旧头寸出场,5 笔新头寸入场。

表8-8 显示, 当每天的交易笔数从1 增长至10 时,收益率和回撤都在下降。当交易笔数从10 变至50 时,收益率会基本保持不变,但回撤会持续下降。当每天有50 笔交易时,我们能获得一个相当好的交易结果。收益率比平均最大回撤高2.5 倍,并且它也比整个测试期的最大回撤大。对于那些希望有更小回撤的投资者来说,可以用总资金的一部分来交易,而不是全部使用它。
线评分出击是否存在曲线拟合
在先前的例子中,我们使用了全部的数据来构建评分矩阵,并回过头来分析所有数据和每根K 线的评分。当我们对第一根K 线进行评分时,我们使用了在真实交易中当时还无法知道的全部数据。显然,这就存在曲线拟合。我们利用了当时还不可获得的未来信息。因此问题就在于: 曲线拟合有多严重?为了回答这个问题,我们进行了BRAC 检验。我们进行了与上一节中一样的开发过程,对策略进行了重新开发,但剔除了2011 年的股票数据,然后用之前策略中存在曲线拟合的2011 年的结果,与用2000 至2010 年数据进行重新开发的策略在2011 年的样本外结果进行对比。表8-9显示了对比结果。

除排前5 和前10 名交易的结果之外,这两个策略在2011 年的表现都匹配得相当好。可能最好的对比方式是它们的平均值。曲线拟合方法的结果,比使用样本外数据的策略的结果要高约12% 。这就是存在曲线拟合的缘故,但也仅仅是让业绩提高了10%-15%而已。
本章小结
本章介绍了一种新的策略开发方法:K 线评分法。K 线评分法通过使用许多类似的入场方法和统计它们在所希望的持有期内的平均收益,来判断每根K 线的预期盈利。K 线评分法可以在入场、出场中使用,或者作为某些特定入场逻辑的附加物来使用。
K 线评分法存在内在的曲线拟合,但BRAC 检验可以对其曲线拟合程度提供一个合理的估计。