public void LifetimeFilterTest() { var companies = new List <Company>(); companies.Add(new Company() { Name = "Short", Chart = new Candle[] { new Candle() } }); companies.Add(new Company() { Name = "Long", Chart = new Candle[] { new Candle(), new Candle(), new Candle() } }); var result = new LifetimeFilter(2).Filter(companies.ToArray()); Assert.AreEqual(1, result.Length); Assert.AreEqual("Long", result[0].Name); }
private IEnumerable <CompanyVM> FilterCompanies(decimal?percentage) { if (percentage == null) { percentage = 0; } var companiesArr = _companies.Select(x => new Company() { Name = x.Name, Chart = x.Chart }).ToArray(); companiesArr = new LifetimeFilter(110).Filter(companiesArr); companiesArr = new SmaOverAnotherSmaFilter(50, 100).Filter(companiesArr); companiesArr = new DonchianChannelFilter(20, 1, percentage.Value).Filter(companiesArr); var retval = companiesArr.ToList(); return(retval.Select(x => new CompanyVM(x))); }
public string[] FilterCompanies(string[] tickers, decimal?percentage) { if (percentage == null) { percentage = 0; } var unprocessed = new List <string>(); var companies = new List <Company>(); var downloader = new QuoteDownloader(); foreach (var ticker in tickers) { try { var company = downloader.GetQuote(ticker); companies.Add(company); } catch (Exception) { unprocessed.Add(ticker); } } var companiesArr = companies.ToArray(); //TODO: Add params companiesArr = new LifetimeFilter(110).Filter(companiesArr); companiesArr = new SmaOverAnotherSmaFilter(50, 100).Filter(companiesArr); companiesArr = new DonchianChannelFilter(20, 1, percentage.Value).Filter(companiesArr); var retval = companiesArr.Select(x => x.Name).ToList(); if (unprocessed.Count > 0) { retval.Add("Couldn't process: " + string.Join(";", unprocessed.ToArray())); } return(retval.ToArray()); }