Unity - MetaTrader 5的多货币聚合指标解析

Mike 2019.07.18 01:38 37 0 0
附件

Unity是一款多货币聚合指标,能够以综合的形式展示金属和主要货币的同步价值变化。它首次发布于文章 “Kohonen神经网络在算法交易中的实用应用. 第二部分. 优化与预测”

本指标的工作原理可以通过以下算法来理解。我们以一个简单的例子来说明,考虑欧元兑美元(EURUSD)和黄金(XAUUSD)这两个货币对。

市场状态(即当前价格或K线的开盘价)可以用以下公式表示:

EUR / USD = EURUSD

XAU / USD = XAUUSD

其中,变量EUR、USD和XAU是资产的“真实值”,而EURUSD和XAUUSD则是常量(即汇率或报价)。

为了找到这些变量,我们还需要补充一个方程,限制变量的平方和为1:

EUR*EUR + USD*USD + XAU*XAU = 1

因此,这个指标的名字就叫做Unity。

经过简单的代入,我们可以得出:

EURUSD*USD*EURUSD*USD + USD*USD + XAUUSD*USD*XAUUSD*USD = 1

从中我们可以求出USD的值:

USD = sqrt(1 / (1 + EURUSD*EURUSD + XAUUSD*XAUUSD))

然后可以计算出其他变量。

一般来说:

x0 = sqrt(1 / (1 + sum(C(xi, x0)**2))), i = 1..n

xi = C(xi, x0) * x0, i = 1..n

其中n为变量的个数,C(xi,x0)为第i个货币对的报价,包括相应的变量。请注意,变量的数量比工具数量多一个。

由于计算中涉及的系数C是报价,通常差异很大,因此在指标中,它们还会乘以合约的大小:这会使得值变得相对可比(至少是同一数量级)。为了在指标窗口中查看它们(仅供参考),有一个输入参数AbsoluteValues,需设置为true。默认情况下,它的值是false,指标计算的是变量的增量:

yi = xi0 / xi1 - 1,

其中xi0和xi1分别是最近和之前K线的值。

以下是EURUSD、GBPUSD、USDCHF、USDJPY、AUDUSD、USDCAD、NZDUSD和XAUUSD的聚合指标截图:

聚合多货币指标Unity, XAUUSD

聚合多货币指标Unity, XAUUSD

当前图表的工作符号(在此案例中为XAU和USD)用粗线表示,其余的用细线表示。

指标的主要输入参数包括:

  • Instruments — 工作符号的名称字符串,用逗号分隔;所有工具需有一个共同的货币 — 或者基准货币或报价货币;
  • BarLimit — 计算的K线数量;
  • Draw - 绘图样式;
  • PriceType - 计算中使用的价格类型;
  • SaveToFile — (可选)导出值到外部程序进行分析的csv文件名,例如神经网络;文件结构如下:第一列为日期,后续列为相应指标缓冲区的值;
  • ShiftLastBuffer - (可选)切换csv文件生成模式的标志;当选项为false时,每行存储相同K线的数据,列数等于工具数量加上一个由于将报价拆分为组件而增加的列,另外还有一个列用于日期,列名对应货币和金属;当选项为true时,创建一个名为FORECAST的额外列,其中保存最后一个资产的值,向前偏移一根K线;因此,在每行中我们不仅可以看到当前K线的所有数据,还可以看到下一个变量的值,这可以用于预测算法。

推荐的时间框架为D1及以上。

列表
评论 0