Discussing the article: "Institutional-Grade Multi-Currency Portfolio Engine in MQL5 (Part 2): Instrument Universe Management and Symbol Metadata"
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Check out the new article: Institutional-Grade Multi-Currency Portfolio Engine in MQL5 (Part 2): Instrument Universe Management and Symbol Metadata.
This article adds a symbol metadata layer to the MQL5 portfolio framework, normalizing contract specifications across instruments with different tick sizes and profit currencies. A CSymbolRegistry class loads a symbol universe from file, queries broker data, and converts tick values into account currency, including cross-rate and CFD tick/point cases. The Portfolio Controller publishes per-symbol lot limits from this metadata, and Instrument Agents recover automatically once the controller becomes available.
A single-symbol Expert Advisor can afford to hardcode assumptions about its instrument. It knows the pip value, the contract size, the minimum lot, and the tick size because it was written and tested against one specific symbol. When that EA is deployed inside a multi-currency portfolio framework, those assumptions break immediately.
Consider a portfolio holding EURUSD, XAUUSD (spot gold), US30 (a CFD index), and USDJPY simultaneously. The contract size on EURUSD is 100,000 units of base currency. On XAUUSD, it is 100 troy ounces. On US30, it may be one unit of index value. On USDJPY, the pip value in account currency depends on the current USDJPY exchange rate. A position-sizing formula that applies a fixed dollar-risk-per-lot calculation uniformly across these symbols will produce badly wrong sizes for most of them.
The solution is a metadata layer that queries the broker's contract specifications at runtime, normalizes tick values into a common account-currency denominator, and stores the results in a structure accessible to every component of the portfolio framework. This layer makes no trading decisions. It exists solely to ensure that every calculation consuming position size, risk budget, or monetary value is working with accurate, symbol-specific figures.
Author: Ushana Kevin Iorkumbul