Ejemplo n.º 1
0
        public Models.StockPriceWrapper Get(string symbol)
        {
            List <Models.StockPrice> prices = new List <Models.StockPrice>();

            string SymbolDescription = "";

            try
            {
                var Symbols = from d in db.MstSymbols where d.Symbol == symbol select d;

                SymbolDescription = Symbols.FirstOrDefault().Description;
                DateTime date2 = Symbols.FirstOrDefault().LatestQuoteDate.Value;
                DateTime date1 = ((date2.AddDays(1)).AddYears(-10)).AddMonths(-5);

                var StockPrices = (from d in db.TrnStockPrices
                                   where (d.Symbol == symbol) &&
                                   (d.QuoteDate >= date1 && d.QuoteDate <= date2)
                                   orderby d.QuoteDate descending
                                   select new Models.StockPrice
                {
                    QuoteDate = Convert.ToString(d.QuoteDate.Year) + "-" + Convert.ToString(d.QuoteDate.Month + 100).Substring(1, 2) + "-" + Convert.ToString(d.QuoteDate.Day + 100).Substring(1, 2),
                    OpenPrice = d.OpenPrice,
                    HighPrice = d.HighPrice,
                    LowPrice = d.LowPrice,
                    ClosePrice = d.ClosePrice,
                    Volume = d.Volume
                }).ToList();

                foreach (var StockPrice in StockPrices)
                {
                    if (StockPrice.ClosePrice > 0 && StockPrice.Volume > 0)
                    {
                        Models.StockPrice price = new Models.StockPrice();
                        price.QuoteDate  = StockPrice.QuoteDate;
                        price.OpenPrice  = StockPrice.OpenPrice;
                        price.HighPrice  = StockPrice.HighPrice;
                        price.LowPrice   = StockPrice.LowPrice;
                        price.ClosePrice = StockPrice.ClosePrice;
                        price.Volume     = StockPrice.Volume;

                        prices.Add(price);
                    }
                }
            }
            catch
            {
                prices = new List <Models.StockPrice>();
            }

            var StockPriceWrapper = new Models.StockPriceWrapper();

            StockPriceWrapper.Symbol            = symbol.ToUpper();
            StockPriceWrapper.SymbolDescription = SymbolDescription;
            StockPriceWrapper.StockPrices       = prices.ToList();

            return(StockPriceWrapper);
        }
        public Models.StockPriceWrapper Get(string symbol)
        {
            List <Models.StockPrice> prices = new List <Models.StockPrice>();

            string SymbolDescription = "";
            string Exchange          = "";

            int dataCounter = 1;

            symbol = symbol.Replace(",", ".");

            try
            {
                var Symbols = from d in db.MstSymbols where d.Symbol == symbol select d;

                SymbolDescription = Symbols.FirstOrDefault().Description;
                Exchange          = Symbols.FirstOrDefault().Exchange;

                DateTime date2 = Symbols.FirstOrDefault().LatestQuoteDate.Value;
                DateTime date1 = ((date2.AddDays(1)).AddYears(-15)).AddMonths(-5);

                var StockPrices = (from d in db.TrnStockPrices
                                   where (d.Symbol == symbol) &&
                                   (d.QuoteDate >= date1 && d.QuoteDate <= date2)
                                   orderby d.QuoteDate descending
                                   select new Models.StockPrice
                {
                    QuoteDate = Convert.ToString(d.QuoteDate.Year) + "-" + Convert.ToString(d.QuoteDate.Month + 100).Substring(1, 2) + "-" + Convert.ToString(d.QuoteDate.Day + 100).Substring(1, 2),
                    OpenPrice = d.OpenPrice,
                    HighPrice = d.HighPrice,
                    LowPrice = d.LowPrice,
                    ClosePrice = d.ClosePrice,
                    Volume = d.Volume
                }).ToList();

                foreach (var StockPrice in StockPrices)
                {
                    if (Exchange == "FOREX")
                    {
                        if (StockPrice.ClosePrice > 0)
                        {
                            Models.StockPrice price = new Models.StockPrice();
                            price.QuoteDate  = StockPrice.QuoteDate;
                            price.OpenPrice  = StockPrice.OpenPrice;
                            price.HighPrice  = StockPrice.HighPrice;
                            price.LowPrice   = StockPrice.LowPrice;
                            price.ClosePrice = StockPrice.ClosePrice;
                            price.Volume     = StockPrice.Volume;

                            prices.Add(price);

                            if (dataCounter > 2623)
                            {
                                break;                      // There are more data in FOREX than in Equities
                            }
                        }
                    }
                    else
                    {
                        if (StockPrice.ClosePrice > 0 && StockPrice.Volume > 0)
                        {
                            Models.StockPrice price = new Models.StockPrice();
                            price.QuoteDate  = StockPrice.QuoteDate;
                            price.OpenPrice  = StockPrice.OpenPrice;
                            price.HighPrice  = StockPrice.HighPrice;
                            price.LowPrice   = StockPrice.LowPrice;
                            price.ClosePrice = StockPrice.ClosePrice;
                            price.Volume     = StockPrice.Volume;

                            prices.Add(price);
                        }
                    }
                    dataCounter++;
                }
            }
            catch
            {
                prices = new List <Models.StockPrice>();
            }

            var StockPriceWrapper = new Models.StockPriceWrapper();

            StockPriceWrapper.Symbol            = symbol.ToUpper();
            StockPriceWrapper.SymbolDescription = SymbolDescription;
            StockPriceWrapper.Exchange          = Exchange;
            StockPriceWrapper.StockPrices       = prices.ToList();

            return(StockPriceWrapper);
        }