private List <Eod> ReadEods(List <EodParam> parameters) { List <Eod> seed = new List <Eod> (); List <Eod> value = parameters.AsParallel() .Select(p => InternetReader.ReadEodBySymbol(p)) .Aggregate(seed, (i, j) => i.Union(j).ToList()); return(value); }
private List <Company> ReadCompaniesFromInternet() { List <Company> seed = new List <Company> (); var companies = _EXCHANGES.AsParallel() .Select(c => InternetReader.ReadCompaniesByExchange(c)) .Aggregate(seed, (i, j) => i.Union(j).ToList()); var etfs = InternetReader.ReadETFAsCompanies(); companies.AddRange(etfs); return(companies); }
public void CanReadEodBySymbol() { EodParam param = new EodParam { Symbol = "AAPL", Start = DateTime.Now.AddDays(-30), End = DateTime.Now }; var eods = InternetReader.ReadEodBySymbol(param); Assert.IsTrue(eods.Count > 0); }
public override void Execute() { DateTime?lastTradeDate = InternetReader.GetLastTradeDate(); if (!lastTradeDate.HasValue) { Logger.Instance.Error("Fail to get last trade date."); return; } else { Logger.Instance.InfoFormat("Last trade date is: {0}", lastTradeDate.Value.ToString("yyyy-MM-dd")); } List <DataState> states = _dataRepo.EodState; List <EodParam> parameters = states.Select(e => new EodParam { Symbol = e.Symbol, //For symbol without since, we need get 10 years of data Start = (e.Last.HasValue ? e.Last.Value : DateTime.Today.AddYears(-30)), End = lastTradeDate.Value }).Where(p => p.Start < lastTradeDate.Value).ToList(); Logger.Instance.InfoFormat("{0} symbols to be processed", parameters.Count); int i = 0; const int batchSize = 16; while (true) { List <EodParam> processing = parameters.Skip(i * batchSize).Take(batchSize).ToList(); if (processing.Count == 0) { break; } List <Eod> eods = ReadEods(processing); if (eods.Count > 0) { Logger.Instance.InfoFormat("Saving {0} eods ", eods.Count); UpdateHelper.BulkSave(_dataRepo, typeof(Eod), eods.Select(e => e.ToCsv()).ToArray()); } i++; } }
public void WebGetPerformance() { var watch = new Stopwatch(); DateTime start = DateTime.Now.AddDays(-700); List <string> symbols = new List <string> { "AA", "AAC", "AADR", "AAIT", "AAL", "AAMC", "AAME", "AAN", "A", "AAOI", "AAON", "AAP", "AAT", "AAU", "AAV", "AAVL", "AAWW", "AAXJ", "AB", "ABAC", "ABAX", "ABB", "ABBV", "ABC", "ABCB", "ABCD", "ABCO", "ABCW", "ABDC", "ABEV", "ABG", "ABGB", "ABIO", "ABM", "ABMD", "ABR", "ABT", "ABTL", "ABX", "ABY", "ACAD", "ACAS", "ACAT", "ACC", "ACCO", "ACCU", "ACE", "ACET", "ACFC", "ACFN", "ACG", "ACGL", "ACH", "ACHC", "ACHN", "ACI", "ACIM", "ACIW", "ACLS", "ACM", "ACN", "ACNB", "ACOR", "ACP", "ACPW", "ACRE", "ACRX", "ACSF", "ACST", "ACT", "ACTA", "ACTG", "ACTS", "ACU", "ACUR", "ACW", "ACWI", "ACWV", "ACWX", "ACXM", "ACY", "ADAT", "ADBE", "ADC", "ADEP", "ADGE", "ADHD", "ADI", "ADM", "ADMA", "ADMP", "ADMS", "ADNC", "ADP", "ADPT", "ADRA", "ADRD", "ADRE", "ADRU", "AAPL", "GOOG", "MSFT", "XOM", "ORCL" }; var eodParams = symbols.Select(s => new EodParam { Symbol = s, Start = start, End = DateTime.Now }).ToList(); List <TimeSpan> times = new List <TimeSpan>(); for (int i = 0; i < 10; i++) { watch.Start(); foreach (var param in eodParams) { InternetReader.ReadEodBySymbol(param); } watch.Stop(); times.Add(watch.Elapsed); watch.Reset(); } }
private PriceAlert ScanObject(Stock monitorObject) { //get current price double curPrice = InternetReader.ReadCurrentPrice(monitorObject.Symbol); if (curPrice == -1) { return(null); } //load current 30/70 price. RSIPredict predict = _monitorRepo.LoadRSIPredict(monitorObject.Symbol); if (predict == null) { return(null); } if (monitorObject.InPossession && curPrice >= predict.PredictRsi70Price) { return(new PriceAlert { Symbol = monitorObject.Symbol, Price = curPrice, TargetPrice = predict.PredictRsi70Price, Buy = false }); } if (!monitorObject.InPossession && curPrice <= predict.PredictRsi30Price) { return(new PriceAlert { Symbol = monitorObject.Symbol, Price = curPrice, TargetPrice = predict.PredictRsi30Price, Buy = true }); } return(null); }
public void CanReadCurrentPrice() { double price = InternetReader.ReadCurrentPrice("AAPL"); Assert.IsTrue(price != 0); }
public void CanGetLastTradeDate() { var lastTradeDate = InternetReader.GetLastTradeDate(); Assert.IsTrue(lastTradeDate.HasValue); }
public void CanReadETFAsCompanies() { var companies = InternetReader.ReadETFAsCompanies(); Assert.IsTrue(companies.Count > 0); }
public void CanReadCompaniesByExchange() { var companies = InternetReader.ReadCompaniesByExchange(@"NYSE"); Assert.IsTrue(companies.Count > 0); }
public void CanWebGet() { string page = InternetReader.WebGet(@"http://www.google.com/"); Assert.IsTrue(!string.IsNullOrEmpty(page)); }