public void Initialize(int count = 0) { try { _lock.EnterWriteLock(); var symbols = _historyClient.GetSupportedSymbols(); var periodicities = _historyClient.GetSupportedPeriodicities().Select(Periodicity.Parse).ToList(); foreach (var symbol in symbols) { _symbols.Add(symbol); foreach (var periodicity in periodicities) { _periodicities.Add(periodicity); var keyBid = new Tuple <string, Periodicity, FxPriceType>(symbol, periodicity, FxPriceType.Bid); var keyAsk = new Tuple <string, Periodicity, FxPriceType>(symbol, periodicity, FxPriceType.Ask); _cachedBars[keyBid] = new BarsHistoryCache(keyBid.Item1, keyBid.Item2, keyBid.Item3, _historyClient); _cachedBars[keyAsk] = new BarsHistoryCache(keyAsk.Item1, keyAsk.Item2, keyAsk.Item3, _historyClient); } _cachedTicks[symbol] = new TicksHistoryCache(symbol, false, _historyClient); _cachedLevel2[symbol] = new TicksHistoryCache(symbol, true, _historyClient); } } finally { _lock.ExitWriteLock(); } try { _lock.EnterReadLock(); foreach (var historyCache in _cachedBars.Values) { historyCache.InitializeCache(count); } foreach (var historyCache in _cachedTicks.Values) { historyCache.InitializeCache(count); } foreach (var historyCache in _cachedLevel2.Values) { historyCache.InitializeCache(count); } } finally { _lock.ExitReadLock(); } }
public static string[] GetSupportedPeriodicities() { return(_client.GetSupportedPeriodicities().ToArray()); }