第二节 检测方法
一、参数测试
检验交易系统中的一项重要任务,就是探索交易系统的参数值,其最常用的方法是网点法。具体过程如下:在预先设定的值域范围内,对系统中的参数值按一定的时间间隔(即步长),逐一进行检验。使用网点法,设计者必须注意以下两个问题: 一是把握好全局优化点和局部优化点的关系,二是优化得出的参数值要符合实际的市场情况。
笔者做了AMA 自适应移动平均线参数周期5~60 的系统测试,结果表明,随着参数值的连续增大,总交易次数连续减少。这也符合系统设计原理:时间周期参数值其实就是一个尺度,其值越大,就意味着过滤了较小的趋势,留下较大的趋势,而市场中的较大趋势总是相对较少的。参数值达到22 后,总交易次数发生了一次显著的大幅下降。就探索交易系统参数的要求来说,必须保证系统的交易次数能够满足交易实战的需要。如果交易次数过多,意味着交易频繁,无疑会增加交易成本。如果交易次数过少,意味着资金大部分时间处于闲置状态,资金利用率太低,因此笔者舍去了大于等于22 的参数数值。
接下来,笔者便考虑年回报率和胜率。趋势跟踪交易系统的胜率通常不高,能够达到50% 以上的并不多见。年回报率表示交易系统在历史数据中的盈利状况,其数值当然是越高越好。同时考虑到连续最大盈利次数和连续最大亏损次数,可以发现,参数值取值的较佳区间为13~21 。在这个区间内,系统测试的各项数据基本都在一个相对固定的范围,差距非常小。笔者选定的参数值为20 ,这个参数在市场实际表现中虽然不是最佳的,可能弱于与它相邻的其他参数值,但也属于较佳参数之一。当然,从系统化交易普遍接受的观点来说,并不追求交易系统在未来具有最佳的表现,能够有比较好的表现就能满足使用者的需求了。从这个角度来说,笔者的参数值还是能够实现这个目标的。
值得一提的是,考夫曼先生对AMA 自适应平均线的默认参数是10 天,但在A 股市场中,其效果并不比笔者选定的参数值20 优秀。以上证指数为例,经过最近15 年的数据测试对比,当参数值设为10 时,上证指数的净利润率为483.44%,平均盈亏比为2.56: 1 ,盈利系数(数学期望值)为0.19 ,这几个关键数据明显不如参数值为20 的表现,深圳指数的测试结果也是一样。
另外,当参数值设为10 时,总交易次数为169 ,年均交易次数为11.26。参数值为20 时,总交易次数为110 ,年均交易次数为7.33 ,这说明参数值为10 时发生的亏损交易次数要比参数值为20 时多,同时也证明参数值为20 时,交易信号过滤功能要比前者强,因为后者的交易次数相对要少,但净利润率却是前者的1.53 倍。
二、止损测试
在实际交易中,系统交易者通常会在比较靠近进场价格的位置设立止损点。一旦价格的不利变动达到这个位置时,投资者便会进行平仓交易,以控制这笔交易的损失幅度。在系统交易者眼中,设立止损点被认为是合理的风险控制手段,因此在实际交易中设立止损位是投资领域中一种被普遍接受的观点。A 交易系统自然少不了对止损点进行测试。
笔者在测试A 交易系统时,设立的止损条件为:当前市场价格与建仓价格相比,不利变动达到一定幅度时,进行止损交易。不利变动的幅度值从3%开始,以1% 为步长,直到20% 。当止损幅度小于3% 时,还不到1 个ATR 值,在价格的正常波动范围内止损,似乎并不明智,好像是为了止损而止损。
设立止损的本义是防止趋势逆转以控制损失,如果执行止损后,上升趋势并没有改变,那么此时的止损就是不正确的操作。为了尽可能避免出现这种情况,止损点的设置应该尽量与价格的波动幅度相适应,并且不能跟丢了上升趋势,因此止损点太大或太小都不明智,检测交易系统需要测试出止损点的合理区间。

笔者测试时主要从净利润率、平均盈亏比、盈利系数(数学期望值)、胜率等方面对A 交易系统的止损条件进行测试考察。
从表4-1 可以看出以下几点。
(1) 当止损点超过10% 以后,就没有任何意义了。如果建仓后出现不利价格变动,当价格还没有到达10% 的止损位时, A 交易系统自身的平仓信号就已经出现,交易者只需要根据A 交易系统的卖出信号离场就能控制风险。
(2) 当止损点设为3% 时,虽然净利润率、平均盈亏比、盈利系数都相对较高,但是在笔者的实战中,止损幅度决定了仓位的大小。根据笔者的仓位计算公式: BV=TRJ钮,其中, BV (Basic V olume )指底仓(基本仓位), TR (Total Risk )指总资金的最大风险, SR (Sub-Risk) 指底仓的最大风险。笔者的TR (TotalRisk)通常设为2% ,那么当SR( Sub-Risk )底仓的最大风险(止损幅度)设为3%时,底仓仓位=2%;- 3% x 100=67% ,这个底仓的仓位超过了笔者关于"底仓仓位不得超过40%" 的原则,故3% 的止损方法可以舍弃,一般不用。
(3) 当止损点设为4% - 9% 时,净利润率、平均盈亏比、盈利系数(数学期望值)、胜率等方面差别并不明显,而且还不如A 交易系统本身内置的卖出信号的绩效。当设置止损点后,止损条件几乎都是起负面的作用,这一点和普遍流行的止损观点相悖:多数投资人设定止损条件的时候,价格不利变动会被限制在一个较小的亏损幅度之内,比如8% 以下。这样较小幅度的亏损,才是多数人心里真正意义上的"止损"。
(4) A 交易系统的设计思想是趋势眼踪,其着重点在于市场的方向性和趋势的强弱度。当市场出现一个小幅逆于市场当前方向的波动,甚至是一个盘中的剧烈振荡,其并没有改变市场大的方向,趋势仍在延续,但这个小波动或者这个剧烈的盘中振荡却触发了止损交易。此后市场的趋势仍在继续,暂时的浮亏将会转为长久的持续获利,而前一次的止损交易已经使交易者平仓离场,这样就错过后来的持续性行情。一个较小亏损幅度的止损点使系统中一些本来应该盈利的交易变成了亏损交易,因此系统的净利润率、平均盈亏比、盈利系数都出现降低的情况。由于系统设定的交易信号保持不变,因此交易者无法获得新的进场信号,只能在止损平仓后保持观望状态。交易者想要重新进入市场,就必须给系统附加另外的交易策略,这样就使交易系统复杂化了,而笔者希望用简单的交易系统。
(5) 结论: 经过对A 交易系统止损点的测试,笔者发现A 交易系统自身的平仓信号要优于任何止损点,因此笔者在建底仓的过程中不再设置止损点,只使用A 交易系统本身内置的底仓平仓信号。但是建仓后,一旦A 交易系统发出离场信号,必须严格按照卖出信号坚决离场,因为这相当于底仓的初始止损。
三、止盈测试
证券投资领域流传着一句名言:会买的是徒弟,会卖的才是师傅。这句话也可以这样解读:买入时机解决赚不赚钱的问题,但卖出时机则是决定赚多赚少的关键。为了较好地把握出场点,笔者对A 交易系统的止盈点进行了测试。
测试中设立的止盈条件为:在一轮上涨波段中,只要价格不再创出新高, 20日内最高价格与当前价格相比不利变动达到一定幅度时,进行止盈交易。不利变动的幅度值从20 日内最高价格减去1 个ATR (波动幅度均值)开始,以0.5 个ATR 为步长,直到6 个ATR 。
设立止盈点的初衷是防止趋势逆转,以最大限度地保住利润,或者虽然回挡不足以改变上升趋势,但是回撤幅度较大,必须进行避险操作,从而避免回吐过多的利润。执行止盈纪律后,价格虽然回调,但上升趋势并没有改变,那么此时的止盈就是一次成功的避险操作,从操作层面上讲仍然是正确的。当回调结束重拾升势时,可以再度介入,此时风险相对要小一些。为尽可能避免出现"被震仓洗盘清洗出局"的情况,止盈点的设置应该尽量与价格的波动幅度相适应,以最大限度地保住利润,并且又不会跟丢了上升趋势。止盈点太大容易回吐过多利润,太小又可能被当作浮筹清洗出局,因此需要测试出止盈点的合理区间。表4-2 是A 交易系统在上证指数最近15 年有关ATR 止盈点的测试结果。

测试时主要从净利润率、平均盈亏比、盈利系数(数学期望值)、胜率等方面对止盈条件进行考察,由表4-2 可以看出。
(1) 当20 日内最高价减去1 倍的ATR 至4 倍的ATR 值作为止盈点时,净利润率是有区别的。止盈点过小,比如, 20 日内最高价减去1 倍的ATR 或1.5倍的ATR 值作为止盈点时,虽然胜率较高,但净利润率和平均盈亏比都变小了,说明在上升趋势改变前就已经出局了,属于"被震仓洗盘清洗出局"的情况,也就是说眼丢了上升趋势,从而导致利润率下降。
(2) 当20 日内最高价减去4.5 倍的ATR 至6 倍的ATR 值作为止盈点时,净利润率、平均盈亏比、盈利系数(数学期望值)、胜率等方面的数值不再发生变化,这说明止盈点过大,已经到AMA20 均线下方去了, 此时交易系统以AMA20均线作为止盈点。
(3) 结论一: 合理的止盈点区间应该在20 日内最高价减去2 倍的ATR 至4倍的ATR 之间,但20 日内最高价减去2 倍的ATR 值作为止盈点效果最佳。
(4) 结论二: 在设置AMA20 通道时,股价波动的上限应该为AMA20 均线值加上4 倍的ATR 值,下限应该为AMA20 均线值减去4 倍的ATR 值。按这一方法测试止盈点时,却意外地发现了AMA20 通道系统的极限上下轨,这也算是测试交易系统的收获吧。