- 显示:
- 2897
- 等级:
- 已发布:
- 2014.06.16 10:01
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
使用这款指标您可以创建基于选择的两个货币对的合成品种。
此指标算法如下:
- 起始日期 - 选择起始日期来构建品种。需要避免使用不必要的老旧历史数据。
- 品种 1/2 - 选择两个初始货币对。
下一步是准备输入数据。
- 动作 - 选择一种操作算法, 用于将两个货币对合并成一个。此处有 4 个可用操作符: - + / * 使用不同的比率。大概的总和对于该产品还可能是必要的,但我从来没有完成它。我很高兴有人给我写一些如何使用。
- 品种反转 1/2 - 如果相关系数为负,反转选定的系列。
- 品种深度 1/2 -选定序列的指数。我知道这是必要的, 虽然我从未使用这个选项,因为我确实不明白为何要对序列进行指数操作。我想这个选项可以用来均衡这些序列的纬度, 但是我使用乘法来完成此目的。如果假设为 true, 则其中一个对于另一个有啥好处?
- 品种乘数 1/2 - 序列乘以确定的数字。我使用它均衡序列纬度。
- 对数 - 转换结果序列至一个对数刻度。如果我使用对数, 我准备的最终序列使用两个源序列的不同。如果您不使用它, 则选择比率。一般情况,通过转换到这个规模,您就可以避免二次趋势的影响。不过,我没有看到短区间内的任何区别,所以往往我不使用它,并选择一个动作 - 比率。如果我错了, 我将十分高兴收到您的建议。
- 平滑周期 - 当所有动作完成, 在您合并两个序列为一个之前, 有时会对结果数据进行轻量平滑。我对序列的平滑使用带有确定周期的简单均线。几乎没有失真,但可能会出现尖峰,或市场上并未出现的报价。您可以选择不使用平滑,仅将参数设为 0 即可。当使用一个短周期来去除趋势 (见进一步选项),我不使用平滑。平滑使得当大数据出现时不会有数据丢失, 这样会使得最终序列较平滑而且噪音较少。
这些就是创建合成品种前,所有我们要做的数据准备。这些是我们完成的:
我们选取 EURUSD:
我们选取 GBPUSD:
这是合成品种:
最后一步是确定所需偏离来发现入场点:
- 选择算法 - Detrend 使用简单均线或一阶差分。从结果序列中去除趋势。我知道两种方式来实现 (我首选第二个)。第一种方式是从结果序列中去除所需周期均线 (滞后)。这个周期是在投资期限的基础选择。均线基于简单算法。但目前还不清楚使用指数与否有什么区别。我将十分高兴收到您的建议。第二种方式: 用两次一阶差分, 第一次用于每个货币对, 之后对结果进行差分。当序列没有强走势作用时,两种方式的最终结果十分相似。而当出现强走势时, 第一种方式给出了更快速的合成结果为 0, 这往往是一个错误指示。一阶差分: 替代 Close[1]-Close[2] 我使用 Close[1]/Close[2], 即,"第一个比率", 虽然我从来没有见过这个词。
- 算法周期 - 滞后, 偏移。如果设为 0, 则合成品种不可修改。
- 显示级别 - 显示或隐藏偏离级别, 交叉则表明入场决定。我在两个方向使用三个级别: 红, 黄, 绿。
- 级别计算方法 - 我知道三种方式来确定这些级别。方式 1 (称为归一化,在 0..1 偏移) - detrended 合成品种被归一化为一个单元范围, 使用偏移 = -0.5 则围绕 0 波动。我经常使用这个方法。然而,请注意,当我们没有提供极端稳定的初始数据时仍然归一化,那这些值不应该被考虑进去。由于此指标不会对过去的极值进行重绘,所以在图表上它看起来像这样:
但是在初始序列的两次或三次好的偏差之后您可以开始信任这些级别。极值归一化不会丢失积累的数据。
方法 2 (称为极值级别) - 就是跟踪绝对最大偏差并将它分为 3 个级别来入场。
与归一化一样的特点 - 直到收到稳定的极值,不建议信任这样的级别。
当使用这个方法我们看到如下图片:
使用如上方法来绘制级别有许多显著的优势 - 级别不会很窄。但也有一个缺点 - 如果有一个尖峰,随后的计算都会被它引导。为了去除它, 指标有称为级别系数的参数 (它是一个因子,允许您手工将入场级别收窄或放宽)。
绘制级别方法 3 - 计算标准方差。这个方法在指标中未实现, 因为它会导致级别窄化,以至于我认为不可接受。其结果是,级别像不断缩小和扩大的气泡。不幸的是我不能提供截图,因为我已经删除了该计算方法的所有指标。另一个缺点是,您需要经常检查所有可用数据来确保这一切计算正确。
附言,此指标已经从 MT4 移植到万用表中,来验证一些想法, 但也有一些备注:
- 此指标在数据不完整时会出现一些噪音。我不能找到原因, 这在 MetaTrader 4 中不会出现;
- 此指标在数据遗漏时,可以使用以前的历史数据,但由于在第 1 段,我留了空数据,所以我们可以清楚地看到此处数据被忽略了。
- 如果图形绘制有些怪异, 刷新图表, 改变周期, 货币对等等。
- 当无数据时,我尝试使用定时器 - 但结果不很满意, 所以我删除了定时器。
- 我怀疑1-4 的结果出于我的 "不够好" 的 MQL5 知识, 所以我感激您的所有建议。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/2197