public void CalculateFairValue() { var dl = new CompanyStatisticsDownload(); Parallel.ForEach(ids, id => { var resp = dl.Download(id); if (resp.Result.Connection.State == ConnectionState.Success) { var item = resp.Result.Result.Item; var ti = item.TradingInfo; var vm = item.ValuationMeasures; var highlight = item.FinancialHighlights; var eps = highlight.DilutedEPS; // var growthRate1 = vm.TrailingPE / vm.ForwardPE; var growthRate = highlight.QuarterlyRevenueGrowthPercent;//.QuaterlyEarningsGrowthPercent /100.0; //var outStandingShare = vm.MarketCapitalisationInMillion / highlight.RevenuePerShare. var fairValue = FairValue.DiscountedCurrentValue(eps, 3, growthRate / 100.0, inflation, bondRate); if (eps <= 0 && fairValue <= 0) { fairValue = FairValue.FutureValue(highlight.RevenuePerShare, growthRate / 100.0, 1) * 1.5; } Console.WriteLine("symbol:{0} forward P/E : {1} EV/Rev : {2} - Margin: {3} ShortPercentage : {4} EPS: {5} GrowthRate: {6} FairValue : {7}", id, vm.ForwardPE, vm.EnterpriseValueToRevenue, highlight.ProfitMarginPercent, ti.ShortPercentOfFloat, eps, growthRate, fairValue); } }); }
/// <summary> /// Gets the share stat entity from yahoo. /// </summary> /// <param name="symbol">The y symbol.</param> /// <returns></returns> public void GetShareStatFromYahoo(string symbol, ShareInfo shareInfo) { try { CompanyStatisticsDownload csDownload = new CompanyStatisticsDownload(); CompanyStatisticsDownloadSettings settings = new CompanyStatisticsDownloadSettings(); settings.ID = symbol; csDownload.Settings = settings; Response <CompanyStatisticsResult> resp = csDownload.Download(); if (resp != null) { if (resp.Result.Item.ValuationMeasures != null) { var v = resp.Result.Item.ValuationMeasures; if (v.MarketCapitalisationInMillion > 0) { shareInfo.MarketCapM = v.MarketCapitalisationInMillion; } } } } catch (Exception ex) { // Add system log _log.Error("Process Share Statics fail " + symbol, ex); throw; } }
public void DownloadCompanyStatistics() { var dl = new CompanyStatisticsDownload(); Parallel.ForEach(ids, id => { var resp = dl.Download(id); if (resp.Result.Connection.State == ConnectionState.Success) { var result = resp.Result.Result; var item = result.Item; var vm = item.ValuationMeasures; var high = item.FinancialHighlights; Console.WriteLine("symbol:{0} forward P/E : {1} EV/Rev : {2} - Margin: {3}", id, vm.ForwardPE, vm.EnterpriseValueToRevenue, high.ProfitMarginPercent); } }); }
private void RetrieveYahooCompanyStatistics(string symbol, ref Dictionary <string, Object> stats) { CompanyStatisticsDownload d2 = new CompanyStatisticsDownload(); DownloadClient <CompanyStatisticsResult> baseD2 = d2; CompanyStatisticsDownloadSettings settings2 = d2.Settings; settings2.ID = symbol; Response <CompanyStatisticsResult> resp2 = baseD2.Download(); SettingsBase baseSettings = baseD2.Settings; ConnectionInfo connInfo = resp2.Connection; if (connInfo.State == ConnectionState.Success) { CompanyStatisticsResult result = resp2.Result; CompanyFinancialHighlights highlights = result.Item.FinancialHighlights; stats.Add("TotalDeptPerEquity", CheckDecimalItem(Convert.ToString(highlights.TotalDeptPerEquity))); stats.Add("OperatingMarginPercent", CheckDecimalItem(Convert.ToString(highlights.OperatingMarginPercent))); stats.Add("ProfitMarginPercent", CheckDecimalItem(Convert.ToString(highlights.ProfitMarginPercent))); stats.Add("ReturnOnAssetsPercent", CheckDecimalItem(Convert.ToString(highlights.ReturnOnAssetsPercent))); stats.Add("ReturnOnEquityPercent", CheckDecimalItem(Convert.ToString(highlights.ReturnOnEquityPercent))); stats.Add("TotalDeptInMillion", CheckDecimalItem(Convert.ToString(highlights.TotalDeptInMillion)) * 1000000); stats.Add("EBITDAInMillion", CheckDecimalItem(Convert.ToString(highlights.EBITDAInMillion)) * 1000000); stats.Add("CurrentRatio", CheckDecimalItem(Convert.ToString(highlights.CurrentRatio))); stats.Add("GrossProfitInMillion", CheckDecimalItem(Convert.ToString(highlights.GrossProfitInMillion)) * 1000000); stats.Add("LeveredFreeCashFlowInMillion", CheckDecimalItem(Convert.ToString(highlights.LeveredFreeCashFlowInMillion)) * 1000000); stats.Add("OperatingCashFlowInMillion", CheckDecimalItem(Convert.ToString(highlights.OperatingCashFlowInMillion)) * 1000000); stats.Add("QuarterlyRevenueGrowthPercent", CheckDecimalItem(Convert.ToString(highlights.QuarterlyRevenueGrowthPercent))); stats.Add("QuarterlyEarningsGrowthPercent", CheckDecimalItem(Convert.ToString(highlights.QuaterlyEarningsGrowthPercent))); stats.Add("RevenuePerShare", CheckDecimalItem(Convert.ToString(highlights.RevenuePerShare))); stats.Add("TotalCashInMillion", CheckDecimalItem(Convert.ToString(highlights.TotalCashInMillion)) * 1000000); stats.Add("TotalCashPerShare", CheckDecimalItem(Convert.ToString(highlights.TotalCashPerShare)));; } else { Exception ex = connInfo.Exception; Console.WriteLine(ex.Message); } }
public void DownloadCompanyTradingInformation() { var dl = new CompanyStatisticsDownload(); var option = new ParallelOptions(); option.MaxDegreeOfParallelism = Environment.ProcessorCount * 2; option.TaskScheduler = TaskScheduler.Default; Parallel.ForEach(ids, option, id => { var resp = dl.Download(id); if (resp.Result.Connection.State == ConnectionState.Success) { var item = resp.Result.Result.Item; var ti = item.TradingInfo; var vm = item.ValuationMeasures; var high = item.FinancialHighlights; Console.WriteLine("symbol:{0} forward P/E : {1} EV/Rev : {2} - Margin: {3} ShortPercentage : {4} ", id, vm.ForwardPE, vm.EnterpriseValueToRevenue, high.ProfitMarginPercent, ti.ShortPercentOfFloat); } }); }