Exemple #1
0
        public static async Task <CompaniesListFMP> GetScreenedCompaniesAsync(CompaniesListFMP allCompanies, string screenId)
        {
            CompaniesListFMP screened = new CompaniesListFMP
            {
                SymbolsToCompanies = new Dictionary <string, CompanyFMP>()
            };

            foreach (var company in allCompanies.SymbolsToCompanies)
            {
                string          symbol        = company.Key;
                CompanyFMP      companyObject = company.Value;
                CompanyStatsFMP stats         = companyObject.Stats;
                if (stats.PriceAverageToday < 20 && stats.PriceAverageToday > .01M && stats.VolumeAverageUSD > 1000000
                    /*&& !String.IsNullOrEmpty(stats.Earnings.EPSReportDate)*/)
                {
                    screened.SymbolsToCompanies.Add(symbol, companyObject);
                }
            }
            return(await Task.FromResult(screened));
        }
Exemple #2
0
        public static async Task <CompaniesListFMP> GetAllCompaniesAsync()
        {
            CompaniesListFMP companies = new CompaniesListFMP()
            {
                SymbolsToCompanies = new Dictionary <string, CompanyFMP>()
            };

            string nasdaqData = Companies.GetFromFtpUri(Companies.NasdaqSymbolsUri);

            string[] nasdaqDataLines = nasdaqData.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
            for (int i = 1; i < nasdaqDataLines.Length - 1; i++) //trim first and last row
            {
                string   line = nasdaqDataLines[i];
                string[] data = line.Split('|');
                if (data.Count() > 3)
                {
                    string symbol = data[1];
                    if (!companies.SymbolsToCompanies.ContainsKey(symbol) && !String.IsNullOrEmpty(symbol))
                    {
                        bool isNasdaq = data[0] == "Y";
                        if (isNasdaq)
                        {
                            CompanyStatsFMP stats   = FMP.GetCompanyStatsAsync(symbol).Result;
                            CompanyFMP      company = new CompanyFMP
                            {
                                Symbol   = symbol,
                                Exchange = "NASDAQ",
                                Stats    = stats
                            };
                            companies.SymbolsToCompanies.Add(symbol, company);
                        }
                    }
                }
            }

            string otcData = Companies.GetFromFtpUri(Companies.OtcSymbolsUri);

            string[] otcDataLines = otcData.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
            for (int j = 1; j < otcDataLines.Length - 1; j++) //trim first and last row
            {
                string   line = otcDataLines[j];
                string[] data = line.Split('|');
                if (data.Count() > 3)
                {
                    string symbol = data[0];
                    if (!companies.SymbolsToCompanies.ContainsKey(symbol) && !String.IsNullOrEmpty(symbol))
                    {
                        CompanyStatsFMP stats   = FMP.GetCompanyStatsAsync(symbol).Result;
                        CompanyFMP      company = new CompanyFMP
                        {
                            Symbol   = symbol,
                            Exchange = "OTC",
                            Stats    = stats
                        };
                        companies.SymbolsToCompanies.Add(symbol, company);
                    }
                }
            }

            string otcMarketsData = Companies.GetFromUri(Companies.OtcMarketsUri);

            string[] otcMarketsDataLines = otcMarketsData.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
            for (int k = 1; k < otcMarketsDataLines.Length; k++) //trim first row
            {
                string   line = otcMarketsDataLines[k];
                string[] data = line.Split(',');
                if (data.Count() > 3)
                {
                    string symbol = data[0];
                    if (!companies.SymbolsToCompanies.ContainsKey(symbol) && !String.IsNullOrEmpty(symbol))
                    {
                        CompanyStatsFMP stats   = FMP.GetCompanyStatsAsync(symbol).Result;
                        CompanyFMP      company = new CompanyFMP
                        {
                            Symbol   = symbol,
                            Exchange = data[2],
                            Stats    = stats
                        };
                        companies.SymbolsToCompanies.Add(symbol, company);
                    }
                }
            }
            return(await Task.FromResult(companies));
        }
        public CompaniesListFMP GetScreenedCompaniesFMP(string screenId)
        {
            CompaniesListFMP companies = FMP.GetAllCompaniesAsync().Result;

            return(FMP.GetScreenedCompaniesAsync(companies, screenId).Result);
        }