public static void Main(string[] args) { //List<DateUnit> u=DateUtil.ConvertMonthlyDateUnit(DateTime.Parse("2012-09-03"), DateTime.Now); StockInfo info = new StockInfo(); info.stock = StockUtil.FormatStock(GetPara(args, "-stock")); info.startDate = GetPara(args, "-start"); if (info.startDate.Equals("")) { info.startDate = "2013-03-01"; } //info.startDate = "2013-03-01"; String[] bigDeal = GetPara(args, "-big").Split(','); if (bigDeal[0].Equals("")) { bigDeal = new String[] { "500", "1000", "2000" }; } info.filterList = bigDeal; //info.filterList = new String[] { "500", "1000", "2000" }; List <IStockModule> list = new List <IStockModule>(); list.Add(new DownloadModule()); list.Add(new AnalyzeModule()); list.Add(new ReportModule()); foreach (IStockModule module in list) { module.Execute(info); } }
public static string Analyze(string stock, string filter, string startDate, string endDate) { stock = StockUtil.FormatStock(stock); string analyzePath; List <DailyData> dds = Csv.ReadCsv(stock, startDate, endDate, true); StringBuilder str = new StringBuilder(); str.Append("date,bigBuyShare,bigSellShare,toalShare,bigBuyMoney,bigSellMoney,toalMoney,Open,Close,Average,Hightest,WhenHighest,Lowest,WhenLowest,BigBuyShareRate,BigSellShareRate,BigBuyMoneyRate,BigSellMoneyRate\n"); foreach (DailyData ds in dds) { BigDeal fd = new BigDeal(ds, filter); fd.Analye(); str.Append(StockUtil.FormatDate(fd.set.Date) + ","); str.Append(fd.TotalBuyShareByBigDeal + ","); str.Append(fd.TotalSellShareByBigDeal + ","); str.Append(fd.set.TotalShare + ","); str.Append(fd.TotalBuyMoneyByBigDeal + ","); str.Append(fd.TotalSellMoneyByBigDeal + ","); str.Append(fd.set.TotalMoney + ","); str.Append(fd.set.OpenPrice + ","); str.Append(fd.set.ClosePrice + ","); str.Append(fd.set.Average + ","); str.Append(fd.set.HighestPrice + ","); str.Append(StockUtil.FormatTime(fd.set.TimeWhenHighest) + ","); str.Append(fd.set.LowestPrice + ","); str.Append(StockUtil.FormatTime(fd.set.TimeWhenLowest) + ","); str.Append(fd.RateOfBuyShareByTotal + ","); str.Append(fd.RateOfSellShareByTotal + ","); str.Append(fd.RateOfBuyMoneyByTotal + ","); str.Append(fd.RateOfSellMoneyByTotal + ","); str.Append("\n"); } analyzePath = Constant.ANALYZE_FOLDER + stock + "_" + startDate + "_" + endDate + "_" + filter + ".csv"; if (File.Exists(analyzePath)) { File.Delete(analyzePath); } using (StreamWriter outfile = new StreamWriter(Constant.ANALYZE_FOLDER + stock + "_" + startDate + "_" + endDate + "_" + filter + ".csv")) { outfile.Write(str); Console.WriteLine("Analyzed: " + Constant.ANALYZE_FOLDER + stock + "_" + startDate + "_" + endDate + "_" + filter + ".csv"); } return(analyzePath); }
private void init() { if (_dataset == null) { _dataset = Csv.ReadCsv(StockUtil.FormatStock(stock), startDate, endDate, isDownload); } if (_entrydata == null) { _entrydata = new List <EntryData>(); foreach (DailyData daily in DailyList) { foreach (EntryData entry in daily.entryList) { _entrydata.Add(entry); } } } }
public static void Main(string[] args) { List <RzrqData> list = new List <RzrqData>(); string dt = DateTime.Now.ToString("yyyy-MM-dd"); //http://data.eastmoney.com/rzrq/sh.html string url = string.Format("http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/rzrq/index.phtml?tradedate=" + dt); //string url = string.Format("http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/rzrq/index.phtml"); WebClient client = new WebClient(); byte[] gg = client.DownloadData(url); string jj = System.Text.Encoding.GetEncoding("gb2312").GetString(gg); TextReader stream = new StringReader(jj); HtmlDocument document = new HtmlDocument(); document.Load(stream); HtmlNode rootNode = document.DocumentNode; HtmlNodeCollection c = rootNode.SelectNodes("//table[@id='dataTable']"); string haha = c[1].InnerText; haha = haha.Replace(",", ""); haha = haha.Replace("\n", ","); haha = haha.Replace(" ", ""); haha = haha.Replace(",,,,", "|"); haha = haha.Replace("|,", "|"); if (haha.Length < 1000) { return; } string start_str = "|1"; int start = haha.IndexOf(start_str) + start_str.Length - 1; int end = haha.LastIndexOf(",,,"); string aa = haha.Substring(start, end - start); string[] cc = aa.Split('|'); //股票代码 股票名称 余额(元) 买入额(元) 偿还额(元) 余量金额(元) 余量(股) 卖出量(股) 偿还量(股) 融券余额(元) //510010,融资融券_沪证,治理ETF,44315624,2015/4/1 0:00:00,114417(rongquanchanghuangliang),474500(rongquanmaichuliang),5136454.851(rongquanyue),4283949,2293344(rongzichanghuane),943569(rongzimairue),0,49452079(rongziyue) foreach (string bb in cc) { string[] dd = bb.Split(','); if (!dd[1].StartsWith("5")) { list.Add(new RzrqData() { sid = StockUtil.FormatStock(dd[1]), name = dd[2], rongziyue = p(dd[3]), rongzimairue = p(dd[4]), rongzichanghuane = p(dd[5]), time = DateTime.Parse(dt), rongquanyuliangjine = p(dd[6]), rongquanyuliang = p(dd[7]), rongquanmaichuliang = p(dd[8]), rongquanchanghuanliang = p(dd[9]), rongquanyue = p(dd[10]) }); } } //TextReader stream = new StringReader(haha); //HtmlDocument document = new HtmlDocument(); //document.Load(stream); //HtmlNode rootNode = document.DocumentNode; //HtmlNodeCollection c = rootNode.SelectNodes("//table[@id='dt_1']"); //System.Threading.Thread.Sleep(5000); //string innerString = c[0].InnerText; foreach (RzrqData rd in list) { big.BizApi.InsertRzrq(rd); } Console.WriteLine(); }