测试交易货币对篮子时出现的形态。第三部分
引言
我们正逐渐接近交易货币对篮子时出现的形态测试的最后部分。您可能还记得, 在我们 之前的文章 中, 我们描述过当组合指标图形与移动平均线交叉时形成的形态。我们还研究过利用它作为 超买/超卖线突破形态 过滤器的可能性。
我们已评估过组合指标上出现的形态的发展 - 振荡器图形。此话题可以被认为是完整的。
我们来测试最后的形态类型。在关于交易货币对的主要 文章 中, 有关它的说明位于 4 和 5 节。我要简单提醒您, 您可以在哪里找到这样的形态。
每双货币都属于其篮子。例如, EURUSD 代表两个货币篮子 — EUR 和 USD。这一货币对的行为可以使用两个组合指标进行分析 — 每个篮子对应一个。我们分析这些指标读数之间的差异, 以便检测它们相互之间的相对弱势加强势。因此, 我们能够得出趋势方向的结论。
组合指标图形基于所描述的原理, 我们在其上查找形态 4 和 5。我们已经知道它们的外观共性: 其中一个是基于超买/超卖线的突破 (我们将在本文中测试它), 第二个是在组合指标与移动平均线的交汇处。
我们来回顾一下这种形态的优点:
- 由于它考虑了货币对中的两支货币而非单支货币的行为 (如以前的文章 这篇 和 这篇), 分析变得更加准确。
- 根据这些形态入场时只针对一对执行, 而不是在整个篮子上执行。这反过来又给我们带来一些其它的好处:
- 更少的回撤;
- 为交易者带来更舒适的心理承受度, 并在日常仓位管理中提供便利。
形态研究
形态研究保持不变, 但我们会在新的组合指标图形上寻找它们。首先, 我们来看一下由组合指标图形突破超买/超卖等级的形态。假设我们已经知道等级的位置。在技术分析中这种形态众所周知, 其描述在 这里。我们将在蜡烛收盘时识别它。它看起来应该很明显:
目标形态 |
无形态 |
|
|
开始研究的工具
和以前一样, 我们使用 "United WPR" 指标和基于它的工具。主指标代码已显示在 前文。在本文中, 它们附加在 test.zip 当中。首先, 我们来定义可能的交易数量。
可能的交易数量
我们已经确定可能的交易数量不止一次。我们这样做是为了比较结果, 并评估超买和超卖等级的位置。您可能还记得, 这些等级在父本 WPR 指标中的位置如下:
- 超买等级 - 20%
- 超卖等级 - 80%
但是 "组合 WPR" 从 -100% 变为 +100%, 所以等级分别变为 +60% 和 -60%。如果它们的突破数量与所获得的结果相当, 那么我们假设这些等级保持不变。
我们将按照以下顺序研究 H1, H4 和 D1 时间帧。
- 将 testDistance.mq5 指标放置在图表上。还有两个其它指标 — testWPRjpy.mq5 和 testWPeur.mq5。
- 首先, 改变最后两个指标的代码: 它们当中的每一个均对应 testDistance.mq5 指标所在货币对中的一支货币。例如, testWPRjpy.mq5 指标包含 JPY 篮子的货币对, 那么 testWPReur.mq5 — 对应 EUR。所以, testDistance.mq5 放置在 EURJPY。
- 将 testIndexZig-Zag1.mq5 指标放置在 testDistance.mq5 指标图形上方 (我们已在 前文之一中描述了前者)。它突破 testWPReur.mq5 的数值范围 (从 100% 到 -100%), 间隔从 0 到 99, 并计算每个间隔内的突破次数。 将获得的数值假设为 testIndexZig-Zag1.mq5 指标的工作结果 (我们将其简称为 "结果") 并保存到文件中。生成这个文件是当前阶段的主要目标。出于便利, 下面是以表格形式提供的文件片段:
间隔编号 指标范围 最小指标值 最大指标值 突破次数 ... ... ... ... ... 47 -4 -6 -4 3 48 -2 -4 -2 5 49 0 -2 0 5 50 2 0 2 7 ... ... ... ... ... - 我们来分析一下结果文件。
我们仅需简单地将 testWPRjpy.mq5 和 testWPeur.mq5 指标指派到所有已分析货币对的每一支货币上即可处理。我们使用 EURJPY 和 EURUSD 作为示例。
我们来比较两个货币对的三支货币 (EUR, USD 和 JPY) 在三个时间帧 (H1, H4 和 D1) 的超买/超卖等级突破。
最有可能的是, 检测到的形态要比 之前 研究过的情况少得多。原因很简单: 为了使这个组合指标的图形突破超买/超卖等级, 应该同时发生两个事件:
- 基准货币超卖;
- 报价货币超买,
或反之。换言之, 一支货币必须尽可能弱势, 另一支货币尽可能强势。这并非一个非常频繁的情况, 所以突破的数量相较很少。
上述两个事件的巧合还可能具有非市场性质, 例如同时发布 "相斥导向" 的新闻。在这种情况下, "超买" 和 "超卖" 的概念并不完全正确, 但为了不使问题复杂化, 我们依然采用它们。
testIndexZig-Zag1.mq5 操作 (生成的文件) 的完整结果位于附件 Files.zip 文档中。测试是在整个可用历史数据上进行的。
我们总结表格中最重要的结果:
品种 |
时间帧 | ||
D1 | H4 | H1 | |
EURJPY | 2 / 3 | 19 / 19 | 39 / 46 |
EURUSD | 3 / 1 | 17 / 17 | 31 / 50 |
EUR | 5 / 1 | 15 / 16 | 67 / 73 |
JPY | 5 / 5 | 20 / 17 | 79 / 62 |
USD | 2 / 9 | 13 / 9 | 80 / 69 |
我们来澄清内容:
- 前两行是 testIndexZig-Zag1.mq5 针对两个选定货币对的操作结果。
- 最后三行是 testIndexZig-Zag1.mq5 指标针对三个 单独 货币对篮子的操作结果。每个篮子由基准货币, 或前两行中货币对的报价货币组成。
- 右边三列中的数值是来自附件 Files.zip 文档文件中发现的超卖 (-60%)/超买 (60%) 等级的数量。例如, 80/69 意味着检测到等级 -60% 突破 80次, 60% 的等级突破 69 次。
我们的任务是比较前两行和后三行的数据。在本节开始时, 减少突破数量的初步预测在 H1 时间帧是合理的, 而在 H4 和 D1 则 "失败"。我们可以假设 H4 和 D1 时间帧没有足够的突破来统计确定的结论, 或者我们可能需要改变超买/超卖等级。但我们不会那样做。分析仅针对两个货币对进行, 不足以作出正确的结论。因此, 一旦统计数据积累足够, 可能需要调整超买/超卖等级的位置。
不过, 我们可以得出一个合理的结论: 和以前一样, D1 上的入场数量可以忽略不计。
开始测试
我们 已测试过 一个类似的形态。因此, 我们使用已有的 testEAbasket2.mq5 EA 并对其进行略微修改。
- EA 调用 testDistance.mq5 指标。
- 尽管已有开单, EA 仍然可以在每次检测到形态时入场 (在每个超买/超卖等级突破处)。
我们稍微改变形态形式以便增加交易数量。在 EA 参数中反映这些更改。
- SELLPROFIT. 当组合 WPR 达到此值时, 篮子的所有空头持仓平仓。默认是 0%。
- SELL1LIMIT. 这是点 1 处的组合 WPR 的最小值 (参见上图), 以便开始识别篮子卖出形态。默认是 65%。
- SELL2FROM. 点 2 处组合 WPR 的最大值以便识别篮子卖出形态。默认 60% 是超买等级。
- SELL2TO. 用于最终识别篮子卖出形态的点 2 处组合 WPR 的最小值。默认是 40%。
- BUYPROFIT. 当组合 WPR 达到此值时, 篮子的所有多头持仓平仓。默认是 0%。
- BUY1LIMIT. 这是用于确定篮子买入形态的点 1 处组合 WPR 的最大值。默认是 -65%。
- BUY2FROM. 为了识别篮子买入形态, 点 2 处组合 WPR 的最小值。默认 60% 是超卖等级。
- BUY2TO. 对于篮子买入形态的最终识别, 点 2 处组合 WPR 的最大值。默认是 -40%。
此外, 主要指标 testDistance.mq5 应用 testWPRХХХ.mq5 指标, 提供某个篮子的组合 WPR 值。将最后的指标计算方法从算术改为几何平均值。计算指标值的不同方法在 此文 中有详细解释。在此我们只显示测试指标中负责主计算的代码片段:
double m_dParam = 0.143; // 1/LG double GetValue(int shift) { double dBuf[1]; double res=0.0; res = 1; for (int i = 0; i < LG; i++) { CopyBuffer(h[i],0,shift,1,dBuf); if (bDirect[i]) res *= dBuf[0]; else res *= dBuf[0] + 100; } res = -MathPow (MathAbs(res), m_dParam); return (NormalizeDouble((res + 50) * 2, _Digits) ); }
全套应用指标和 EA 在附件存档 test2.zip 中提供。
我们从 EURUSD 开始我们的工作。去年的结果:
针对 AUDUSD 和 USDJPY 的进一步测试未产生交易。显然, 篮子的一支货币超买, 同时另一支货币超卖的情况相当罕见。我们通过改变形态参数来增加突破的次数并继续测试。下面显示了更新的输入列表。
- SELLPROFIT. 无改变。
- SELL1LIMIT = 50%.
- SELL2FROM = 40%
- SELL2TO = 20%.
- BUYPROFIT. 无改变。
- BUY1LIMIT = -50%
- BUY2FROM = -40%
- BUY2TO = -20%。
EA 针对主货币对的测试报告显示在附件存档 result.zip 中。获得的损益显示在表格中:
AUDUSD | EURUSD | GBPUSD | NZDUSD | USDCAD | USDCHF | USDJPY | |
---|---|---|---|---|---|---|---|
H1 | -27.63 | 48.28 | 49.34 | -20.02 | -20.04 | 29.82 | -19.99 |
H4 | -35.10 | 14.44 | 1.60 | -49.18 | -38.75 | -15 | 2.46 |
D1 时间帧几乎没有交易, 因此它不包含在报告中。在其它时间帧内, 交易也很少。仅在 H1 上检测到可接受的结果。它显示了三个货币对的利润 (EURUSD, GBPUSD 和 USDCHF)。其它主要货币对表现出一些损失, 尽管不是那么明显, 但不能假定算法失败。我们不要忘记, 我们测试了最简单的 EA 版本, 没有过滤, 一条单独的入场规则和一条 - 离场。当然, 这对于真正的交易是不够的。我们可能会尝试改进 EA 并使其更高效。我们分析一下获得的结果, 找出我们下一步应该处理的算法。
分析测试结果
第一件我们应停止的事情是 H1 和 H4 交易数量之间的差异。可以理解的是, H4 的交易量较少, 因为与同样的时间间隔的 H1 相比, 蜡烛数量少了四倍。看起来交易的数量也应该少四倍。在我们的研究中, 这个规则有点黏性: 在所有分析的货币对上, H4 的交易少于 H1。由于 H1 上的交易很少, 因此存在一个问题: 如果我们想按照该方法在 H4 交易, 我们应该怎么做?只能有一种解决方案 - 进一步 "扩展" 这种形态:
- SELLPROFIT. 无改变。
- SELL1LIMIT = 45%.
- SELL2FROM = 40%
- SELL2TO = 10%。
- BUYPROFIT. 无改变。
- BUY1LIMIT = -45%
- BUY2FROM = -40%
- BUY2TO = -10%。
这可能会稍微增加交易的数量, 但它如何影响盈利和回撤?我们针对两个货币对进行额外的测试 - GBPUSD (它在 H1 表现出很好的利润) 和 AUDUSD (它表现出亏损)。
获取的结果与存档 result-1.zip 挂钩。事实上, "扩展" 形态预计会增加交易数量。值得注意的是, 盈利/无利被证明继承自 H1 - GBPUSD 看到了利润, 而 AUDUSD 则遭受了损失。但是这种形态是否已经 "扩展" 并开始更频繁地自我识别?最初, 该形态出现在超卖/超买线突破。在两次 "扩展" 之后, 谈论突破和曲线的新位置是相当困难的。也许, 交易者不应该在高于 H1 的时间帧上寻找这种形态, 以确保安全。
我们来看看测试过程中检测到的回撤。它们出现在上面的 EA 针对 EURUSD 的测试屏幕截图中。除了回撤之外, 我们还可以看到, 订单仅会在稍后回归到更加温和的位置才能获得稳定的利润。我们已在 此处 的类似形态测试中看到了这一点。可能的原因是什么?
- 离场规则的缺陷。正如您可能记得的, 当组合 WPR 突破其零轴时, 将执行离场。换言之, 它在基准货币和报价货币之间达到平衡。显然, 这还不够, 我们需要其它方法来定义离场时间。但在这种情况下, 我们不会采取任何其它手段来排除外部影响。
- 形态识别的缺点。我们已经扩展了 H1 和 H4 的输入。在 "扩展" 形态的同时, 我们已将超卖/超买等级上调至 45-40%。因此, 当系统自动发现形态时, 可能还没有真正的超卖/超买线突破。例如, 该线可能仅在一支货币上突破, 或者两支货币都可能在超卖/超买等级附近震荡, 而实际上没有穿越它们。在这种情况下, 当前的趋势可能会持续下去, 不会发生逆转。这种事件过程的可能性增加了更多额外的形态 "扩展"。形态输入越宽, 它变得越不重要。所描述的事件可能会导致回撤。
现在, 测试已经完成, 到了为我们的整个工作做出结论的时候了。
结论
- 该平台在 D1 时间帧中未能识别, 在 H4 上也很罕见。我不建议在高于 H1 的时间帧内寻找它。
- 我们可以通过降低对其形式和质量的要求来 "扩展" 这种形态, 以便增加可能的交易次数。但是如果我们太过度了, 这种形态就会失去它的能力, 并不能反映真正的超买/超卖等级突破。因此, 扩展形态要小心。
- 检查形态的盈利能力并不令人意外。不过, 有一些很有前途的特征。在货币对上没有检测到严重的损失, 其中一些甚至表现出利润, 而在我们以前的测试中, H1 时间帧完全是红色。这种形态显然有可能通过采用标准的技术手段产生稳定的利润 - 尾随停止等等。
- 所描述的形态很少出现。它应被视为增强其它形态的附加信号, 而不是制定入场决策的主要工具。我们稍后会尝试弄清楚这一点。
文章中使用的程序
# | 名称 |
类型 |
描述 |
---|---|---|---|
1 | test.zip | 存档 |
判断可能的交易次数的工具。 |
2 |
Files.zip | 存档 | 判断一些潜在入场时机的结果。 |
3 | test2.zip | 存档 | EA 测试工具。 |
4 | result.zip | 存档 | 形态测试 HTML 报告。 |
5 |
result-1.zip | 存档 |
在 H4 上的额外测试 Html 报告。 |
本文由MetaQuotes Ltd译自俄文
原文地址: https://www.mql5.com/ru/articles/4197