技术分析的很多程序允许在历史数据上测试交易策略。在大多数情况下, 测试被连接到已经完成的数据上,在价格柱内这些数据不带有任何试图模式化的趋势。测试会快速进行,但是不是十分精确。 要得到高质量的交易策略测试,重要的是选择正确模式化价格柱的方法。最理想的状态是拥有一个完整的tick(即价格每一跳动)历史记录,但这种状况在现实中基本不存在。通常,一个交易者很难找到几年以内完整的tick历史记录,用来做分析。 解决这个问题,我们可以使用精确周期的数据作为模式价格变化的模式价格变化的参考点。
价格柱模式化的方法在 MetaTrader 4 客户端内存在三种模式化的方法: 每个替克 (以全部可用时间周期为基础的最精确方法)
控制点 (以最近较小的时间周期为基础的一个自然方法)
开盘价(在完整柱上快速的方法,只适用于明确检测柱打开的智能交易)
在测试开始之前会生成中级的价格柱, 结果被保存在文件中 (例如:/tester/history/eurusd_1440_1.fxt)。每一次点击开始按钮,测试将会生成包含测试替克顺序的新文件。在终端内Fxt文件可以作为离线图表通过 文件 ->离线打开轻松地打开 。 如果经常测试,tester文件夹将达数G的规模。 模式化范例现在让我们以一小时图表为基础做最简单的模式化。我们来研究一小时图表中红色圈出的柱 (九月, 5 2007, 10:00) : 开盘价一些交易者不希望依赖内部柱模式化的特殊性,所以他们创建智能交易在已经完整的柱上进行交易。事实上当前价格柱已经非常完整,可以通过下一个柱的显现看出。对于这些智能交易的模式化方法使用“开盘价"。 必胜说明:此种办法最为客观,不存在未来数据,可以作为切入点,但不够灵活,对于出场效率不够。 在这种方法中,首先需要打开柱(Open = High = Low = Close, Volume=1),并且允许智能交易准确地识别出先前价格柱结束。在这个刚刚形成的柱中开始智能交易的测试。下一步,模式化当前柱,但是不允许在这个柱上执行测试! 控制点 (最近小时间周期)控制点模式化方法适用于智能交易内部柱的自然评估。使用这个方法,最近小时间周期的历史数据必须具备可用性。一些情况中,可用数据来自较小的时间周期不能够完全覆盖测试时间周期的时间距离。如果较小时间周期没有数据, 演化的柱会以预定义模式生成。与先前MetaTrader 3客户端的第三版本(Mt3)相似。
加入这些数据,小时间周期的历史数据会很快显现。小时间周期显现已存在的 OHLC 价格作为控制点。大多数情况下,由控制点测试的智能交易测试结果只作为估测结果 ,而不是最后结果。这些结果具有中间价格的特点。 以下图表展示如何以控制点的方法创建一小时柱 2007.09.05 10:00 。 每个替克 (全部可用时间周期)这种方法能够更加精确地模式化变动的价格。与"控制点"不同,每个替克的模式化方法不仅使用最近小时间周期的数据,同样需要全部可用的较小时间周期。另外,如果在一段时间里同时存在数据超过一个时间周期,生成则使用较小时间周期的数据。与先前方法相同,这种方法生成检测点是以可用的较小时间周期OHLC 数据为基础的 。在控制点之间生成变动价格,同样使用以预定义模板为基础的插入法。这样,一分钟的可用数据覆盖测试的时间距离。 可能会发生相同替克一个接一个地生成。这种情况下,滤除重复报价并且固定最后三个连续报价。
必须考虑较大替克数量的生成。它会影响系统资源的消耗(占用cpu满)和测试速度。 注意:如果没有较小时间周期覆盖测试时间距离,无需开启每个替克测试。这种模式化只适用于以较小时间周期为基础的测试!
必胜注:测试时一般要保证1分钟数据的完整。
对于模式化使用的日期范围日期的范围使用不仅限于智能交易的测试,同样限于测试柱顺序的生成。我们无需生成完整地历史数据,特别是对于每个替克模式化,不会用到大量的数据。所以,如果初期测试顺序生成,可能使用日期范围。随后,超过给出范围的柱不再生成,但是只是输入数据覆盖到输出的顺序。 这析数据不会从定单的顺序中排出,可能计算指标获取完整历史的正确性。必须要注意的是第一个 100个柱不会在生成,这个限定不取决于日期范围的设置限定。 参考 M1 时间周期检测内部柱模式化的准确性,我们使用2007年9月 5日的一分钟图表。在10:00和 11:00 p.m. 之间作比较。 在每个替克的模式中,生成以下顺序: 因为每个柱的替克成交量不允许超过 5, 顺序生成插入最小使用。 基本上所有的都存在 OHLC 价格。
即使没有标准,只是简单地叠加一分钟图表到一小时图表 (在一小时图表中收盘价作为绿色线显示),它们几乎相同:
结论如果存在可用的辅助的较小时间周期能够百分百覆盖时间周期的距离,那么就能够执行最为精确的测试并得到值得信赖的准确结果。就是说,每个替克高质量的测试需要在历史数据的细节中找寻...
|