Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
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++;
            }
        }
Ejemplo n.º 5
0
        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();
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        public void CanReadCurrentPrice()
        {
            double price = InternetReader.ReadCurrentPrice("AAPL");

            Assert.IsTrue(price != 0);
        }
Ejemplo n.º 8
0
        public void CanGetLastTradeDate()
        {
            var lastTradeDate = InternetReader.GetLastTradeDate();

            Assert.IsTrue(lastTradeDate.HasValue);
        }
Ejemplo n.º 9
0
        public void CanReadETFAsCompanies()
        {
            var companies = InternetReader.ReadETFAsCompanies();

            Assert.IsTrue(companies.Count > 0);
        }
Ejemplo n.º 10
0
        public void CanReadCompaniesByExchange()
        {
            var companies = InternetReader.ReadCompaniesByExchange(@"NYSE");

            Assert.IsTrue(companies.Count > 0);
        }
Ejemplo n.º 11
0
        public void CanWebGet()
        {
            string page = InternetReader.WebGet(@"http://www.google.com/");

            Assert.IsTrue(!string.IsNullOrEmpty(page));
        }