第十四章 自动化系统

第十四章 自动化系统


到目前为止,我们主要探讨的是用于构建日内交易系统的几种指标工具的用法。主要针对的对象是根据行情走势图和各种指标工具通过肉眼观察主观判断来确定交易机会的交易者。

虽然全自动计算机化的交易系统并不是本书探讨的重点,但是为了那些想把交易系统设计和执行提高一个境界的交易者,我在这里对自动化系统做一个简短的介绍。

在第十二章结尾的时候,我提到过交易者在盘中实时追踪分析单边趋势日过滤器指标、支撑和阻挡点以及各种摆动指标时会遇到的困难。使用自动化交易系统可以极大地简化应用这种交易策略的繁杂过程,因为程序化系统会在确定交易信号的过程中自动处理前面提到的各种指标工具。

我跟不少交易者讲过我们不仅要使用办公桌上的电脑还要使用我们两个耳朵之间的人脑。在我们人类能够开发出可以取代人脑的芯片之前我们还有很长的路要走。虽然我们可以自动化地处理很多产生交易信号的数学步骤,但是交易者必须给自己留下一些参与的空间。

在根据各种随机指标线、相对强弱指标线和百分比指标线产生交易信号的过程中,我们前面提到的交易策略强调了很多人类的参与活动。自动化系统可以根据提前设置好的程序把这些指标线综合提供的交易信号直接显示出来。

从本质上说这些自动化系统是按照提前预设的各种参数条件来运行的。虽然这些提前设定的参数条件需要交易者参与决策,但是它们从测试的角度为交易者提供了很多非常便利的选择项。当把这些系统应用到历史数据中去的时候,它们就能产生一个模拟交易的盈亏统计报表。各种不同的自动化系统参数条件设置会给交易者提供不同的交易系统结果,交易者可以据此确定是否应用这套交易策略还是继续测试。

交易系统的测试功能具有非常明显的优势。在交易者决定把真金白银投入市场之前可以利用它评估交易策略的有效性。以前我们曾经提到过,交易者的信心是交易能否成功的一个重要因素。拥有一套在历史数据中表现良好的交易系统当然会提振交易者的信心。

然而,自动化系统测试也可能对交易者造成伤害。因为现在的软件系统可以针对历史数据进行各种测试一直可以测试到完全与历史走势图相匹配的程度。这种被称为曲线匹配的测试通常都有点不太现实。它们把系统参数设置测试到如此接近历史走势的程度以至于没办法在将来的行情中重演。很多交易者在应用这种超级系统时都吃尽了苦头。一次又一次的痛苦让他们大跌眼镜。

一种被称为"样本数据分割测试"的测试方法可以帮交易者解决这种问题。这种方法要求交易者先测试一部分给定的历史数据,比如六个月,然后再把测试确定的系统参数应用到随后六个月的历史数据中再次进行测试。对于前六个月的数据而言后面六个月的历史数据在一定程度上相当于实盘数据。因此通过这种方式确定的系统参数就不会与整个历史走势配合得那么天衣无缝了。虽然这种方法比较复杂而且也超越了本书探讨的范围,但是请记住有些系统测试方法的确可以帮助交易者构建出优秀的交易系统。

或许自动化系统对于本书交易策略的最佳用途在于确定各种摆动指标的参数设置上。在根据这些指标编制一套自动化系统后交易者可以针对某一个特定的市场品种和时间结构确定最住参数设置。

本章中,我准备给你简单介绍一下计算机化程序系统开发方面的知识。这种系统构建过程同样需要我们人脑的参与,但是更多的是在早期阶段,在这个阶段需要制定和测试交易策略,在后期系统通过运算发出交易信号的过程中就不太需要人脑参与了。下面几段内容介绍的是为测试我们的早盘区间突破交易策略而构建自动化系统的过程。

在前面一章的内容中我们提到过构建股票交易系统的一个关键步骤在于挑选股票。选择股票的方法有很多。为了展示不同股票对于一个给定系统参数的不同反应我们曾经使用过统计分析的方法。在这里我准备充分发挥统计分析的作用。表14.1按照做多突破交易潜在最大利润平均值从大到小的顺序从前面提到的80只股票数据库中提取了前15只股票。

这个列表中的股票看起来好像应该在突破交易策略中产生良好的效果。通过对每一只股票应用计算机化的交易系统后,交易者就可以对它们的表现情况做出一些判断。从前面的探讨中你知道不同个股对于同一系统的反应情况可能出现很大的差异。在对这15只股票中的每一只应用同一系统后,交易者可以进一步地为每一只股票调整出最佳系统参数设置,从而确定最合适的时间节点、获利目标位和止损位。

开始的时候,交易者可以对每一只股票开盘后30分钟到90分钟期间内的时间节点进行逐一系统测试,最后确定突破入场最佳时间节点。这种测试通常会确定一个时间节点范围。在这个范围内应用突破交易策略都是可以接受的。在这个范围内最终确定哪个时间节点是由其它系统参数最优化后确定的时间节点范围来决定的。

我们现在必须确定出场参数。虽然对于获利出场和止损保护而言有很多种策略可以选择,但是我选择的是利用统计分析计算出来的止盈位来获利了结,利用计算出来的止损位来保护交易头寸。

我们下面从一整年的交易观点上来思考一下获利目标位。如果你一周可以从一只股票上获取1%股价的利润,那么你一年就会有与50%股价等比例的利润进账。这不错啊。假定我们保守一点,估计只有一半的交易机会是获利的,那么我们应当每周获取至少2%股价的利润才能实现平均每周1%的目标。因此,我们尽量要在每一次交易中获取2-3%股价的利润。如果我们可以做到这一点,那我们就可能达到平均每周获取1% 的利润。

在很多情况下,当探讨获利目标位和止损位时,我们都习'惯于用股价的百分比,而不是每股多少美元的方式。因为虽然交易者很容易从一个250美元股价的股票上获利1、2美元,但是要想从25 美元股价的股票上获利1 、2 美元就不是那么容易了,所以用百分比的方式来描述获利目标位时,不同股票的目标位设置情况就变得比较一致了。

对于止损位来说也是一样的。如果我们准备获取一个2-3% 的小额利润,那么我们就承担不起高于这个百分比的亏损,尤其是在我们假定只有一半交易次数是获利的情况下。

就像我们确定交易入场时间节点时应用的方式一样,我们可以利用自动化系统确定一个有效的获利目标位区间和止损位区间。当这两点确定以后,同样的程序就可以根据交易者的交易风格选定一套包括时间节点、获利目标位和止损位的系统参数。

现在,我们重申一下我们的决定。我们要为开盘后90分钟内进行的早盘区间突破交易确定一套交易系统。我们准备每次交易获取2-3%股价的利润,同时准备承担与获利目标同样的风险。

等一下,在这些参数设置上难道我们不需要更具体一些吗? 答案是需要也是不需要。当我们真正交易每一只股票的时候,我们确实需要更加严格参数设置。但是现在在当前的测试阶段把每一个参数的区间设置得比较宽松一些对我们的目标是有利的。请记住每一只股票在系统测试确定的获利性最强的参数设置情况下将会出现一些稍带偏差的反应。现在我们通过系统地测试三种参数就可以确定每一只股票的相应参数设置。

比如,通过这种系统测试我们确定: PMCS 股票在75分钟时间节点上进行早盘区间突破交易很可能会获取4.25美元的利润,同时具有3美元的亏损风险。BRCD股票在45分钟时间节点上进行早盘区间突破交易很可能会获取3美元的利润,同时具有3美元的亏损风险。其它股票在系统测试中也会确定出类似的参数设置。另外在测试中也很可能会出现这样的情况: 在某一只股票(比如CHKP 或ITWO 股票)获利性最强的参数设置上,止损位对应的止损空间超过了交易者的风险承受能力。这种情况下就不可能进行突破交易。请注意这里的具体系统参数设置只是一个假想设置,它们并不是通过实际系统测试得出来的。

虽然交易者可以通过手工统计计算完成这种测试过程,但是自动化系统测试软件(比如像本书从前到后一直在使用的欧米茄公司的交易站系列产品)不仅可以大大地简化这种繁杂的统计分析,而且可以避免很多不必要的失误。对于交易者关注的每一只股票或每一种期货合约来说,如果交易者准备完全靠手工来确定最佳参数设置的话,那么他将会花费的时间长度肯定是难以置信的。

在测试每一个市场品种的过程中,样本数据分割测试方法将会为交易者自信地在实盘中进行交易提供更有价值的系统参数。

本章内容回顾

1. 计算机化的交易系统可以根据市场价格数据直接为交易者提供交易信号。

2. 在具体应用某一套交易系统之前交易者可以利用自动化程序测试它在历史数据中的表现。这是自动化程序的一大特色。

3. 交易者可能会利用自动化程序测试出一套与历史数据完全匹配的交易系统。这种在历史走势中表现完美的交易系统可能在实盘交易中遇到很多问题。这是它的主要缺点。

4. 交易系统测试可以针对一只个股或市场品种为交易者提供一套最佳交易系统设置。