Ejemplo n.º 1
0
        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);
                }
            });
        }
Ejemplo n.º 2
0
        /// <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;
            }
        }
Ejemplo n.º 3
0
        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);
                }
            });
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
                }
            });
        }