diff --git a/MarketData/MarketDataLib/DataAccess/FundamentalDA.cs b/MarketData/MarketDataLib/DataAccess/FundamentalDA.cs index bf90fee..d8d8068 100755 --- a/MarketData/MarketDataLib/DataAccess/FundamentalDA.cs +++ b/MarketData/MarketDataLib/DataAccess/FundamentalDA.cs @@ -45,42 +45,7 @@ namespace MarketData.DataAccess if (null != sqlConnection) sqlConnection.Close(); } } - public static DateTime GetLatestDate(String symbol) - { - MySqlConnection sqlConnection = null; - MySqlDataReader sqlDataReader = null; - MySqlCommand sqlCommand=null; - String strQuery = null; - DateTime maxDate = DateTime.Parse("01-01-0001"); - try - { - StringBuilder sb = new StringBuilder(); - sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data")); - sb.Append("select max(asof) from fundamentals").Append(" "); - sb.Append("where symbol='").Append(symbol).Append("'"); - strQuery = sb.ToString(); ; - sqlCommand = new MySqlCommand(strQuery, sqlConnection); - sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT; - sqlDataReader = sqlCommand.ExecuteReader(); - if (sqlDataReader.Read()) - { - if (!sqlDataReader.IsDBNull(0))maxDate=sqlDataReader.GetDateTime(0); - } - return maxDate; - } - catch (Exception exception) - { - MDTrace.WriteLine(LogLevel.DEBUG,exception); - return maxDate; - } - finally - { - if(null!=sqlCommand)sqlCommand.Dispose(); - if (null != sqlDataReader) {sqlDataReader.Close();sqlDataReader.Dispose();} - if(null != sqlConnection) sqlConnection.Close(); - } - } public static TimeSeriesCollection GetTotalCashMils(String symbol) { MySqlConnection sqlConnection = null; @@ -533,86 +498,6 @@ namespace MarketData.DataAccess } } - public static Fundamentals GetFundamentalMaxDateTop(String symbol, DateTime asof, int top) - { - MySqlConnection sqlConnection = null; - MySqlDataReader sqlDataReader = null; - MySqlCommand sqlCommand=null; - String strQuery = null; - Fundamentals fundamentals = new Fundamentals(); - - try - { - DateTime? maxDate=GetMaxDateFromFundamental(symbol,asof); // get the maximum date on record on or before max date - if(null==maxDate)return null; - StringBuilder sb = new StringBuilder(); - sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data")); - sb.Append("select symbol,asof,next_earnings_date,beta,low52,high52,volume,market_cap,pe,eps,peg,return_on_assets,return_on_equity,total_cash,total_debt,shares_outstanding,revenue,revenue_per_share,qtrly_revenue_growth,gross_profit,ebitda,net_income_available_to_common,book_value_per_share,operating_cashflow,leveraged_free_cashflow,book_value_per_share*shares_outstanding as equity,trailing_pe,ebit,enterprise_value,source from fundamentals where symbol="); - sb.Append("'").Append(symbol).Append("'").Append(" "); - sb.Append("and asof<=").Append("'").Append(Utility.DateTimeToStringYYYYHMMHDD(maxDate.Value)).Append("'"); - sb.Append(" order by asof desc "); - sb.Append(" limit ").Append(top); - strQuery = sb.ToString(); - sqlCommand = new MySqlCommand(strQuery, sqlConnection); - sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT; - sqlDataReader = sqlCommand.ExecuteReader(); - while(sqlDataReader.Read()) - { - - double totalStockHolderEquity=BalanceSheetDA.GetTotalStockHolderEquityOnOrBefore(symbol,asof,BalanceSheet.PeriodType.Annual); - Fundamental fundamental = new Fundamental(); - fundamental.Symbol = sqlDataReader.GetString(0); - fundamental.AsOf = sqlDataReader.GetDateTime(1); - if (!sqlDataReader.IsDBNull(2)) fundamental.NextEarningsDate = sqlDataReader.GetDateTime(2); - if (!sqlDataReader.IsDBNull(3)) fundamental.Beta = sqlDataReader.GetDouble(3); - if (!sqlDataReader.IsDBNull(4)) fundamental.Low52 = sqlDataReader.GetDouble(4); - if (!sqlDataReader.IsDBNull(5)) fundamental.High52 = sqlDataReader.GetDouble(5); - if (!sqlDataReader.IsDBNull(6)) fundamental.Volume = sqlDataReader.GetInt64(6); - if (!sqlDataReader.IsDBNull(7)) fundamental.MarketCap = sqlDataReader.GetDouble(7); - if (!sqlDataReader.IsDBNull(8)) fundamental.PE = sqlDataReader.GetDouble(8); - if (!sqlDataReader.IsDBNull(9)) fundamental.EPS = sqlDataReader.GetDouble(9); - if (!sqlDataReader.IsDBNull(10)) fundamental.PEG = sqlDataReader.GetDouble(10); - if (!sqlDataReader.IsDBNull(11)) fundamental.ReturnOnAssets = sqlDataReader.GetDouble(11); - if (!sqlDataReader.IsDBNull(12)) fundamental.ReturnOnEquity = sqlDataReader.GetDouble(12); - if (!sqlDataReader.IsDBNull(13)) fundamental.TotalCash = sqlDataReader.GetDouble(13); - if (!sqlDataReader.IsDBNull(14)) fundamental.TotalDebt = sqlDataReader.GetDouble(14); - if (!sqlDataReader.IsDBNull(15)) fundamental.SharesOutstanding = sqlDataReader.GetDouble(15); - if (!sqlDataReader.IsDBNull(16)) fundamental.Revenue = sqlDataReader.GetDouble(16); - if (!sqlDataReader.IsDBNull(17)) fundamental.RevenuePerShare = sqlDataReader.GetDouble(17); - if (!sqlDataReader.IsDBNull(18)) fundamental.QtrlyRevenueGrowth = sqlDataReader.GetDouble(18); - if (!sqlDataReader.IsDBNull(19)) fundamental.GrossProfit = sqlDataReader.GetDouble(19); - if (!sqlDataReader.IsDBNull(20)) fundamental.EBITDA = sqlDataReader.GetDouble(20); - if (!sqlDataReader.IsDBNull(21)) fundamental.NetIncomeAvailableToCommon = sqlDataReader.GetDouble(21); - if (!sqlDataReader.IsDBNull(22)) fundamental.BookValuePerShare = sqlDataReader.GetDouble(22); - if (!sqlDataReader.IsDBNull(23)) fundamental.OperatingCashflow = sqlDataReader.GetDouble(23); - if (!sqlDataReader.IsDBNull(24)) fundamental.LeveragedFreeCashflow = sqlDataReader.GetDouble(24); - if (!sqlDataReader.IsDBNull(25)) fundamental.Equity = sqlDataReader.GetDouble(25); - if (!sqlDataReader.IsDBNull(26)) fundamental.TrailingPE = sqlDataReader.GetDouble(26); - if (!sqlDataReader.IsDBNull(27)) fundamental.EBIT = sqlDataReader.GetDouble(27); - if (!sqlDataReader.IsDBNull(28)) fundamental.EnterpriseValue = sqlDataReader.GetDouble(28); - if (!sqlDataReader.IsDBNull(29)) fundamental.Source = sqlDataReader.GetString(29); - if (!double.IsNaN(totalStockHolderEquity) && !double.IsNaN(fundamental.TotalDebt)) - { - if(0.00==totalStockHolderEquity)fundamental.TotalDebt=0.00; - else fundamental.DebtToEquity=fundamental.TotalDebt/totalStockHolderEquity; - } - fundamentals.Add(fundamental); - } - return fundamentals; - } - catch (Exception exception) - { - MDTrace.WriteLine(LogLevel.DEBUG,exception); - return null; - } - finally - { - if(null!=sqlCommand)sqlCommand.Dispose(); - if (null != sqlDataReader) {sqlDataReader.Close();sqlDataReader.Dispose();} - if (null != sqlConnection) sqlConnection.Close(); - } - } - public static bool InsertFundamentals(Fundamentals fundamentals) { MySqlConnection sqlConnection = null;