Пример #1
0
        public IncomeStatementCollection GetIncomeStatements(string tickerSymbol, int fromYear, int toYear)
        {
            IncomeStatementCollection incs = null;
            IncomeStatement           inc  = null;

            MySqlParameter[] parms = new MySqlParameter[] {
                new MySqlParameter("@SYMBOL", MySqlDbType.VarChar),
                new MySqlParameter("@FROMYEAR", MySqlDbType.Int16),
                new MySqlParameter("@TOYEAR", MySqlDbType.Int16)
            };

            parms[0].Value = tickerSymbol;
            parms[1].Value = fromYear;
            parms[2].Value = toYear;

            using (MySqlDataReader rdr = MySqlHelper.ExecuteReader(MySqlHelper.SV_CONN_STRING, SQL_SELECT_INCS, parms))
            {
                if (rdr.Read())
                {
                    //If there is one result
                    incs = new IncomeStatementCollection();
                    //Scroll through the results
                    do
                    {
                        inc = ConvertReaderToIncomeStatementObject(rdr);
                        if (inc.Revenue != 0)
                        {
                            incs.Add(inc);
                        }
                    }while (rdr.Read());
                }
            }

            return(incs);
        }
Пример #2
0
        public IncomeStatementCollection ProjectIncomeStatementsAvgRevenueGrowth(string symbol, int fromYear, int yrsToProject)
        {
            IncomeStatementCollection incProjections = IncomeStatementBL.Instance.GetIncomeStatements(symbol, fromYear - 2, fromYear);

            CheckEnoughIncomeStatements(incProjections);
            decimal avgGrowthRate = GetRevenueAverageGrowthRate(incProjections);

            for (int i = fromYear + 1; i < fromYear + yrsToProject + 1; i++)
            {
                IncomeStatement lastYrInc = incProjections.Find(i - 1);
                if (lastYrInc != null)
                {
                    incProjections.Add(new IncomeStatement(
                                           incProjections[0].Symbol,
                                           i,
                                           lastYrInc.Revenue * (1 + avgGrowthRate),
                                           lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("Cogs", incProjections),
                                           lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("OperatingExpenses", incProjections),
                                           lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("Depreciation", incProjections),
                                           lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("NetIncome", incProjections),
                                           lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("CapitalExpenditures", incProjections)
                                           ));
                }
            }

            return(incProjections);
        }
Пример #3
0
        public IncomeStatementCollection ProjectIncomeStatementsDecayRevenueGrowth(string symbol, int fromYear, int yrsToProject, decimal endGrowth)
        {
            IncomeStatementCollection incProjections = IncomeStatementBL.Instance.GetIncomeStatements(symbol, fromYear - 2, fromYear);

            CheckEnoughIncomeStatements(incProjections);

            decimal[] yoyGrowth = GetDecayGrowthRates(yrsToProject, endGrowth, incProjections);

            int j = 0;

            for (int i = fromYear + 1; i < fromYear + yrsToProject + 1; i++)
            {
                IncomeStatement lastYrInc = incProjections.Find(i - 1);
                if (lastYrInc != null)
                {
                    incProjections.Add(new IncomeStatement(
                                           incProjections[0].Symbol,
                                           i,
                                           lastYrInc.Revenue * (1 + yoyGrowth[j]),
                                           lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("Cogs", incProjections),
                                           lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("OperatingExpenses", incProjections),
                                           lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("Depreciation", incProjections),
                                           lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("NetIncome", incProjections),
                                           lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("CapitalExpenditures", incProjections)
                                           ));
                }
                j++;
            }

            return(incProjections);
        }
        public IncomeStatementCollection GetIncomeStatements(string tickerSymbol, int fromYear, int toYear)
        {
            IncomeStatementCollection incs = null;
            IncomeStatement inc = null;

            MySqlParameter[] parms = new MySqlParameter[] {
                new MySqlParameter("@SYMBOL", MySqlDbType.VarChar),
                new MySqlParameter("@FROMYEAR", MySqlDbType.Int16),
                new MySqlParameter("@TOYEAR", MySqlDbType.Int16)
            };

            parms[0].Value = tickerSymbol;
            parms[1].Value = fromYear;
            parms[2].Value = toYear;

            using (MySqlDataReader rdr = MySqlHelper.ExecuteReader(MySqlHelper.SV_CONN_STRING, SQL_SELECT_INCS, parms))
            {
                if (rdr.Read())
                {
                    //If there is one result
                    incs = new IncomeStatementCollection();
                    //Scroll through the results
                    do
                    {
                        inc = ConvertReaderToIncomeStatementObject(rdr);
                        if (inc.Revenue != 0)
                        {
                            incs.Add(inc);
                        }
                    }
                    while (rdr.Read());
                }
            }

            return incs;
        }
        public IncomeStatementCollection GetIncomeStatementData(string symbol, int year, int yearsToLoad)
        {
            string url = "http://finance.yahoo.com/q/is?s=" + symbol + "+Income+Statement&annual";
            HtmlDocument doc = new HtmlWeb().Load(url);

            Dictionary<int, Dictionary<string, decimal>> values = new Dictionary<int, Dictionary<string, decimal>>();

            Dictionary<string, decimal> inc2012 = new Dictionary<string, decimal>();
            Dictionary<string, decimal> inc2011 = new Dictionary<string,decimal>();
            Dictionary<string, decimal> inc2010 = new Dictionary<string,decimal>();

            foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@colspan='2']"))
            {
                if (div.InnerHtml.Contains("Total Revenue"))
                {
                    inc2012.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2011.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2010.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));

                }
                else if (div.InnerHtml.Contains("Cost of Revenue"))
                {
                    inc2012.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.InnerHtml.Contains("Net Income") && !div.InnerHtml.Contains("Ops") && !div.InnerHtml.Contains("To"))
                {
                    inc2012.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2011.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2010.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                }
            }

            foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@width ='30' and @class='yfnc_tabledata1']"))
            {
                if (div.NextSibling.NextSibling.InnerHtml.Contains("Research Development"))
                {
                    inc2012.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.NextSibling.NextSibling.InnerHtml.Contains("Selling General and Administrative"))
                {
                    inc2012.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.NextSibling.NextSibling.InnerHtml.Contains("Non Recurring"))
                {
                    inc2012.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.NextSibling.NextSibling.InnerHtml.Contains("Others"))
                {
                    inc2012.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Total Other Income/Expenses Net"))
                //{
                //    inc2012.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Earnings Before Interest And Taxes"))
                //{
                //    inc2012.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Interest Expense"))
                //{
                //    inc2012.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Income Tax Expense"))
                //{
                //    inc2012.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Minority Interest"))
                //{
                //    inc2012.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Discontinued Operations"))
                //{
                //    inc2012.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Extraordinary Items"))
                //{
                //    inc2012.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Effect Of Accounting Changes"))
                //{
                //    inc2012.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Other Items"))
                //{
                //    inc2012.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
            }

            values.Add(2010, inc2010);
            values.Add(2011, inc2011);
            values.Add(2012, inc2012);

            IncomeStatementCollection incs = new IncomeStatementCollection();

            for (int y = year; y > year - yearsToLoad; y--)
            {
                if (values.ContainsKey(y))
                {
                    incs.Add(new IncomeStatement(symbol, y,
                        values[y]["Total Revenue"],
                        values[y]["Cost of Revenue"],
                        values[y]["Research Development"] + values[y]["Selling General and Administrative"] + values[y]["Non Recurring"] + values[y]["Others"],
                        0,
                        values[y]["Net Income"],
                        0)
                    );
                }
            }


            return incs;
        }
Пример #6
0
        public IncomeStatementCollection GetIncomeStatementData(string symbol, int year, int yearsToLoad)
        {
            string       url = "http://finance.yahoo.com/q/is?s=" + symbol + "+Income+Statement&annual";
            HtmlDocument doc = new HtmlWeb().Load(url);

            Dictionary <int, Dictionary <string, decimal> > values = new Dictionary <int, Dictionary <string, decimal> >();

            Dictionary <string, decimal> inc2012 = new Dictionary <string, decimal>();
            Dictionary <string, decimal> inc2011 = new Dictionary <string, decimal>();
            Dictionary <string, decimal> inc2010 = new Dictionary <string, decimal>();

            foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@colspan='2']"))
            {
                if (div.InnerHtml.Contains("Total Revenue"))
                {
                    inc2012.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2011.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2010.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                }
                else if (div.InnerHtml.Contains("Cost of Revenue"))
                {
                    inc2012.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.InnerHtml.Contains("Net Income") && !div.InnerHtml.Contains("Ops") && !div.InnerHtml.Contains("To"))
                {
                    inc2012.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2011.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                    inc2010.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml));
                }
            }

            foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@width ='30' and @class='yfnc_tabledata1']"))
            {
                if (div.NextSibling.NextSibling.InnerHtml.Contains("Research Development"))
                {
                    inc2012.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.NextSibling.NextSibling.InnerHtml.Contains("Selling General and Administrative"))
                {
                    inc2012.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.NextSibling.NextSibling.InnerHtml.Contains("Non Recurring"))
                {
                    inc2012.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                else if (div.NextSibling.NextSibling.InnerHtml.Contains("Others"))
                {
                    inc2012.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2011.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                    inc2010.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                }
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Total Other Income/Expenses Net"))
                //{
                //    inc2012.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Earnings Before Interest And Taxes"))
                //{
                //    inc2012.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Interest Expense"))
                //{
                //    inc2012.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Income Tax Expense"))
                //{
                //    inc2012.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Minority Interest"))
                //{
                //    inc2012.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Discontinued Operations"))
                //{
                //    inc2012.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Extraordinary Items"))
                //{
                //    inc2012.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Effect Of Accounting Changes"))
                //{
                //    inc2012.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
                //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Other Items"))
                //{
                //    inc2012.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2011.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //    inc2010.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml));
                //}
            }

            values.Add(2010, inc2010);
            values.Add(2011, inc2011);
            values.Add(2012, inc2012);

            IncomeStatementCollection incs = new IncomeStatementCollection();

            for (int y = year; y > year - yearsToLoad; y--)
            {
                if (values.ContainsKey(y))
                {
                    incs.Add(new IncomeStatement(symbol, y,
                                                 values[y]["Total Revenue"],
                                                 values[y]["Cost of Revenue"],
                                                 values[y]["Research Development"] + values[y]["Selling General and Administrative"] + values[y]["Non Recurring"] + values[y]["Others"],
                                                 0,
                                                 values[y]["Net Income"],
                                                 0)
                             );
                }
            }


            return(incs);
        }