コード例 #1
0
ファイル: DataParserTest.cs プロジェクト: YaleLi/FuturesData
        public void ShfeTopTransactionContractTest()
        {
            DateTime date    = new DateTime(2014, 1, 6);
            string   webText = TestUtility.RetrieveWebPage(date, new ShfeDailyTransactionCrawler());
            var      parser  = new ShfeTransactionParser();

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

            string[] topContracts = new string[]
            {
                "cu1403", "cu1404", "al1403", "al1404", "zn1403", "zn1404",
                "pb1401", "pb1402", "au1412", "au1406", "ag1401", "ag1406",
                "rb1405", "rb1410", "ru1405", "ru1409"
            };

            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
ファイル: DataParserTest.cs プロジェクト: YaleLi/FuturesData
        public void ShfeHolidayTransactionContractListTest()
        {
            DateTime date        = new DateTime(2015, 1, 1);
            string   webText     = TestUtility.RetrieveWebPage(date, new ShfeDailyTransactionCrawler());
            var      parser      = new ShfeTransactionParser();
            var      listFromWeb = parser.GetContractList(webText, date);

            Assert.IsTrue(listFromWeb.Count == 0);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: YaleLi/FuturesData
        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
ファイル: DataParserTest.cs プロジェクト: YaleLi/FuturesData
        public void ShfeTransactionContractListTest()
        {
            DateTime date        = new DateTime(2014, 1, 6);
            string   webText     = TestUtility.RetrieveWebPage(date, new ShfeDailyTransactionCrawler());
            var      parser      = new ShfeTransactionParser();
            var      listFromWeb = parser.GetContractList(webText, date);

            var testData = new List <ContractTransactionInfo>();

            testData.Add(new ContractTransactionInfo(date, "shfe", "cu", "1403", 51900, 52080, 51670, 51770, 51890,
                                                     243308, 220868));
            testData.Add(new ContractTransactionInfo(date, "shfe", "al", "1412", 13990, 13990, 13960, 13960, 13980, 6,
                                                     14));
            testData.Add(new ContractTransactionInfo(date, "shfe", "pb", "1409", -1, -1, -1, 14550, 14550, 0, 0));
            testData.Add(new ContractTransactionInfo(date, "shfe", "fu", "1404", -1, -1, -1, 4150, 4150, 0, 12));
            testData.Add(new ContractTransactionInfo(date, "shfe", "ru", "1411", 17510, 17640, 17290, 17290, 17465, 130,
                                                     1060));
            testData.Add(new ContractTransactionInfo(date, "shfe", "au", "1406", 245.5, 248.35, 244.65, 246.90, 246.35,
                                                     240660, 170620));

            ValidateValues(testData, listFromWeb);
        }