Example #1
0
        private CompanyFinancialStatistics ConvertReaderToCompanyFinancialStatisticsObject(MySqlDataReader rdr)
        {
            List <string> sqlParams = new List <string>();

            foreach (string s in _KEY_COLS)
            {
                sqlParams.Add(s);
            }
            foreach (string s in _NON_KEY_COLS)
            {
                sqlParams.Add(s);
            }

            int i = 0;

            CompanyFinancialStatistics comp = new CompanyFinancialStatistics();

            comp.Symbol            = MySqlHelper.ConvertReaderToString(rdr, sqlParams[i++]);
            comp.Date              = MySqlHelper.ConvertReaderToDateTime(rdr, sqlParams[i++]);
            comp.BookValuePerShare = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.StockPrice        = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.ReturnOnEquity    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.ReturnOnAssets    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.DebtToEquity      = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.YearHigh          = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.YearLow           = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.Eps                     = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.RevenuePerShare         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.AverageVolume           = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.MarketCap               = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.TotalDebt               = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.CurrentSharesShort      = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.LastMonthSharesShort    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.FiftyMovingAverage      = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.TwoHundredMovingAverage = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.DividendYieldPercent    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.OperatingMargin         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.ProfitMargin            = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.TrailingPE              = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.ForwardPE               = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.PegRatio                = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.EnterpriseValue         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.PriceToSales            = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.PriceToBook             = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.EvToRevenue             = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.EvToEbitda              = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.QuarterlyRevenueGrowth  = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.QuarterlyEarningsGrowth = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.Ebitda                  = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.NetIncomeToCommonShares = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.TotalCash               = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.CurrentRatio            = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.OperatingCashFlow       = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            comp.LeveredCashFlow         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            return(comp);
        }
Example #2
0
 public void InsertCompanyFinancialStatistics(CompanyFinancialStatistics inc)
 {
     MySqlParameter[] parms = GetCompanyFinancialStatisticsParameters();
     SetIncomeStatementParameters(inc, parms);
     using (MySqlConnection conn = new MySqlConnection(MySqlHelper.SV_CONN_STRING))
     {
         conn.Open();
         MySqlHelper.ExecuteNonQuery(conn, InsertSQLStatement(), parms);
     }
 }
 public void UpdateCompanyFinancialStatistics(CompanyFinancialStatistics cfs)
 {
     if (CompanyFinancialStatisticsExists(cfs.Symbol, cfs.Date))
     {
         _dao.UpdateCompanyFinancialStatistics(cfs);
     }
     else
     {
         _dao.InsertCompanyFinancialStatistics(cfs);
     }
 }
        private CompanyFinancialStatistics GetFinancialStatistics(CompanyValuationStatistics cvs)
        {
            CompanyFinancialStatistics cfs = new CompanyFinancialStatistics(cvs.Symbol, new DateTime());

            FSFMngr().PopulateCompanyFinancialStatisticsFromStatements(cfs, cvs.AvgGrowthProjections.Find(cvs.Year),
                                                                       BalanceSheetBL.Instance.GetBalanceSheet(cvs.Symbol, cvs.Year),
                                                                       CompanyAnnualDataBL.Instance.GetCompanyAnnual(cvs.Symbol, cvs.Year));
            //FSFMngr().PopulateCompanyFinancialStatisticsFromYahooApi(cfs);

            return(cfs);
        }
        public void PopulateCompanyFinancialStatisticsFromStatements(CompanyFinancialStatistics finStats, IncomeStatement inc, BalanceSheet bs, CompanyAnnualData cad)
        {
            finStats.BookValuePerShare = bs.ShareholdersEquity / cad.SharesOutstanding;
            finStats.DebtToEquity      = bs.Debt / bs.ShareholdersEquity;
            finStats.ProfitMargin      = inc.NetIncome / inc.Revenue;
            finStats.ReturnOnAssets    = inc.NetIncome / bs.TotalAssets;

            if (bs.ShareholdersEquity == 0)
            {
                finStats.ReturnOnEquity = 0;
            }
            else
            {
                finStats.ReturnOnEquity = inc.NetIncome / bs.ShareholdersEquity;
            }

            finStats.RevenuePerShare = inc.Revenue / cad.SharesOutstanding;
            finStats.TotalDebt       = bs.Debt;
        }
Example #6
0
        private static void SetIncomeStatementParameters(CompanyFinancialStatistics comp, MySqlParameter[] parms)
        {
            int i = 0;

            parms[i++].Value = comp.Symbol;
            parms[i++].Value = comp.Date;
            parms[i++].Value = comp.BookValuePerShare;
            parms[i++].Value = comp.StockPrice;
            parms[i++].Value = comp.ReturnOnEquity;
            parms[i++].Value = comp.ReturnOnAssets;
            parms[i++].Value = comp.DebtToEquity;
            parms[i++].Value = comp.YearHigh;
            parms[i++].Value = comp.YearLow;
            parms[i++].Value = comp.Eps;
            parms[i++].Value = comp.RevenuePerShare;
            parms[i++].Value = comp.AverageVolume;
            parms[i++].Value = comp.MarketCap;
            parms[i++].Value = comp.TotalDebt;
            parms[i++].Value = comp.CurrentSharesShort;
            parms[i++].Value = comp.LastMonthSharesShort;
            parms[i++].Value = comp.FiftyMovingAverage;
            parms[i++].Value = comp.TwoHundredMovingAverage;
            parms[i++].Value = comp.DividendYieldPercent;
            parms[i++].Value = comp.OperatingMargin;
            parms[i++].Value = comp.ProfitMargin;
            parms[i++].Value = comp.TrailingPE;
            parms[i++].Value = comp.ForwardPE;
            parms[i++].Value = comp.PegRatio;
            parms[i++].Value = comp.EnterpriseValue;
            parms[i++].Value = comp.PriceToSales;
            parms[i++].Value = comp.PriceToBook;
            parms[i++].Value = comp.EvToRevenue;
            parms[i++].Value = comp.EvToEbitda;
            parms[i++].Value = comp.QuarterlyRevenueGrowth;
            parms[i++].Value = comp.QuarterlyEarningsGrowth;
            parms[i++].Value = comp.Ebitda;
            parms[i++].Value = comp.NetIncomeToCommonShares;
            parms[i++].Value = comp.TotalCash;
            parms[i++].Value = comp.CurrentRatio;
            parms[i++].Value = comp.OperatingCashFlow;
            parms[i++].Value = comp.LeveredCashFlow;
        }
        public void EnterAllCompaniesFinancialStatistics()
        {
            CompanyCollection companies = CompanyBL.Instance.GetCompanies();

            foreach (Company comp in companies)
            {
                try
                {
                    CompanyFinancialStatistics cfs = new CompanyFinancialStatistics(comp.Symbol, DateTime.Today);
                    YahooHtmlParser.Instance.GetCompaniesFinancialData(cfs);

                    CompanyFinancialStatisticsBL cfsBL = new CompanyFinancialStatisticsBL();

                    cfsBL.UpdateCompanyFinancialStatistics(cfs);

                    Console.WriteLine("LOADED  " + comp.Symbol);
                }
                catch (Exception e)
                {
                    Console.WriteLine("DID NOT LOAD  " + comp.Symbol);
                }
            }
        }
Example #8
0
        public CompanyFinancialStatistics GetCompanyFinancialStatistics(string tickerSymbol, DateTime date)
        {
            CompanyFinancialStatistics bs = null;

            MySqlParameter[] parms = new MySqlParameter[] {
                new MySqlParameter("@SYMBOL", MySqlDbType.VarChar),
                new MySqlParameter("@DATE", MySqlDbType.DateTime)
            };

            parms[0].Value = tickerSymbol;
            parms[1].Value = date;

            //Execute Query
            using (MySqlDataReader rdr = MySqlHelper.ExecuteReader(MySqlHelper.SV_CONN_STRING, SelectEntryFromSQLStatement(), parms))
            {
                if (rdr.Read())
                {
                    bs = ConvertReaderToCompanyFinancialStatisticsObject(rdr);
                }
            }

            return(bs);
        }
Example #9
0
        public void GetCompaniesFinancialData(CompanyFinancialStatistics fin)
        {
            string       url = "http://finance.yahoo.com/q/ks?s=" + fin.Symbol + "+Key+Statistics";
            HtmlDocument doc = new HtmlWeb().Load(url);

            foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//span[@class='time_rtq_ticker']"))
            {
                fin.StockPrice = GetDecimalFromConString(div.ChildNodes[0].InnerHtml);
            }

            foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@class='yfnc_tablehead1' and @width='74%']"))
            {
                if (div.InnerHtml.Contains("Market Cap (intraday)"))
                {
                    fin.MarketCap = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Enterprise Value") && !div.InnerHtml.Contains("Revenue") && !div.InnerHtml.Contains("EBITDA"))
                {
                    fin.EnterpriseValue = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Trailing P/E"))
                {
                    fin.TrailingPE = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Forward P/E"))
                {
                    fin.ForwardPE = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("PEG Ratio"))
                {
                    fin.PegRatio = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Price/Sales"))
                {
                    fin.PriceToSales = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Price/Book"))
                {
                    fin.PriceToBook = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Enterprise Value/Revenue"))
                {
                    fin.EvToRevenue = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Enterprise Value/EBITDA"))
                {
                    fin.EvToEbitda = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Profit Margin"))
                {
                    fin.ProfitMargin = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Operating Margin"))
                {
                    fin.OperatingMargin = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Return on Assets"))
                {
                    fin.ReturnOnAssets = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Return on Equity"))
                {
                    fin.ReturnOnEquity = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Revenue Per Share"))
                {
                    fin.RevenuePerShare = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Qtrly Revenue Growth (yoy)"))
                {
                    fin.QuarterlyRevenueGrowth = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("EBITDA (ttm)"))
                {
                    fin.Ebitda = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Net Income Avl to Common"))
                {
                    fin.NetIncomeToCommonShares = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Diluted EPS"))
                {
                    fin.Eps = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Qtrly Earnings Growth (yoy)"))
                {
                    fin.QuarterlyEarningsGrowth = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Total Cash (mrq)"))
                {
                    fin.TotalCash = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Total Debt (mrq)"))
                {
                    fin.TotalDebt = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Total Debt/Equity"))
                {
                    fin.DebtToEquity = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Current Ratio"))
                {
                    fin.CurrentRatio = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Book Value Per Share"))
                {
                    fin.BookValuePerShare = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Operating Cash Flow"))
                {
                    fin.OperatingCashFlow = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Levered Free Cash Flow"))
                {
                    fin.LeveredCashFlow = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Avg Vol (3 month)"))
                {
                    fin.AverageVolume = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Shares Short (as of"))
                {
                    fin.CurrentSharesShort = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Shares Short (prior month)"))
                {
                    fin.LastMonthSharesShort = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("Forward Annual Dividend Yield"))
                {
                    fin.DividendYieldPercent = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("50-Day Moving Average"))
                {
                    fin.FiftyMovingAverage = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("200-Day Moving Average"))
                {
                    fin.TwoHundredMovingAverage = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("52-Week High"))
                {
                    fin.YearHigh = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
                else if (div.InnerHtml.Contains("52-Week Low"))
                {
                    fin.YearLow = GetDecimalFromConString(div.NextSibling.ChildNodes[0].InnerHtml);
                }
            }
        }
        public void CreateAbbreviatedExcelDocument()
        {
            string filename = @"C:\Users\Daniel\Documents\Visual Studio 2012\ExcelFiles\abbreviated_" + DateTime.Now.Year + "_" + DateTime.Now.Month + "_" + DateTime.Now.Day + "_" + DateTime.Now.Hour + DateTime.Now.Minute + ".xlsx";

            FileInfo newFile = new FileInfo(filename);

            using (ExcelPackage xlPackage = new ExcelPackage(newFile))
            {
                string[] columns = AbrreviatedColumns();

                ExcelWorksheet compInfoWS = xlPackage.Workbook.Worksheets.Add("Company Info");

                int i = 1;
                compInfoWS.Row(1).Style.Font.Bold = true;
                foreach (string col in columns)
                {
                    compInfoWS.Cells[1, i].Value = col;
                    i++;
                }

                CompanyCollection comps = CompanyBL.Instance.GetCompanies();

                CompanyValuationStatisticsCollection valuations = new CompanyValuationStatisticsCollection();
                CompanyFinancialStatisticsCollection statistics = new CompanyFinancialStatisticsCollection();
                CompanyValuationStatistics           cvs;

                int count = 2;
                int x     = 0;
                foreach (Company comp in comps)
                {
                    x++;
                    //if (comp.Symbol.Equals("azo"))
                    //{
                    try
                    {
                        cvs = GetCompanyValuationStatistics(comp);
                        valuations.Add(cvs);
                        CompanyFinancialStatistics stats = CompanyFinancialStatisticsBL.Instance.GetCompanyFinancialStatistics(comp.Symbol, DateTime.Today.AddDays(-1));
                        statistics.Add(stats);
                        BalanceSheet      bal  = BalanceSheetBL.Instance.GetBalanceSheet(comp.Symbol, 2012);
                        IncomeStatement   inc  = IncomeStatementBL.Instance.GetIncomeStatement(comp.Symbol, 2012);
                        CompanyAnnualData data = CompanyAnnualDataBL.Instance.GetCompanyAnnual(comp.Symbol, 2012);

                        int f = 1;

                        compInfoWS.Cells[count, f++].Value   = comp.Symbol;
                        compInfoWS.Cells[count, f++].Value   = comp.CompanyName;
                        compInfoWS.Cells[count, f++].Value   = comp.Industry;
                        compInfoWS.Cells[count, f++].Value   = comp.Sector;
                        compInfoWS.Cells[count, f++].Value   = stats.StockPrice;
                        compInfoWS.Cells[count, f++].Value   = stats.BookValuePerShare;
                        compInfoWS.Cells[count, f++].Value   = stats.ReturnOnEquity;
                        compInfoWS.Cells[count, f++].Value   = stats.ReturnOnAssets;
                        compInfoWS.Cells[count, f++].Value   = stats.DebtToEquity;
                        compInfoWS.Cells[count, f++].Value   = stats.YearHigh;
                        compInfoWS.Cells[count, f++].Value   = stats.YearLow;
                        compInfoWS.Cells[count, f++].Value   = stats.Eps;
                        compInfoWS.Cells[count, f++].Value   = stats.RevenuePerShare;
                        compInfoWS.Cells[count, f++].Value   = stats.AverageVolume;
                        compInfoWS.Cells[count, f++].Value   = stats.MarketCap;
                        compInfoWS.Cells[count, f++].Value   = stats.TotalDebt;
                        compInfoWS.Cells[count, f++].Value   = stats.CurrentSharesShort;
                        compInfoWS.Cells[count, f++].Value   = stats.LastMonthSharesShort;
                        compInfoWS.Cells[count, f++].Value   = (stats.CurrentSharesShort / data.SharesOutstanding);
                        compInfoWS.Cells[count, f++].Value   = (stats.LastMonthSharesShort / data.SharesOutstanding);
                        compInfoWS.Cells[count, f++].Value   = stats.FiftyMovingAverage;
                        compInfoWS.Cells[count, f++].Value   = stats.TwoHundredMovingAverage;
                        compInfoWS.Cells[count, f++].Value   = stats.DividendYieldPercent;
                        compInfoWS.Cells[count, f++].Value   = stats.OperatingMargin;
                        compInfoWS.Cells[count, f++].Value   = stats.ProfitMargin;
                        compInfoWS.Cells[count, f++].Value   = stats.TrailingPE;
                        compInfoWS.Cells[count, f++].Value   = stats.ForwardPE;
                        compInfoWS.Cells[count, f++].Value   = stats.PegRatio;
                        compInfoWS.Cells[count, f++].Value   = stats.EnterpriseValue;
                        compInfoWS.Cells[count, f++].Value   = stats.PriceToSales;
                        compInfoWS.Cells[count, f++].Value   = stats.PriceToBook;
                        compInfoWS.Cells[count, f++].Value   = stats.EvToRevenue;
                        compInfoWS.Cells[count, f++].Value   = stats.EvToEbitda;
                        compInfoWS.Cells[count, f++].Value   = stats.QuarterlyRevenueGrowth;
                        compInfoWS.Cells[count, f++].Value   = stats.QuarterlyEarningsGrowth;
                        compInfoWS.Cells[count, f++].Value   = stats.NetIncomeToCommonShares;
                        compInfoWS.Cells[count, f++].Value   = stats.TotalCash;
                        compInfoWS.Cells[count, f++].Value   = stats.CurrentRatio;
                        compInfoWS.Cells[count, f++].Value   = stats.OperatingCashFlow;
                        compInfoWS.Cells[count, f++].Value   = stats.LeveredCashFlow;
                        compInfoWS.Cells[count, f++].Value   = stats.Roic();
                        compInfoWS.Cells[count, f++].Value   = inc.Ebit;
                        compInfoWS.Cells[count, f++].Value   = cvs.NopDcfsAvgGrowth.GetAverage("StockValue");
                        compInfoWS.Cells[count, f++].Value   = cvs.NopDcfsAvgGrowth.GetStandardDeviation("StockValue");
                        compInfoWS.Cells[count, f++].Value   = string.Format("={0}/{1}", compInfoWS.Cells[count, 43].Address, compInfoWS.Cells[count, 44].Address);
                        compInfoWS.Cells[count, f++].Value   = cvs.NopDcfsDecayGrowth.GetAverage("StockValue");
                        compInfoWS.Cells[count, f++].Value   = cvs.NopDcfsDecayGrowth.GetStandardDeviation("StockValue");
                        compInfoWS.Cells[count, f++].Value   = string.Format("={0}/{1}", compInfoWS.Cells[count, 46].Address, compInfoWS.Cells[count, 47].Address);
                        compInfoWS.Cells[count, f++].Value   = cvs.NopDcfsNoGrowth.GetAverage("StockValue");
                        compInfoWS.Cells[count, f++].Value   = cvs.NopDcfsNoGrowth.GetStandardDeviation("StockValue");
                        compInfoWS.Cells[count, f++].Value   = string.Format("={0}/{1}", compInfoWS.Cells[count, 49].Address, compInfoWS.Cells[count, 50].Address);
                        compInfoWS.Cells[count, f++].Value   = cvs.NetIncomeDcfsAvgGrowth.GetAverage("StockValue");
                        compInfoWS.Cells[count, f++].Value   = cvs.NetIncomeDcfsAvgGrowth.GetStandardDeviation("StockValue");
                        compInfoWS.Cells[count, f++].Value   = string.Format("={0}/{1}", compInfoWS.Cells[count, 52].Address, compInfoWS.Cells[count, 53].Address);
                        compInfoWS.Cells[count, f++].Value   = cvs.NetIncomeDcfsDecayGrowth.GetAverage("StockValue");
                        compInfoWS.Cells[count, f++].Value   = cvs.NetIncomeDcfsDecayGrowth.GetStandardDeviation("StockValue");
                        compInfoWS.Cells[count, f++].Value   = string.Format("={0}/{1}", compInfoWS.Cells[count, 55].Address, compInfoWS.Cells[count, 56].Address);
                        compInfoWS.Cells[count, f++].Value   = cvs.NetIncomeDcfsNoGrowth.GetAverage("StockValue");
                        compInfoWS.Cells[count, f++].Value   = cvs.NetIncomeDcfsNoGrowth.GetStandardDeviation("StockValue");
                        compInfoWS.Cells[count, f++].Value   = string.Format("={0}/{1}", compInfoWS.Cells[count, 58].Address, compInfoWS.Cells[count, 59].Address);
                        compInfoWS.Cells[count, f++].Formula = string.Format("= {0} - {1}", compInfoWS.Cells[count, 6].Address, compInfoWS.Cells[count, 5].Address);
                        compInfoWS.Cells[count, f++].Formula = string.Format("= {0} - {1}", compInfoWS.Cells[count, 43].Address, compInfoWS.Cells[count, 5].Address);
                        compInfoWS.Cells[count, f++].Formula = string.Format("= {0} - {1}", compInfoWS.Cells[count, 46].Address, compInfoWS.Cells[count, 5].Address);
                        compInfoWS.Cells[count, f++].Formula = string.Format("= {0} - {1}", compInfoWS.Cells[count, 49].Address, compInfoWS.Cells[count, 5].Address);
                        compInfoWS.Cells[count, f++].Formula = string.Format("= {0} - {1}", compInfoWS.Cells[count, 52].Address, compInfoWS.Cells[count, 5].Address);
                        compInfoWS.Cells[count, f++].Formula = string.Format("= {0} - {1}", compInfoWS.Cells[count, 55].Address, compInfoWS.Cells[count, 5].Address);
                        compInfoWS.Cells[count, f++].Formula = string.Format("= {0} - {1}", compInfoWS.Cells[count, 58].Address, compInfoWS.Cells[count, 5].Address);

                        count++;
                        Console.WriteLine("loaded: {0}", comp.Symbol);
                    }
                    catch (Exception ex)
                    { Console.WriteLine(string.Format("ERROR: DID NOT LOAD: {0} {1}", comp.Symbol, ex.Message)); }
                    //}
                }

                xlPackage.Save();
            }
        }