示例#1
0
        static void Main(string[] args)
        {
            Utils.WriteLine(ConsoleColor.Cyan,"Finance.Web.Example");

            HtmlWeb htmlWeb = new HtmlWeb();
            List<string> companyTickerSymbolsWeb = new List<string>() 
            {   @"NASDAQ:GOOG",
                @"NASDAQ:CSCO", 
                @"NYSE:HTZ",
                @"NYSE:MMM",
                @"NYSE:ACE",
                @"NYSE:AGN",
                @"NYSE:AOC",
                @"NASDAQ:AMGN",
                @"NYSE:AIZ",
                //@"NYSE:HRB", // This symbol has & symbols which makes the parsing explode. 
                @"NASDAQ:AAPL"
            };

            List<string> listingHistoricalPricesFiles = new List<string>()
            {
                @"C:\tmp\CSCO\HistoricalPrices.htm",
                @"C:\tmp\GOOG\HistoricalPrices.htm"
            };

            List<string> listingStockSummaryFiles = new List<string>()
            {
                @"C:\tmp\CSCO\Summary.htm",
                @"C:\tmp\GOOG\Summary.htm"
            };

            List<string> listingStockFinancialStatementsFiles = new List<string>()
            {
                @"C:\tmp\CSCO\Financials.htm",
                @"C:\tmp\GOOG\Financials.htm"
            };

            List<string> listingCompanyNewsFiles = new List<string>()
            {
                @"C:\tmp\CSCO\News.htm",
                @"C:\tmp\GOOG\News.htm"
            };

            #region Loading Financials from the file system.
            foreach (var file in listingStockFinancialStatementsFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                StockFinancials stockFinancials = new StockFinancials(document);

                Utils.WriteLine(ConsoleColor.Cyan, "{0} Cash Flows", file);

                foreach (var item in stockFinancials.CashFlowAnnualData.CashFlowValuesDatabase)
                {
                    Utils.WriteLine(ConsoleColor.Red, "{0}", item.Key);
                    item.Value.ForEach(p => Utils.WriteLine(ConsoleColor.Magenta, "{0}={1}={2} , ", p.Date, p.MemeberElementName, p.Value));
                }


            }
            #endregion 

            #region Loading historical prices from file system.
            foreach (var file in listingHistoricalPricesFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                HistoricalPrices historicalPrices = new HistoricalPrices(document);

                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();
                //System.Threading.Thread.Sleep(1000);
            }
            #endregion

            #region Loading company news from file system.
            foreach (var file in listingCompanyNewsFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                CompanyNews companyNews = new CompanyNews(document);


                companyNews.NewsItems.ForEach(p =>
                    {
                        Utils.WriteLine(ConsoleColor.Red, "==================================");
                        Utils.WriteLine(ConsoleColor.Cyan, "Title={0}", p.Title);
                        Utils.WriteLine(ConsoleColor.Cyan, "Snapshot={0}", p.Snapshot);
                        Utils.WriteLine(ConsoleColor.Cyan, "Source={0}", p.Source);
                        Utils.WriteLine(ConsoleColor.Cyan, "NewsLink={0}", p.NewsLink);

                        p.RelatedNewsLinks.ForEach(g =>
                            {
                                Utils.WriteLine(ConsoleColor.Green, "RelatedNewsLinks.AbsoluteUri={0}", g.AbsoluteUri);
                            });

                        Utils.WriteLine(ConsoleColor.Red, "==================================");

                    });
            }
            #endregion 

            #region Loading stock summary from file system.
            foreach (var file in listingStockSummaryFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                StockSummary stockSummary = new StockSummary(document);

                Utils.WriteLine(ConsoleColor.Cyan, "RefernceId : " + stockSummary.RefernceId);

                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Text: " + stockSummary.CompanyNews.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Link: " + stockSummary.CompanyNews.Link.ToString());

                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.CompanyDescription: " + stockSummary.CompanySection.CompanyDescriptsion);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.ExternalCompanyProfile.Text: " + stockSummary.CompanySection.ExternalCompanyProfile.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.EternalCompanyProfile.Link: " + stockSummary.CompanySection.ExternalCompanyProfile.Link.ToString());

                stockSummary.Mangement.ForEach(delegate(Mangement n)
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "Name: " + n.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Age : " + n.Age);
                    Utils.WriteLine(ConsoleColor.Cyan, "Title : " + n.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "ProfileLink : " + n.ProfileLink);
                    Utils.WriteLine(ConsoleColor.Cyan, "");
                });

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Text : " + stockSummary.Sector.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Link : " + stockSummary.Sector.Link);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Text : " + stockSummary.Industry.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Link : " + stockSummary.Industry.Link);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingPrice : " + stockSummary.ListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePrice : " + stockSummary.ListingChangePrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePricePercentage : {0}%", stockSummary.ListingChangePricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingPrice : " + stockSummary.ExtendedListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPrice : " + stockSummary.ExtendedChangeListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPricePercentage : " + stockSummary.ExtendedChangeListingPricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingTime : " + stockSummary.ExtendedListingTime);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.CompanyName : " + stockSummary.CompanyHeader.CompanyName);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingType : " + stockSummary.CompanyHeader.ListingType);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingSymbol : " + stockSummary.CompanyHeader.ListingSymbol);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Range : {0} ", stockSummary.Range.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.FiftyTwoWeek : {0} ", stockSummary.FiftyTwoWeek.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Open : {0} ", stockSummary.Open);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Volume : {0} ", stockSummary.Volume);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Average : {0} ", stockSummary.Average);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.MarketCapital : {0} ", stockSummary.MarketCapital);

            }
            #endregion 

            #region Loading stock summary from web.
            foreach (var item in companyTickerSymbolsWeb)
            {
                string[] s = item.Split(new char[] { ':' });
                StockSummary stockSummary = new StockSummary(s[1], s[0]);


                Utils.WriteLine(ConsoleColor.Cyan, "RefernceId : " + stockSummary.RefernceId);

                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Text: " + stockSummary.CompanyNews.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Link: " + stockSummary.CompanyNews.Link.ToString());

                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.CompanyDescription: " + stockSummary.CompanySection.CompanyDescriptsion);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.ExternalCompanyProfile.Text: " + stockSummary.CompanySection.ExternalCompanyProfile.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.EternalCompanyProfile.Link: " + stockSummary.CompanySection.ExternalCompanyProfile.Link.ToString());

                stockSummary.Mangement.ForEach(delegate(Mangement n)
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "Name: " + n.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Age : " + n.Age);
                    Utils.WriteLine(ConsoleColor.Cyan, "Title : " + n.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "ProfileLink : " + n.ProfileLink);
                    Utils.WriteLine(ConsoleColor.Cyan, "");
                });

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Text : " + stockSummary.Sector.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Link : " + stockSummary.Sector.Link);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Text : " + stockSummary.Industry.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Link : " + stockSummary.Industry.Link);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingPrice : " + stockSummary.ListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePrice : " + stockSummary.ListingChangePrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePricePercentage : {0}%", stockSummary.ListingChangePricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingPrice : " + stockSummary.ExtendedListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPrice : " + stockSummary.ExtendedChangeListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPricePercentage : " + stockSummary.ExtendedChangeListingPricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingTime : " + stockSummary.ExtendedListingTime);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.CompanyName : " + stockSummary.CompanyHeader.CompanyName);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingType : " + stockSummary.CompanyHeader.ListingType);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingSymbol : " + stockSummary.CompanyHeader.ListingSymbol);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Range : {0} ", stockSummary.Range.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.FiftyTwoWeek : {0} ", stockSummary.FiftyTwoWeek.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Open : {0} ", stockSummary.Open);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Volume : {0} ", stockSummary.Volume);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Average : {0} ", stockSummary.Average);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.MarketCapital : {0} ", stockSummary.MarketCapital);
            }
            #endregion 

            #region Loading company news from the web
            foreach (var item in companyTickerSymbolsWeb)
            {
                string[] s = item.Split(new char[] { ':' });
                CompanyNews companyNews = new CompanyNews(s[1], s[0]);

                companyNews.NewsItems.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Red, "==================================");
                    Utils.WriteLine(ConsoleColor.Cyan, "Title={0}", p.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "Snapshot={0}", p.Snapshot);
                    Utils.WriteLine(ConsoleColor.Cyan, "Source={0}", p.Source);
                    Utils.WriteLine(ConsoleColor.Cyan, "NewsLink={0}", p.NewsLink);

                    p.RelatedNewsLinks.ForEach(g =>
                    {
                        Utils.WriteLine(ConsoleColor.Green, "RelatedNewsLinks.AbsoluteUri={0}", g.AbsoluteUri);
                    });

                    Utils.WriteLine(ConsoleColor.Red, "==================================");

                });
            }
            #endregion 

            #region Loading Financials from the web
            foreach (var stock in companyTickerSymbolsWeb)
            {
                string[] s = stock.Split(new char[] { ':' });
                StockFinancials stockFinancials = new StockFinancials(s[1], s[0]);

                Utils.WriteLine(ConsoleColor.Cyan, "{0} Cash Flows", stock);

                foreach (var item in stockFinancials.CashFlowAnnualData.CashFlowValuesDatabase)
                {
                    Utils.WriteLine(ConsoleColor.Red, "{0}", item.Key);
                    item.Value.ForEach(p => Utils.WriteLine(ConsoleColor.Magenta, "{0}={1}={2} , ", p.Date, p.MemeberElementName, p.Value));
                }

            }
            #endregion 
            //throw new Exception("Still working on making it this far.");
            #region  Loading historical prices from the web
            foreach (var item in companyTickerSymbolsWeb)
            {
                string[] s = item.Split(new char[] { ':' });
                HistoricalPrices historicalPrices = new HistoricalPrices(s[1], s[0]);


                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();

                s = item.Split(new char[] { ':' });
                historicalPrices = new HistoricalPrices(s[1], s[0]);
                historicalPrices.Refresh(new DateRange(new DateTime(2007, 1, 1), new DateTime(2009, 1, 1)),
                    1, HistoricalPeriod.Weekly, 200);

                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();

                s = item.Split(new char[] { ':' });
                historicalPrices = new HistoricalPrices(s[1], s[0]);
                historicalPrices.Refresh(new DateRange(new DateTime(2005, 2, 23), new DateTime(2008, 6, 3)),
                    1, HistoricalPeriod.Daily, 200);

                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();

            }
            #endregion 

          
            #region Loading from the web.
            foreach (var item in companyTickerSymbolsWeb)
            {
                HtmlDocument document = htmlWeb.Load(googleStockQuery + item);

                #region StockSummary Example
                StockSummary stockSummary = new StockSummary(document);
                Utils.WriteLine(ConsoleColor.Cyan, "RefernceId : " + stockSummary.RefernceId);

                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Text: " + stockSummary.CompanyNews.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Link: " + stockSummary.CompanyNews.Link.ToString());

                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.CompanyDescription: " + stockSummary.CompanySection.CompanyDescriptsion);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.ExternalCompanyProfile.Text: " + stockSummary.CompanySection.ExternalCompanyProfile.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.EternalCompanyProfile.Link: " + stockSummary.CompanySection.ExternalCompanyProfile.Link.ToString());

                stockSummary.Mangement.ForEach(delegate(Mangement n)
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "Name: " + n.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Age : " + n.Age);
                    Utils.WriteLine(ConsoleColor.Cyan, "Title : " + n.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "ProfileLink : " + n.ProfileLink);
                    Utils.WriteLine(ConsoleColor.Cyan, "");
                });

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Text : " + stockSummary.Sector.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Link : " + stockSummary.Sector.Link);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Text : " + stockSummary.Industry.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Link : " + stockSummary.Industry.Link);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingPrice : " + stockSummary.ListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePrice : " + stockSummary.ListingChangePrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePricePercentage : {0}%", stockSummary.ListingChangePricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingPrice : " + stockSummary.ExtendedListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPrice : " + stockSummary.ExtendedChangeListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPricePercentage : " + stockSummary.ExtendedChangeListingPricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingTime : " + stockSummary.ExtendedListingTime);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.CompanyName : " + stockSummary.CompanyHeader.CompanyName);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingType : " + stockSummary.CompanyHeader.ListingType);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingSymbol : " + stockSummary.CompanyHeader.ListingSymbol);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Range : {0} ", stockSummary.Range.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.FiftyTwoWeek : {0} ", stockSummary.FiftyTwoWeek.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Open : {0} ", stockSummary.Open);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Volume : {0} ", stockSummary.Volume);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Average : {0} ", stockSummary.Average);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.MarketCapital : {0} ", stockSummary.MarketCapital);


                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.P_E : {0} ", stockSummary.P_E);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.P_E : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Dividend : {0}", stockSummary.Dividend);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Dividend : {0}", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Yield : {0} ", stockSummary.Yield);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Yield : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.EPS : {0} ", stockSummary.EPS);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.EPS : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Shares : {0} ", stockSummary.Shares);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Shares : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Beta : {0} ", stockSummary.Beta);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Beta : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.InterestOwned : {0} %", stockSummary.InterestOwned);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.InterestOwned : {0} %", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.HomePage : {0} ", stockSummary.HomePage.ToString());
                #endregion 

                #region HistoricalPrices Example
                document = htmlWeb.Load(googleStockQueryHistoricalPrices + item);
                HistoricalPrices historicalPrices = new HistoricalPrices(document);
                #endregion

                #region RelatedCompanies Example
                document = htmlWeb.Load(googleStockQueryRelatedCompanies + item);
                RelatedCompanies relatedCompanies = new RelatedCompanies(document);
                #endregion 

                #region StockFinancials Example
                document = htmlWeb.Load(googleStockQueryFinancials + item);
                StockFinancials stockFinancials = new StockFinancials(document);
                #endregion 

                #region StockNews Example
                document = htmlWeb.Load(googleStockQueryCompanyNews + item);
                CompanyNews stockNews = new CompanyNews(document);
                
                #endregion 

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();

            }
            #endregion
            
            Utils.WriteLine(ConsoleColor.Red, "Press <Enter> to Exit ...");
            Console.ReadLine();
        }
示例#2
0
        static void Main(string[] args)
        {
            Utils.WriteLine(ConsoleColor.Cyan, "Finance.Web.Example");

            HtmlWeb       htmlWeb = new HtmlWeb();
            List <string> companyTickerSymbolsWeb = new List <string>()
            {
                @"NASDAQ:GOOG",
                @"NASDAQ:CSCO",
                @"NYSE:HTZ",
                @"NYSE:MMM",
                @"NYSE:ACE",
                @"NYSE:AGN",
                @"NYSE:AOC",
                @"NASDAQ:AMGN",
                @"NYSE:AIZ",
                //@"NYSE:HRB", // This symbol has & symbols which makes the parsing explode.
                @"NASDAQ:AAPL"
            };

            List <string> listingHistoricalPricesFiles = new List <string>()
            {
                @"C:\tmp\CSCO\HistoricalPrices.htm",
                @"C:\tmp\GOOG\HistoricalPrices.htm"
            };

            List <string> listingStockSummaryFiles = new List <string>()
            {
                @"C:\tmp\CSCO\Summary.htm",
                @"C:\tmp\GOOG\Summary.htm"
            };

            List <string> listingStockFinancialStatementsFiles = new List <string>()
            {
                @"C:\tmp\CSCO\Financials.htm",
                @"C:\tmp\GOOG\Financials.htm"
            };

            List <string> listingCompanyNewsFiles = new List <string>()
            {
                @"C:\tmp\CSCO\News.htm",
                @"C:\tmp\GOOG\News.htm"
            };

            #region Loading Financials from the file system.
            foreach (var file in listingStockFinancialStatementsFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                StockFinancials stockFinancials = new StockFinancials(document);

                Utils.WriteLine(ConsoleColor.Cyan, "{0} Cash Flows", file);

                foreach (var item in stockFinancials.CashFlowAnnualData.CashFlowValuesDatabase)
                {
                    Utils.WriteLine(ConsoleColor.Red, "{0}", item.Key);
                    item.Value.ForEach(p => Utils.WriteLine(ConsoleColor.Magenta, "{0}={1}={2} , ", p.Date, p.MemeberElementName, p.Value));
                }
            }
            #endregion

            #region Loading historical prices from file system.
            foreach (var file in listingHistoricalPricesFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                HistoricalPrices historicalPrices = new HistoricalPrices(document);

                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();
                //System.Threading.Thread.Sleep(1000);
            }
            #endregion

            #region Loading company news from file system.
            foreach (var file in listingCompanyNewsFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                CompanyNews companyNews = new CompanyNews(document);


                companyNews.NewsItems.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Red, "==================================");
                    Utils.WriteLine(ConsoleColor.Cyan, "Title={0}", p.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "Snapshot={0}", p.Snapshot);
                    Utils.WriteLine(ConsoleColor.Cyan, "Source={0}", p.Source);
                    Utils.WriteLine(ConsoleColor.Cyan, "NewsLink={0}", p.NewsLink);

                    p.RelatedNewsLinks.ForEach(g =>
                    {
                        Utils.WriteLine(ConsoleColor.Green, "RelatedNewsLinks.AbsoluteUri={0}", g.AbsoluteUri);
                    });

                    Utils.WriteLine(ConsoleColor.Red, "==================================");
                });
            }
            #endregion

            #region Loading stock summary from file system.
            foreach (var file in listingStockSummaryFiles)
            {
                HtmlDocument document = new HtmlDocument();
                document.Load(file);
                StockSummary stockSummary = new StockSummary(document);

                Utils.WriteLine(ConsoleColor.Cyan, "RefernceId : " + stockSummary.RefernceId);

                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Text: " + stockSummary.CompanyNews.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Link: " + stockSummary.CompanyNews.Link.ToString());

                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.CompanyDescription: " + stockSummary.CompanySection.CompanyDescriptsion);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.ExternalCompanyProfile.Text: " + stockSummary.CompanySection.ExternalCompanyProfile.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.EternalCompanyProfile.Link: " + stockSummary.CompanySection.ExternalCompanyProfile.Link.ToString());

                stockSummary.Mangement.ForEach(delegate(Mangement n)
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "Name: " + n.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Age : " + n.Age);
                    Utils.WriteLine(ConsoleColor.Cyan, "Title : " + n.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "ProfileLink : " + n.ProfileLink);
                    Utils.WriteLine(ConsoleColor.Cyan, "");
                });

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Text : " + stockSummary.Sector.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Link : " + stockSummary.Sector.Link);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Text : " + stockSummary.Industry.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Link : " + stockSummary.Industry.Link);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingPrice : " + stockSummary.ListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePrice : " + stockSummary.ListingChangePrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePricePercentage : {0}%", stockSummary.ListingChangePricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingPrice : " + stockSummary.ExtendedListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPrice : " + stockSummary.ExtendedChangeListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPricePercentage : " + stockSummary.ExtendedChangeListingPricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingTime : " + stockSummary.ExtendedListingTime);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.CompanyName : " + stockSummary.CompanyHeader.CompanyName);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingType : " + stockSummary.CompanyHeader.ListingType);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingSymbol : " + stockSummary.CompanyHeader.ListingSymbol);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Range : {0} ", stockSummary.Range.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.FiftyTwoWeek : {0} ", stockSummary.FiftyTwoWeek.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Open : {0} ", stockSummary.Open);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Volume : {0} ", stockSummary.Volume);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Average : {0} ", stockSummary.Average);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.MarketCapital : {0} ", stockSummary.MarketCapital);
            }
            #endregion

            #region Loading stock summary from web.
            foreach (var item in companyTickerSymbolsWeb)
            {
                string[]     s            = item.Split(new char[] { ':' });
                StockSummary stockSummary = new StockSummary(s[1], s[0]);


                Utils.WriteLine(ConsoleColor.Cyan, "RefernceId : " + stockSummary.RefernceId);

                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Text: " + stockSummary.CompanyNews.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Link: " + stockSummary.CompanyNews.Link.ToString());

                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.CompanyDescription: " + stockSummary.CompanySection.CompanyDescriptsion);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.ExternalCompanyProfile.Text: " + stockSummary.CompanySection.ExternalCompanyProfile.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.EternalCompanyProfile.Link: " + stockSummary.CompanySection.ExternalCompanyProfile.Link.ToString());

                stockSummary.Mangement.ForEach(delegate(Mangement n)
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "Name: " + n.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Age : " + n.Age);
                    Utils.WriteLine(ConsoleColor.Cyan, "Title : " + n.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "ProfileLink : " + n.ProfileLink);
                    Utils.WriteLine(ConsoleColor.Cyan, "");
                });

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Text : " + stockSummary.Sector.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Link : " + stockSummary.Sector.Link);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Text : " + stockSummary.Industry.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Link : " + stockSummary.Industry.Link);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingPrice : " + stockSummary.ListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePrice : " + stockSummary.ListingChangePrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePricePercentage : {0}%", stockSummary.ListingChangePricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingPrice : " + stockSummary.ExtendedListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPrice : " + stockSummary.ExtendedChangeListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPricePercentage : " + stockSummary.ExtendedChangeListingPricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingTime : " + stockSummary.ExtendedListingTime);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.CompanyName : " + stockSummary.CompanyHeader.CompanyName);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingType : " + stockSummary.CompanyHeader.ListingType);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingSymbol : " + stockSummary.CompanyHeader.ListingSymbol);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Range : {0} ", stockSummary.Range.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.FiftyTwoWeek : {0} ", stockSummary.FiftyTwoWeek.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Open : {0} ", stockSummary.Open);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Volume : {0} ", stockSummary.Volume);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Average : {0} ", stockSummary.Average);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.MarketCapital : {0} ", stockSummary.MarketCapital);
            }
            #endregion

            #region Loading company news from the web
            foreach (var item in companyTickerSymbolsWeb)
            {
                string[]    s           = item.Split(new char[] { ':' });
                CompanyNews companyNews = new CompanyNews(s[1], s[0]);

                companyNews.NewsItems.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Red, "==================================");
                    Utils.WriteLine(ConsoleColor.Cyan, "Title={0}", p.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "Snapshot={0}", p.Snapshot);
                    Utils.WriteLine(ConsoleColor.Cyan, "Source={0}", p.Source);
                    Utils.WriteLine(ConsoleColor.Cyan, "NewsLink={0}", p.NewsLink);

                    p.RelatedNewsLinks.ForEach(g =>
                    {
                        Utils.WriteLine(ConsoleColor.Green, "RelatedNewsLinks.AbsoluteUri={0}", g.AbsoluteUri);
                    });

                    Utils.WriteLine(ConsoleColor.Red, "==================================");
                });
            }
            #endregion

            #region Loading Financials from the web
            foreach (var stock in companyTickerSymbolsWeb)
            {
                string[]        s = stock.Split(new char[] { ':' });
                StockFinancials stockFinancials = new StockFinancials(s[1], s[0]);

                Utils.WriteLine(ConsoleColor.Cyan, "{0} Cash Flows", stock);

                foreach (var item in stockFinancials.CashFlowAnnualData.CashFlowValuesDatabase)
                {
                    Utils.WriteLine(ConsoleColor.Red, "{0}", item.Key);
                    item.Value.ForEach(p => Utils.WriteLine(ConsoleColor.Magenta, "{0}={1}={2} , ", p.Date, p.MemeberElementName, p.Value));
                }
            }
            #endregion
            //throw new Exception("Still working on making it this far.");
            #region  Loading historical prices from the web
            foreach (var item in companyTickerSymbolsWeb)
            {
                string[]         s = item.Split(new char[] { ':' });
                HistoricalPrices historicalPrices = new HistoricalPrices(s[1], s[0]);


                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();

                s = item.Split(new char[] { ':' });
                historicalPrices = new HistoricalPrices(s[1], s[0]);
                historicalPrices.Refresh(new DateRange(new DateTime(2007, 1, 1), new DateTime(2009, 1, 1)),
                                         1, HistoricalPeriod.Weekly, 200);

                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();

                s = item.Split(new char[] { ':' });
                historicalPrices = new HistoricalPrices(s[1], s[0]);
                historicalPrices.Refresh(new DateRange(new DateTime(2005, 2, 23), new DateTime(2008, 6, 3)),
                                         1, HistoricalPeriod.Daily, 200);

                historicalPrices.Prices.ForEach(p =>
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "{0}", historicalPrices.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Description={0}", historicalPrices.Description);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                    Utils.WriteLine(ConsoleColor.Blue, "Date={0}", p.Date);
                    Utils.WriteLine(ConsoleColor.Blue, "Open={0}", p.Open);
                    Utils.WriteLine(ConsoleColor.Blue, "Low={0}", p.Low);
                    Utils.WriteLine(ConsoleColor.Blue, "High={0}", p.High);
                    Utils.WriteLine(ConsoleColor.Blue, "Close={0}", p.Close);
                    Utils.WriteLine(ConsoleColor.Blue, "Volume={0}", p.Volume);
                    Utils.WriteLine(ConsoleColor.Cyan, "==================================");
                });

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();
            }
            #endregion


            #region Loading from the web.
            foreach (var item in companyTickerSymbolsWeb)
            {
                HtmlDocument document = htmlWeb.Load(googleStockQuery + item);

                #region StockSummary Example
                StockSummary stockSummary = new StockSummary(document);
                Utils.WriteLine(ConsoleColor.Cyan, "RefernceId : " + stockSummary.RefernceId);

                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Text: " + stockSummary.CompanyNews.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "Company News.Link: " + stockSummary.CompanyNews.Link.ToString());

                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.CompanyDescription: " + stockSummary.CompanySection.CompanyDescriptsion);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.ExternalCompanyProfile.Text: " + stockSummary.CompanySection.ExternalCompanyProfile.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "CompanySection.EternalCompanyProfile.Link: " + stockSummary.CompanySection.ExternalCompanyProfile.Link.ToString());

                stockSummary.Mangement.ForEach(delegate(Mangement n)
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "Name: " + n.Name);
                    Utils.WriteLine(ConsoleColor.Cyan, "Age : " + n.Age);
                    Utils.WriteLine(ConsoleColor.Cyan, "Title : " + n.Title);
                    Utils.WriteLine(ConsoleColor.Cyan, "ProfileLink : " + n.ProfileLink);
                    Utils.WriteLine(ConsoleColor.Cyan, "");
                });

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Text : " + stockSummary.Sector.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Sector.Link : " + stockSummary.Sector.Link);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Text : " + stockSummary.Industry.Text);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Industry.Link : " + stockSummary.Industry.Link);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingPrice : " + stockSummary.ListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePrice : " + stockSummary.ListingChangePrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ListingChangePricePercentage : {0}%", stockSummary.ListingChangePricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingPrice : " + stockSummary.ExtendedListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPrice : " + stockSummary.ExtendedChangeListingPrice);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedChangeListingPricePercentage : " + stockSummary.ExtendedChangeListingPricePercentage);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.ExtendedListingTime : " + stockSummary.ExtendedListingTime);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.CompanyName : " + stockSummary.CompanyHeader.CompanyName);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingType : " + stockSummary.CompanyHeader.ListingType);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.CompanyHeader.ListingSymbol : " + stockSummary.CompanyHeader.ListingSymbol);


                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Range : {0} ", stockSummary.Range.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.FiftyTwoWeek : {0} ", stockSummary.FiftyTwoWeek.ToString());
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Open : {0} ", stockSummary.Open);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Volume : {0} ", stockSummary.Volume);
                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Average : {0} ", stockSummary.Average);

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.MarketCapital : {0} ", stockSummary.MarketCapital);


                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.P_E : {0} ", stockSummary.P_E);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.P_E : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Dividend : {0}", stockSummary.Dividend);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Dividend : {0}", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Yield : {0} ", stockSummary.Yield);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Yield : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.EPS : {0} ", stockSummary.EPS);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.EPS : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Shares : {0} ", stockSummary.Shares);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Shares : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.Beta : {0} ", stockSummary.Beta);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.Beta : {0} ", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                try
                {
                    Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.InterestOwned : {0} %", stockSummary.InterestOwned);
                }
                catch (DataNotAvailable ex)
                {
                    Utils.WriteLine(ConsoleColor.Red, "stockSummary.InterestOwned : {0} %", "-");
                    Utils.WriteLine(ConsoleColor.DarkMagenta, ex.PotentialReason);
                }

                Utils.WriteLine(ConsoleColor.Cyan, "stockSummary.HomePage : {0} ", stockSummary.HomePage.ToString());
                #endregion

                #region HistoricalPrices Example
                document = htmlWeb.Load(googleStockQueryHistoricalPrices + item);
                HistoricalPrices historicalPrices = new HistoricalPrices(document);
                #endregion

                #region RelatedCompanies Example
                document = htmlWeb.Load(googleStockQueryRelatedCompanies + item);
                RelatedCompanies relatedCompanies = new RelatedCompanies(document);
                #endregion

                #region StockFinancials Example
                document = htmlWeb.Load(googleStockQueryFinancials + item);
                StockFinancials stockFinancials = new StockFinancials(document);
                #endregion

                #region StockNews Example
                document = htmlWeb.Load(googleStockQueryCompanyNews + item);
                CompanyNews stockNews = new CompanyNews(document);

                #endregion

                //Console.WriteLine("Press <Enter> ...");
                //Console.ReadLine();
            }
            #endregion

            Utils.WriteLine(ConsoleColor.Red, "Press <Enter> to Exit ...");
            Console.ReadLine();
        }