public void InsertUsStock(UsStock stock)
 {
     MySqlParameter[] parms = GetUsStockParameters();
     SetUsStockParameters(stock, parms);
     using (MySqlConnection conn = new MySqlConnection(MySqlHelper.SV_CONN_STRING))
     {
         conn.Open();
         MySqlHelper.ExecuteNonQuery(conn, InsertSQLStatement(), parms);
     }
 }
Ejemplo n.º 2
0
 public void UpdateUsStock(UsStock stock)
 {
     if (UsStockExists(stock.Symbol, stock.Year))
     {
         //_dao.UpdateUsStock(stock);
     }
     else
     {
         _dao.InsertUsStock(stock);
     }
 }
        public UsStockCollection ReadQuandlFromStockCsv(string symbol)
        {
            string url = QUANDL_COMPANY_URL_PREFIX + symbol + QUANDL_COMPANY_URL_SUFFIX_WITH_KEY;
            //  string url = QUANDL_COMPANY_URL_PREFIX + symbol + QUANDL_COMPANY_URL_SUFFIX_WITHOUT_KEY;
            HttpWebRequest  req    = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse resp   = (HttpWebResponse)req.GetResponse();
            var             reader = new StreamReader(resp.GetResponseStream());

            Dictionary <string, string> columnMappings = ColumnMappingsDA.Instance.GetColumnMappings();

            UsStockCollection stocks = new UsStockCollection();

            List <string> columnNames = new List <string>();

            List <List <string> > fieldValues = new List <List <string> >();

            while (!reader.EndOfStream)
            {
                var line   = reader.ReadLine();
                var values = line.Split(',');

                List <string> yearValues = new List <string>();
                for (int i = 0; i < values.Length; i++)
                {
                    yearValues.Add(values[i]);
                }
                fieldValues.Add(yearValues);
            }

            for (int i = 1; i < fieldValues.Count; i++)
            {
                UsStock stock = new UsStock();
                stock.Symbol = symbol;
                for (int j = 0; j < fieldValues[i].Count; j++)
                {
                    if (fieldValues[0][j] == "Date")
                    {
                        PropertyInfo prop = stock.GetType().GetProperty(columnMappings[fieldValues[0][j]], BindingFlags.Public | BindingFlags.Instance);
                        prop.SetValue(stock, Convert.ToInt16(fieldValues[i][j].Split('-')[0]));
                    }
                    else
                    {
                        PropertyInfo prop = stock.GetType().GetProperty(columnMappings[fieldValues[0][j]], BindingFlags.Public | BindingFlags.Instance);
                        prop.SetValue(stock, FormatDecimal(fieldValues[i][j]));
                    }
                }

                stocks.Add(stock);
            }

            return(stocks);
        }
        public UsStock GetUsStock(string tickerSymbol, int year)
        {
            UsStock stock = null;

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


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

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

            return(stock);
        }
        private static void SetUsStockParameters(UsStock comp, MySqlParameter[] parms)
        {
            int i = 0;

            parms[i++].Value = comp.Symbol;
            parms[i++].Value = comp.Year;
            parms[i++].Value = comp.SharesOutstanding;
            parms[i++].Value = comp.Beta3Yr;
            parms[i++].Value = comp.StdDev3YrStockPrice;
            parms[i++].Value = comp.BookDebttoCapitalRatio;
            parms[i++].Value = comp.EquityBookValue;
            parms[i++].Value = comp.AssetBookValue;
            parms[i++].Value = comp.CapEx;
            parms[i++].Value = comp.Cash;
            parms[i++].Value = comp.CashPercentageOfFirmValue;
            parms[i++].Value = comp.CashPercentageOfRevenue;
            parms[i++].Value = comp.CashPercentageOfAssets;
            parms[i++].Value = comp.ChangeNonCashWorkingCapital;
            parms[i++].Value = comp.MarketCorrelation;
            parms[i++].Value = comp.CurrentPeRatio;
            parms[i++].Value = comp.Depreciation;
            parms[i++].Value = comp.DividendYield;
            parms[i++].Value = comp.Dividends;
            parms[i++].Value = comp.Ebit;
            parms[i++].Value = comp.EbitPreviousPeriod;
            parms[i++].Value = comp.Ebitda;
            parms[i++].Value = comp.EffectiveTaxRate;
            parms[i++].Value = comp.EffectiveTaxRateOnIncome;
            parms[i++].Value = comp.EnterpriseValue;
            parms[i++].Value = comp.EvToInvestedCapitalRatio;
            parms[i++].Value = comp.EvToTrailingSalesRatio;
            parms[i++].Value = comp.EvToEbitRatio;
            parms[i++].Value = comp.EvToEbitdaRatio;
            parms[i++].Value = comp.EvToSalesRatio;
            parms[i++].Value = comp.EpsExpectedGrowth;
            parms[i++].Value = comp.RevenueExpectedGrowth;
            parms[i++].Value = comp.FreeCashFlow;
            parms[i++].Value = comp.FirmValue;
            parms[i++].Value = comp.FixedToTotalAssetRatio;
            parms[i++].Value = comp.ForwardEps;
            parms[i++].Value = comp.ForwardPeRatio;
            parms[i++].Value = comp.EpsGrowth;
            parms[i++].Value = comp.RevenueGrowthPrevYear;

            parms[i++].Value = comp.HiLoRisk;
            parms[i++].Value = comp.InsiderHoldings;
            parms[i++].Value = comp.InstitutionalHoldings;
            parms[i++].Value = comp.IntangibleAssetsToTotalAssetsRatio;
            parms[i++].Value = comp.InvestedCapital;
            parms[i++].Value = comp.MarketCap;
            parms[i++].Value = comp.DebtToEquityRatio;
            parms[i++].Value = comp.DebtToCapitalRatio;
            parms[i++].Value = comp.NetIncome;
            parms[i++].Value = comp.NetMargin;
            parms[i++].Value = comp.NonCashWorkingCapital;
            parms[i++].Value = comp.NonCashWorkingCapitalToRevenueRatio;
            parms[i++].Value = comp.PayoutRatio;
            parms[i++].Value = comp.PriceToBookRatio;
            parms[i++].Value = comp.PeToGrowthRatio;
            parms[i++].Value = comp.OperatingMargin;
            parms[i++].Value = comp.PriceToSalesRatio;
            parms[i++].Value = comp.ReinvestmentAmount;
            parms[i++].Value = comp.ReinvestmentRate;
            parms[i++].Value = comp.Revenues;
            parms[i++].Value = comp.ReturnOnCapital;
            parms[i++].Value = comp.ReturnOnEquity;
            parms[i++].Value = comp.SgaExpense;
            parms[i++].Value = comp.StockPrice;
            parms[i++].Value = comp.TotalDebt;
            parms[i++].Value = comp.TradingVolume;
            parms[i++].Value = comp.TtmRevenues;
            parms[i++].Value = comp.TrailingNetIncome;
            parms[i++].Value = comp.TrailingPeRatio;
            parms[i++].Value = comp.TrailingRevenues;
            parms[i++].Value = comp.BetaValueLine;
            parms[i++].Value = comp.EvToBookRatio;
        }
        private UsStock ConvertReaderToUsStockObject(MySqlDataReader rdr)
        {
            UsStock       stock     = new UsStock();
            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;

            stock.Symbol                      = MySqlHelper.ConvertReaderToString(rdr, sqlParams[i++]);
            stock.Year                        = MySqlHelper.ConvertReaderToInt(rdr, sqlParams[i++]);
            stock.SharesOutstanding           = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.Beta3Yr                     = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.StdDev3YrStockPrice         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.BookDebttoCapitalRatio      = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EquityBookValue             = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.AssetBookValue              = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.CapEx                       = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.Cash                        = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.CashPercentageOfFirmValue   = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.CashPercentageOfRevenue     = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.CashPercentageOfAssets      = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.ChangeNonCashWorkingCapital = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.MarketCorrelation           = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.CurrentPeRatio              = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.Depreciation                = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.DividendYield               = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.Dividends                   = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.Ebit                        = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EbitPreviousPeriod          = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.Ebitda                      = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EffectiveTaxRate            = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EffectiveTaxRateOnIncome    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            stock.EnterpriseValue          = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EvToInvestedCapitalRatio = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EvToTrailingSalesRatio   = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            stock.EvToEbitRatio          = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EvToEbitdaRatio        = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EvToSalesRatio         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EpsExpectedGrowth      = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.RevenueExpectedGrowth  = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.FreeCashFlow           = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.FirmValue              = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.FixedToTotalAssetRatio = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.ForwardEps             = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.ForwardPeRatio         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EpsGrowth              = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            stock.RevenueGrowthPrevYear = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.HiLoRisk              = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.InsiderHoldings       = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.InstitutionalHoldings = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.IntangibleAssetsToTotalAssetsRatio = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.InvestedCapital    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.MarketCap          = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.DebtToEquityRatio  = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.DebtToCapitalRatio = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            stock.NetIncome             = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.NetMargin             = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.NonCashWorkingCapital = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.NonCashWorkingCapitalToRevenueRatio = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.PayoutRatio        = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.PriceToBookRatio   = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.PeToGrowthRatio    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.OperatingMargin    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.PriceToSalesRatio  = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.ReinvestmentAmount = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.ReinvestmentRate   = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.Revenues           = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.ReturnOnCapital    = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.ReturnOnEquity     = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.SgaExpense         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.StockPrice         = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            stock.TotalDebt     = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.TradingVolume = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            stock.TtmRevenues       = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.TrailingNetIncome = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.TrailingPeRatio   = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.TrailingRevenues  = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.BetaValueLine     = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);
            stock.EvToBookRatio     = MySqlHelper.ConvertReaderToDecimal(rdr, sqlParams[i++]);

            return(stock);
        }