Пример #1
0
        public static long GetSIDFromName(string name)
        {
            try
            {
                long SID = 0;
                if (!_nameToSIDCache.TryGetValue(name, out SID))
                {
                    var nameToSID = new MarketDataDatabase().GetSIDFromName(new string[] { name });

                    if (nameToSID != null && nameToSID.Count > 0)
                    {
                        foreach (var pair in nameToSID)
                        {
                            if (!string.IsNullOrWhiteSpace(pair.Key))
                            {
                                _nameToSIDCache[pair.Key] = pair.Value;
                            }
                        }
                    }

                    if (!_nameToSIDCache.TryGetValue(name, out SID))
                    {
                        SID = -1;
                    }
                }

                return(SID);
            }
            catch (Exception ex)
            {
                _Logger.Error(ex);
                throw ex;
            }
        }
Пример #2
0
        public IDictionary <string, CryptoBar> GetLatestCryptoHistoryPrices(string[] symbols, string market, BarFrequency frequency, string datasource)
        {
            if (symbols == null || symbols.Length == 0 || string.IsNullOrEmpty(market))
            {
                return(null);
            }

            IDictionary <string, CryptoBar> output = null;

            try
            {
                if (string.IsNullOrEmpty(datasource))
                {
                    datasource = DATASOURCE_DEFAULT;
                }

                datasource = datasource.Trim().ToLower();

                if (datasource == DATASOURCE_ALPHAVANTAGE)
                {
                    output = new MarketDataDatabase().VA_GetLatestCryptoPrices(symbols, market, frequency);
                }
            }
            catch (Exception ex)
            {
                _Logger.Error(ex);
                throw ex;
            }

            return(output);
        }
Пример #3
0
        public IDictionary <string, StockBar> GetLatestStockHistoryPrices(string[] symbols, BarFrequency frequency, bool isAdjustedValue, string datasource)
        {
            if (symbols == null || symbols.Length == 0)
            {
                return(null);
            }

            IDictionary <string, StockBar> output = null;

            try
            {
                if (string.IsNullOrEmpty(datasource))
                {
                    datasource = DATASOURCE_DEFAULT;
                }

                datasource = datasource.Trim().ToLower();

                if (datasource == DATASOURCE_ALPHAVANTAGE)
                {
                    output = new MarketDataDatabase().VA_GetLatestStockPrices(symbols, frequency, isAdjustedValue);
                }
            }
            catch (Exception ex)
            {
                _Logger.Error(ex);
                throw ex;
            }

            return(output);
        }
Пример #4
0
        static Dictionary <string, TVCSymbolResponse> GetTVCSymbolsFromDB(IEnumerable <string> symbols)
        {
            MarketDataDatabase marketData = new MarketDataDatabase();

            TVCSymbolResponse[] responses = marketData.TVC_GetSymbolList(symbols);
            if (responses != null)
            {
                return(responses.ToDictionary(k => k.name, v => v));
            }
            else
            {
                return(new Dictionary <string, TVCSymbolResponse>());
            }
        }
Пример #5
0
 static void StoreTVCSymbols(IEnumerable <TVCSymbolResponse> symbols)
 {
     Task.Factory.StartNew(() =>
     {
         try
         {
             MarketDataDatabase marketData = new MarketDataDatabase();
             marketData.TVC_StoreSymbolList(symbols);
         }
         catch (Exception ex)
         {
             _Logger.Error(ex);
         }
     });
 }
Пример #6
0
 static void StoreTVCQuotes(IEnumerable <TVCQuoteResponse> quotes)
 {
     Task.Factory.StartNew(() =>
     {
         try
         {
             MarketDataDatabase marketData = new MarketDataDatabase();
             marketData.TVC_StoreQuotes(quotes);
         }
         catch (Exception ex)
         {
             _Logger.Error(ex);
         }
     });
 }
Пример #7
0
 private static void InitializeNameToSIDCache()
 {
     try
     {
         IDictionary <long, string> map = new MarketDataDatabase().GetSIDToNameMapping();
         foreach (var pair in map)
         {
             if (!string.IsNullOrWhiteSpace(pair.Value))
             {
                 _nameToSIDCache[pair.Value] = pair.Key;
             }
         }
     }
     catch (Exception ex)
     {
         _Logger.Error(ex);
     }
 }
Пример #8
0
        protected void RefreshCache()
        {
            if ((DateTime.Now - _calendarCacheLastUpdate).TotalDays > 1)
            {
                var newHolidayCache = new MarketDataDatabase().TVC_GetHolidays(null, null, null);
                if (newHolidayCache != null)
                {
                    _holidayCache = new ConcurrentDictionary <string, TVCCalendar[]>();
                    foreach (var holiday in newHolidayCache)
                    {
                        _holidayCache[holiday.Key] = holiday.Value;
                    }

                    UpdateMarketOpenDays();
                    UpdateMarketOpenMins();
                }
            }
        }