Unity – indicator for MetaTrader 5
Unity is a cluster multi-currency indicator showing synchronous changes in the value of metals and major currencies in a generalized form. It
was first published in the article
“Practical Use of Kohonen Neural Networks in Algorithmic Trading. Part II.
Optimizing and forecasting”.
In the essence its work is described by the following algorithm. Consider it on the minimalistic example with one currency pair (EURUSD) and
At every moment, the market state (that is current prices, or open prices of the bars) is expressed by obvious formulae:
EUR / USD = EURUSD
XAU / USD = XAUUSD
where variables EUR, USD, XAU are pure “values” of the assets, and EURUSD, XAUUSD are constants (exchange rates, or quotes).
To find the variables, we supplement the system with another equation, limiting the sum of the squares of the variables to unity:
EUR*EUR + USD*USD + XAU*XAU = 1
Hence the name of the indicator — Unity.
Simple substitution gives:
EURUSD*USD*EURUSD*USD + USD*USD + XAUUSD*USD*XAUUSD*USD = 1
Then USD can be found as:
USD = sqrt(1 / (1 + EURUSD*EURUSD + XAUUSD*XAUUSD))
and all other variables can be calculated.
x0 = sqrt(1 / (1 + sum(C(xi, x0)**2))),
i = 1..n
xi = C(xi, x0) * x0,
i = 1..n
where n — number of variables, C(xi,x0) — the quote of i-th pair
including corresponding variables. Please note, that the number of variables is 1 more than instruments.
Since the coefficients C involved in the calculation are quotes that are usually very different, in the indicator they are additionally
multiplied by contract’s sizes: this gives more or less comparable values (at least, of one order). To see them in the indicator window (just
for information) there is an AbsoluteValues input parameter that should be set to true. By default, it is, false, of course, and the
indicator calculates the increments of variables:
yi = xi0 / xi1 – 1,
where xi0 and xi1 are values on the last and the previous bars
Here is the screenshot for the cluster of EURUSD,GBPUSD,USDCHF,USDJPY,AUDUSD,USDCAD,NZDUSD,XAUUSD:
Cluster multi-currency indicator Unity, XAUUSD
The lines of assets that make up work symbol of the current chart (in this case, XAU and USD) are shown thick, the rest are thin.
The main input parameters of the indicator:
- Instruments — the string with the names of work symbols separated by commas; it is necessary for all instruments to have one common currency –
either base or quoting one;
- BarLimit — number of bars to calculate;
- Draw – drawing style;
- PriceType – price type used in calculations;
- SaveToFile — (option) a name of csv-file to which the indicator exports values for analysis in an external program, for example, in a neural
network; the structure of the file is the following: the first column is the date, all subsequent ones are the values of the
corresponding indicator buffers;
- ShiftLastBuffer – (option) flag for switching the mode in which the csv-file is formed; when the option is false, the data of the same bar are stored in
the file on each line, the number of columns is equal to the number of instruments plus one due to the division of tickers into components,
and plus one more — the first one — with dates, column names correspond to currencies and metals; when the option is true, an additional
column called FORECAST is created, in which the values from the column with the last asset are saved with the shift to one bar forward;
thus, in each row we see not only all the data for the current bar, but also next value of the last variable, which can be used by forecasting
Recommended timeframes – D1 and higher.