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); }
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); }
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(); }
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); }
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); }); } }