public void DonchianUpBreakout() { var companies = GenerateCompanies(); var filter = new DonchianChannelFilter(6, 1); var result = filter.Filter(companies); var company = result[0]; Assert.AreEqual(1, result.Length); Assert.AreEqual("UpBreakout", company.Name); }
public void DonchianDownBreakout() { var companies = GenerateCompanies(); var filter = new DonchianChannelFilter(6, -1); var result = filter.Filter(companies); var company = result[0]; var company2 = result[1]; Assert.AreEqual(2, result.Length); Assert.AreEqual("DownBreakout", company.Name); Assert.AreEqual("DownBreakout2", company2.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()); }