public static async Task <CompaniesListYF> GetScreenedCompaniesAsync(CompaniesListYF allCompanies, string screenId) { CompaniesListYF screened = new CompaniesListYF { SymbolsToCompanies = new Dictionary <string, CompanyYF>() }; foreach (var company in allCompanies.SymbolsToCompanies) { string symbol = company.Key; CompanyYF companyObject = company.Value; CompanyStatsYF stats = companyObject.Stats; if (stats.Price < 20 && stats.Price > .01M && stats.VolumeAverage10dUSD > 1000000 /*&& !String.IsNullOrEmpty(stats.Earnings.EPSReportDate)*/) { screened.SymbolsToCompanies.Add(symbol, companyObject); } } return(await Task.FromResult(screened)); }
public static async Task <CompaniesListYF> GetAllCompaniesAsync() { CompaniesListYF companies = new CompaniesListYF() { SymbolsToCompanies = new Dictionary <string, CompanyYF>() }; 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) { CompanyStatsYF stats = YahooFinance.GetCompanyStatsAsync(symbol).Result; CompanyYF company = new CompanyYF { 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)) { CompanyStatsYF stats = YahooFinance.GetCompanyStatsAsync(symbol).Result; CompanyYF company = new CompanyYF { 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)) { CompanyStatsYF stats = YahooFinance.GetCompanyStatsAsync(symbol).Result; CompanyYF company = new CompanyYF { Symbol = symbol, Exchange = data[2], Stats = stats }; companies.SymbolsToCompanies.Add(symbol, company); } } } return(await Task.FromResult(companies)); }
public CompaniesListYF GetScreenedCompaniesYF(string screenId) { CompaniesListYF companies = YahooFinance.GetAllCompaniesAsync().Result; return(YahooFinance.GetScreenedCompaniesAsync(companies, screenId).Result); }