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);
                    }
                }
            }
        }
Exemple #4
0
        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();
        }