测试Ⅰ仅由SMA来决定买卖

测试Ⅰ仅由SMA来决定买卖

为了让开始更简单些,我们首先只考虑SMA,而且也仅在USD/JPY中使用。这就意味着要在前一个交易系统可能的选项中选择第一项——SMA来进场和离场。因为我们正在寻找分别独立的迸场和离场策略,这意味着我们不得不找出SMA指标到底是最好的确认新趋势的指标,还是最好的确认趋势结束的指标。这就意味着需要回头看看SMA设置的一系列测试数据。

记得SMA是以最后第n个周期的收盘价为基础计算的平均数。如果n=1,那么SMA值就等于当前周期的收盘价。随着n的增加,SMA的值就反映了更多的时间周期。这意味着当n值较小时,SMA的值能够更好地适应价格的变化,并且比较大的n值更容易抓住短期趋势。

我们使用日线价格来设置这个系统,因为趋势信号一般是以日线数据为基础标出的,而且日线数据也能更好地适应我们所追求的更长周期、周线月线等周期。当使用任何其他时间周期时,分析方法是完全类似的。

当今开发这些交易系统的人,比那些花费经年累月开发系统的人的最大优势在于科技。因为有很多非常完美的软件,并打包附带极好的系统分析测试工具。当然,它们的价格可能会有点贵,而且大多数同一类型的研究分析,都可以通过电子表格制作完成。实际上,软件的开发者喜欢在最新的版本上做一些自己的测试,因为它提供了一些额外的便捷性和易于操控性。

在任何一个测试案例中,当今时代的系统测试应用的一个巨大的亮点是,你不仅能够快速评估许多个变量(快速读取SMA的不同时间周期数据),而且能够同时测试进场和离场条件,以找出最佳的配对。如果我们要测出过去2到100天的时间周期,并同时测试进场和离场条件,那么这基本上要测试将近10000个组合。每一个测试的时间段都从1999年到2004年,粗略估计大约有1300个价格点。这些要处理的简直就是海量数据。在经过超过45分钟的处理之后,其最终结果就会呈现出来。

测试报告如表7-2所示,该报告是通过使用Metastock软件包(www.equis.com)生成的。该软件展示的是按照给定测试区间的总盈利(净利润)高低来排序。其中盈利百分比一列显示的都是不适用(N/A),这是因为我们所做的只是基点数测试。

基点数测试

一种系统测试的评估方式,该方法不考虑账户回报.而只测量一共赚了或损失了多少个基点。

盈利/亏损率

盈利交易的平均获利除以失败交易的平均亏损。

对于每一个测试结果,我们都能看到总的执行(交易)次数,明确区分盈利和亏损交易(盈利交易/亏损交易),盈利/亏损率(平均盈利/平均亏损),和移动平均回退时间周期的进场信号(OPT1)和离场信号(OPT2)。

对于观察者而言有一个结果特征明显,即测试与测试之间有断点。差不多一半以上交易次数都在75到85之间。其余的交易次数差不多是它的两倍。现在看着进场信号这一列,答案就非常明显了。测试中交易次数较高的都是回退19到20个周期,而其他的都需要90到96个周期。记住,短期时间周期的移动平均线反应得更快速,这意味着有更多的交易信号。当然,更多的交易信号意味着更多的交易,而更多的交易又意味着更高的交易费用。因此,在其他东西都一样的情况下,使用在既定的时间区间内交易信号较少的那个交易系统,比信号多的那个更好。另外,正如我们在表7-3中所发现的那样,在本例中更长的时间周期测试显示出更好的盈利/亏损率。

现在花些时间来看盈利交易/亏损交易这一列。注意亏损交易的次数是如何远超过盈利交易的次数的。盈亏的比率是1:2 到1:3,这一比率意味着该交易系统的胜率只有25%到30%。尽管看起来如此可怜的盈利/亏损率,该系统却是一个可以盈利的交易系统,这一事实才是至关重要的东西。对于许多新(和老练的)交易者来说,一个非常严重的陷阱是,感觉上认为交易必须正确。只有正确的交易,正如很多人理解的那样,意味着盈利交易比亏损交易更多。为了继续进行真正成功的交易,这一观点必须得到纠正。

滑点(Slippage)

在交易系统希望执行的交易价格和交易订单实际成交的价格之间总是存在着差价。举例来说,当系统希望在100成交时,实际的买入价极有可能在101。尽管理论上讲,这既有可能是正面的也有可能是负面的,在系统测试过程中,保守的方法是正常地假设滑点对交易者不利。

能够获利的交易系统主要考虑两件事。一个是盈利百分比,另一个是盈利/亏损率。前者是关于盈利交易多久出现一次。后者是关于每次交易能盈利多少。如果将两者相乘,并且减去1——如果盈利百分比的最终值比0大,那么这个交易系统就是可获利的(假设交易成本和滑点都包含在盈利/亏损率中)。假设以下情节:

盈利交易百分比=20%

盈利/亏损比率=6:1

这意味着每5次交易中,只有1次成功交易而有4次失败交易。而平均盈利对平均亏损的比率是6:1。这个交易系统是成功的,因为即使5次交易中有4次都失败了,1次成功交易的收益就超过其他4次失败交易的损失(1×6-4x1=2)。

现在,我们看看下面这个替代方案。

盈利交易百分比=80%

盈利/亏损比率=1:6

这是一个失败的交易系统。即使系统正确交易的时候比失败交易的时候多,失败交易的损失超过了成功交易的收益(4×1-1×6=-2)。一个类似这样的交易系统就不应该过分考虑每次交易赢了多少,这样看毫无益处。在所有条件都相同的条件下,自然是较高一点的较好一些。一个理想的方案是在具有较高的盈利百分比的同时,也具备较高的盈利/亏损比率。这是每一个交易者的梦想——一个完美的交易系统!然而,更多时候我们只能得到折中方案。

对于趋势交易系统而言,较低的盈利百分比是十分普遍的,同时伴随着较高的盈利/亏损比率。为什么呢?因为市场总是花费更多的时间(在任何给定的时间周期下)横盘整理,而不是延展有方向性的运动。对于趋势交易系统而言,来来回回的区间交易造成了太多的亏损。然而,一个好的交易系统是这样组成的,由一定频率的较小亏损,和周期性的巨大收益一一当交易系统抓住一个良好的趋势并骑上它一一组成。还记得我们先前提到的EUR/USD的10天移动平均线交易系统吗?

注意图7-6中间部分那几次反反复复的交易。你可能会想起来这些交易都是失败的交易。尽管如此,由于有几个漂亮的趋势也被抓到,特别是图中间那次从3月中旬到4月中旬的趋势。这类趋势运动才是趋势交易系统获利的运动。趋势交易系统在为了获得那些大获利而接受小的亏损方面是非常有耐心的。

但是为什么趋势交易系统非要忍受那么多假突破的困扰呢?这归根结底是一个错误的肯定读数比一个错误的否定读数好得多的问题。

趋势交易系统是一个一切为了抓住价格主要运动的较大部分(如主升浪)的交易系统。这意味着当趋势真的发生时,你的系统必须正在市场中运行。否则的话就与该交易系统的目的背道而驰了。这也就是说这种交易系统在寻找新趋势方面将会积极进取。由于我们已经事先建立起了这样的理念,即市场横盘整理的时间多过有方向性的上涨或下跌运动。这意味着系统发出新趋势的指标大多数情况下都是错误的,错误的肯定比正确的多得多。尽管如此,但是为了抓住大趋势我们也会接受这一点。如果系统错过了趋势(错误地否定),那么该系统将一无是处,难道不是吗?

在我们的趋势交易系统中,USD/JPY的假突破和可获利趋势的交易区间之间,我们可以看到同一类断点。为方便讨论,我们选择92天移动平均线交易系统作为进场依据,而且用50天移动平均线交易系统作为离场依据。这样我们的交易规则就变成:

☆当收盘价格上穿92天移动平均线时开仓做多

☆当收盘价格下穿50天移动平均线时平仓多头头寸

☆当收盘价格下穿92天移动平均线时开仓做空

☆当收盘价格上穿50天移动平均线时平仓空头头寸

利润幅度

市场沿着交易的有利方向运行的幅度。这一度量被用来判定当你离场时会回吐多少利润。交易者总是想尽可能缩小在趋势的幅度和实际得到的利润之间的差价。

可以这么说,因为这意味着交易者装在自己口袋里的钱的多少。

这些交易规则是建立在统一测试(通过Metastock平台运行)进场和离场信号的基础上的。该系统的设置本着速度和高效的原则。因为我们可以使用的,用来找出趋势并知道它们何时结束的工具,在数量上非常有限。所以在实际操作中,交易者应该多花些时间分别对进场和离场策略进行回顾总结。在趋势交易系统的例子中,进场策略应该是那个最好的鉴别我们希望的趋势的长度(数周时间)的策略;而退场策略应该是那个最好的识别我们正在交易的趋势结束标志的策略,该策略能实现最大的利润。请读者务必记住这些要点。交易者常常专注于他们的进场点位,而忘记了一个重要的事实,即离场策略至少是和他们当初是如何进场的一样重要的。

在本环节中,我们的交易系统并没有涉及我们交易的头寸规模。下一章中我们会更多地讲到这一点。现在我们只需要把注意力集中在买/卖信号本身即可。

读者可以通过图7-7和图7-8看到我们移动平均线交易系统的交易行为。

图7-7展示得非常清楚,反反复复的交易行为是趋势交易系统的祸害。黑色那根是92天移动平均线,我们的进场信号线。请注意在本图所示的时间区间中它被上穿多少次。这些反反复复进进出出的价格运动,使得交易者做多做空反复倒腾(正如图中所示向上和向下箭头所示),通常会产生一连串相对较小的亏损。

现在我们看图7-8中趋势交易系统抓到的趋势。这个典型的例子,解释为什么会采用趋势交易系统的原因。这段开始于8月中旬,结束于第二年2月底的趋势运动,差不多有11个点的价格运动区间。在账户上,一次交易价值100000美元的USD/JPY,利润就会越过10000美元。这可是非常高的交易回报,尤其是考虑到这样一次交易的保证金只需要2000美元的时候。

图7-9展示了SMA系统资产净额——可变点的利润总额。(忽略美元单位)资产净额表现得非常参差不齐。你可以从表7-4的系统统计中精确地看到其中的原因。

在未获利的交易区间,请注意最连续的数字。该数字是13。这意味着在一个点位上交易系统经历了连续13次亏损。很有可能有一系列其他的类似这样的连串交易。这也是有时在资产净额中大幅度的资金回撤的一个重大原因。

盈利的交易并没那么多,最大的连续盈利交易次数是3次。如果亏损发生的次数超过盈利发生次数的两倍,这都没什么好奇怪的。这样的系统之所以还是一个盈利的系统的原因是,事实上,它的平均盈利的交易大约盈利3.21点(最大的盈利数值是13.15点!),而平均亏损的交易仅亏损0.82点。

关于数据

期货和期权数据

因为期货和期权是设定了期限的交易工具,它们总是在一个相对较短的时间区间内到期,所以交易者对它们的历史价格和当前价格的关联总会有额外的考量。你怎样才能保持基本不变的价格把合约从一个换到下一个呢?

最好的方法是,对于系统在某一点位的实时价格使用实际的详细数据。这样做会产生最真实的结果。

当然,也有许多人使用一系列连续的合约数据。这是一系列将一个即将过期的合约合并转仓为下一个活跃合约的数据。这样做就是为交易者提供一个更长的时间周期的可能性,尤其是当交易者只看到眼前的这一种合约之时。

连续的合约数据的主要问题在于,要么一系列价格的调整创建了一种编造的数据集合,要么价格序列中存在不连续的间断点,而这将会导致系统中错误的交易信号。

当然,就这一问题而言,很有必要提及对交易系统进行评估之时的几个关键点。首先是数据来源。并不是所有的数据都一模一样,尤其是当你使用指示性价格数据时。使用交易数据的最大好处在于,它们都是来自一个集中的地方,而且具有详尽的参数(时间标识等)。而指示性价格数据,和那些来自外汇市场的数据一样,往往在呈现时会有较大变化。任何给定的数据集合,包括开盘价/最高价/最低价/收盘价数据点位,也会和另一个来源的数据不匹配,这是因为它们使用了不同的报价方式和时间设置。举例来说,某一交易提供商可能会认为纽约时间下午4点整是外汇交易的收市时间,而另一个可能会认为下午5点整才是,而且第三个交易提供商则可能会采用格林尼治时间(格林尼治意味着国际标准时间)。为了更有效地评估一个交易系统的利润,交易者必须将系统使用的数据和实际交易中实用的数据统一起来。如果交易者通过外汇交易平台交易,那么你应该使用从外汇交易平台获取到的数据进行系统测试。

下面继续讨论数据这一主题。如果你使用指示性价格数据,首先一定要搞清楚数据是基于竞买价,竞卖价还是中间价(竞买和竞卖之间的价格)。遵循这一点,才能为继续研究延展数据提供良好的基础,为什么呢?因为交易者会在竞买价卖出,在竞卖价买入。延展数据会显著地影响交易系统的获利数据。举例来说,如果测试交易系统时使用的市场是10个基点的延展数据,但是仅在测试中使用,那么他们就会对每次交易的利润高估10个基点的利润,因为买入行为总是发生在比现在数据的显示提高10个基点的位置。这对于一个每次交易盈利很少的交易系统来说至关重要,这类交易系统通常有着较高的交易频率和较短的持有周期。而对于我们这种中级别的交易系统而言,这算不上什么大问题。

围绕指示性价格数据的话题讲了这么多,你可能会认为最好能获取交易数据(只要有可能)。记住本书中提过的关于交易价格问题的讨论。交易者没必要知道交易的价格有多好,尤其是成交量低迷的情况下。再者,交易达成的价格要么是竞买价,要么是竞卖价。交易者盯着标准数据集合,并不能具体分清是哪一个价格,因此,对于一个理想的交易系统来说,交易者并不知道该价格是否是他们用来作为进场或离场的价格。这就是为什么前向测试交易系统(我们稍后会提到这一点)非常重要的原因。

有许多交易者,当他们在开发交易系统的时候,总是在每次交易中通过滑点,尽力去解决他们的数据出现的异常情况。绝大多数交易软件都具有此功能,而且显而易见,运用电子表格做交易测试的交易者也可以轻松实现这一功能。同理,延展数据也是如此。持仓周期越长,交易频率越低,能有效减少滑点对交易系统获利能力的影响。