示例#1
0
        public void DceTopTransactionContractTest()
        {
            DateTime date    = new DateTime(2014, 1, 6);
            string   webText = TestUtility.RetrieveWebPage(date, new DceDailyTransactionCrawler());
            var      parser  = new DceTransactionParser();

            var listFromWeb = parser.GetTopContracts(webText, 2, date);

            string[] topContracts = new string[]
            {
                "a1405", "a1409", "c1405", "c1409", "bb1405", "fb1405",
                "fb1409", "jd1405", "jd1409", "m1405", "m1409", "y1405", "y1409"
            };

            var listOfCommodity = listFromWeb.GroupBy(c => c.Commodity);

            foreach (var contracts in listOfCommodity)
            {
                if (contracts.Count() > 2)
                {
                    Assert.Fail();
                }
            }

            var webTopContracts = listFromWeb.Select(c => c.Commodity + c.Contract);
            var joinResult      = webTopContracts.Join(topContracts, s => s, s => s, (s1, s2) => s1);
            int jc = joinResult.Count();

            Assert.IsTrue(joinResult.Count() == topContracts.Length);
        }
示例#2
0
        public void DceHolidayTransactionContractListTest()
        {
            DateTime date        = new DateTime(2015, 1, 1);
            string   webText     = TestUtility.RetrieveWebPage(date, new DceDailyTransactionCrawler());
            var      parser      = new DceTransactionParser();
            var      listFromWeb = parser.GetContractList(webText, date);

            Assert.IsTrue(listFromWeb.Count == 0);
        }
示例#3
0
        static void Main(string[] args)
        {
            var connection = ConfigurationManager.ConnectionStrings["CloudDBConnect"];
            var dataStore  = new FuturesDataStore(connection.ConnectionString);

            DateTime startDate = new DateTime(2015, 2, 1);
            DateTime endDate   = new DateTime(2015, 2, 28);;

            var dceTransactionCrawler = new DceDailyTransactionCrawler();

            dceTransactionCrawler.RuntimeLogger = Logger;
            var dceTransactionParser = new DceTransactionParser();

            dceTransactionCrawler.PullData(startDate, endDate, (text, transDate) => DceDataHandler(text, transDate.Date, dataStore));

            var shfeTransactionCrawler = new ShfeDailyTransactionCrawler();

            shfeTransactionCrawler.RuntimeLogger = Logger;
            var shfeTransactionParser = new ShfeTransactionParser();

            shfeTransactionCrawler.PullData(startDate, endDate, (text, transDate) =>
            {
                HandleDailyTransactionData(shfeTransactionParser, text, transDate.Date, dataStore);
            });
            var shfePositionCrawler = new ShfeDealerPositionCrawler();

            shfePositionCrawler.RuntimeLogger = Logger;
            var shfePositionParser = new ShfeDealerPositionParser();

            shfePositionCrawler.PullData(startDate, endDate, (text, transDate) =>
            {
                HandlePositionData(shfePositionParser, text, transDate.Date, dataStore);
            });

            var czceTransactionCrawler = new CzceDailyTransactionCrawler();

            czceTransactionCrawler.RuntimeLogger = Logger;
            var czceTransactionParser = new CzceTransactionParser();

            czceTransactionCrawler.PullData(startDate, endDate, (text, transDate) =>
            {
                HandleDailyTransactionData(czceTransactionParser, text, transDate.Date, dataStore);
            });
            var czcePositionCrawler = new CzceDealerPositionCrawler();

            czcePositionCrawler.RuntimeLogger = Logger;
            var czcePositionParser = new CzceDealerPositionParser();

            czcePositionCrawler.PullData(startDate, endDate, (text, transDate) =>
            {
                HandlePositionData(czcePositionParser, text, transDate.Date, dataStore);
            });

            System.Console.WriteLine("\n\n\n\n==================================\nFinished!!!!");
            System.Console.ReadLine();
        }
示例#4
0
        public void DceTransactionContractListTest()
        {
            DateTime date        = new DateTime(2014, 1, 6);
            string   webText     = TestUtility.RetrieveWebPage(date, new DceDailyTransactionCrawler());
            var      parser      = new DceTransactionParser();
            var      listFromWeb = parser.GetContractList(webText, date);

            var testData = new List <ContractTransactionInfo>();

            testData.Add(new ContractTransactionInfo(date, "dce", "a", "1401", -1, -1, -1, 4425, 4425, 0, 22));
            testData.Add(new ContractTransactionInfo(date, "dce", "fb", "1405", 69.45, 69.55, 66.65, 66.75, 67.25, 348528, 88992));
            testData.Add(new ContractTransactionInfo(date, "dce", "y", "1412", -1, -1, -1, 6992, 6992, 0, 14));
            testData.Add(new ContractTransactionInfo(date, "dce", "bb", "1409", 123.4, 123.9, 119.45, 121.5, 121.45, 46, 194));
            testData.Add(new ContractTransactionInfo(date, "dce", "fb", "1412", -1, -1, -1, 68.2, 68.2, 0, 2));
            testData.Add(new ContractTransactionInfo(date, "dce", "i", "1409", 878, 882, 871, 873, 874, 9560, 37276));
            testData.Add(new ContractTransactionInfo(date, "dce", "l", "1409", 10750, 10800, 10725, 10755, 10760, 10508, 28282));

            ValidateValues(testData, listFromWeb);
        }
示例#5
0
        private static void DceDataHandler(string transactionText, DateTime transactionDate, FuturesDataStore dataStore)
        {
            var dceTransactionParser = new DceTransactionParser();
            var tops = dceTransactionParser.GetTopContracts(transactionText, 2, transactionDate);

            WriteTransactionDataToStore(tops, dataStore);

            var dcePositionParser = new DceDealerPositionParser();

            foreach (var contract in tops)
            {
                var dcePositionCrawler = new DceDealerPositionCrawler(contract.Commodity, contract.Contract);
                dcePositionCrawler.RuntimeLogger = Logger;

                dcePositionCrawler.PullData(transactionDate, transactionDate, (htmlText, targetDate) =>
                {
                    HandlePositionData(dcePositionParser, htmlText, targetDate, dataStore);
                });
            }
        }