24/09/2026
Multi-symbol EAs often call SymbolInfoDouble(), SymbolInfoInteger(), and related functions on every tick for every tracked instrument. At 20 symbols, 10 ticks/sec, and 4 properties, that is 800 terminal lookups per second. These lookups cross into terminal internals and add measurable latency at scale.
A dedicated metadata cache removes repeated reads of static contract and session data. CSymbolMetaCache fetches per-symbol specification and weekly trading sessions once during Init(), serves typed getters from memory, and evaluates IsMarketOpen() via cached session windows without touching the terminal API.
Refresh becomes the only post-init API touch point, typically scheduled daily around server midnight. Static fields are safe to cache; dynamic fields like bid/ask/spread are not. Tick value is static only when profit currency matches account currency.