public List <AnalyzeData> QueryAnalyze(string level, string tag, string old, string daybefore, string industry, string location, string type) { tag = BizCommon.ProcessWeekend(tag); int level_val = 1; DateTime now = DateTime.Now; int days_before = Constant.DAYS_BEFORE; int o = -12; if (string.IsNullOrEmpty(tag)) { tag = BizCommon.ParseToString(now); } else { now = BizCommon.ParseToDate(tag); } if (!string.IsNullOrEmpty(daybefore)) { days_before = Int32.Parse(daybefore); } if (!string.IsNullOrEmpty(level)) { level_val = Int32.Parse(level); } if (!string.IsNullOrEmpty(old)) { o = -Int32.Parse(old); } DateTime end_date = now.AddDays((double)(-days_before)); DateTime start_date = end_date.AddMonths(o); return(BizApi.QueryAnalyzeData(tag, start_date, end_date, level_val, industry, location, type)); }
public static bool Analyze(string sid, DateTime start, DateTime end) { List <LineData> list = BizApi.QueryLineByDay(sid, start, end); //停盘 if (list.Count == 0) { //Console.WriteLine(sid + " close"); return(false); } int peekindexclose = 0; LineData peek = GetClosePeek(list, out peekindexclose); int valleyindexclose = 0; LineData vally = GetCloseValley(list, out valleyindexclose); int valleyindexlow2 = 0; LineData vally2 = GetLowValley2(list, peekindexclose, out valleyindexlow2); //如果时间太短,调整不够 //if (peekindexclose < valleyindexclose || peekindexclose > valleyindexlow2) return false; //if (peekindexclose - valleyindexclose < 3 || valleyindexlow2 - peekindexclose < 3) return false; bool shangzhang = judgeShangzhang(list, peekindexclose, valleyindexclose); bool xiadie = judgeXiajiang(list, peekindexclose, valleyindexlow2); bool liangneng = judgeSuoliang(list, peekindexclose, valleyindexclose); Console.WriteLine("上涨,下跌,缩量" + shangzhang + "," + xiadie + "," + liangneng); return(shangzhang && xiadie && liangneng); }
public List <AnalyzeData> QueryAnalyzeStatistics(string level, string tag, string type) { tag = BizCommon.ProcessWeekend(tag); int level_val = 1; //DateTime end_date = DateTime.Now; if (!string.IsNullOrEmpty(level)) { level_val = Int32.Parse(level); } if (!string.IsNullOrEmpty(tag)) { tag = BizCommon.ParseToString(DateTime.Now); } if (string.IsNullOrEmpty(type)) { return(BizApi.QueryAnalyzeStatisticsByName(tag, level_val)); } if (type.Equals("name")) { return(BizApi.QueryAnalyzeStatisticsByName(tag, level_val)); } if (type.Equals("industry")) { return(BizApi.QueryAnalyzeStatisticsByIndustry(tag, level_val)); } return(null); }
public static void ImportFileByReaderOld(string sid, string date, TextReader reader) { //string sid = file.Substring(file.LastIndexOf("\\") + 1); StockLog.Log.Debug(sid + " start "); DateTime beginning = DateTime.Now; BizApi.CreateDataTable(sid); string file = sid + "_" + date; try { //decimal weight = BizApi.QueryWeight(sid); decimal[] extractlist = BizApi.QueryExtractList(sid); DateTime lastupdate = BizApi.QueryExtractLastUpdate(sid); List <BasicData> list = ReadCsvByReader(sid, date, reader, extractlist, lastupdate); foreach (BasicData bd in list) { //Console.WriteLine(bd.time+" "+bd.sellshare); BizApi.InsertBasicData(bd); } TimeSpan end = DateTime.Now - beginning; StockLog.Log.Debug(file + " complete at " + end); } catch { StockLog.Log.Error(file + " import fail"); } }
public static void ImportFileByReader(string sid, string date, TextReader reader) { //string sid = file.Substring(file.LastIndexOf("\\") + 1); StockLog.Log.Debug(sid + " start "); DateTime beginning = DateTime.Now; //BizApi.CreateDataTable(sid); //try //{ //decimal weight = BizApi.QueryWeight(sid); //decimal[] extractlist = BizApi.QueryExtractList(sid); decimal[] extractlist = new decimal[4]; extractlist[0] = 0; extractlist[1] = 500; extractlist[2] = 1000; extractlist[3] = 2000; DateTime lastupdate = DateTime.MinValue; //BizApi.QueryExtractLastUpdate(sid); List <BasicData> list = ReadCsvByReader(sid, date, reader, extractlist, lastupdate); foreach (BasicData bd in list) { if (bd.big == 0) { try { BizApi.InsertBasicData(bd); } catch { StockLog.Log.Error(sid + " " + bd.time + " insert fail"); } //Console.WriteLine(sid + " insert " + bd.time + " " + bd.big); } else { //Console.WriteLine(sid + " update " + bd.time + " " + bd.big); try { BizApi.UpdateBasicDataForBigDeal(bd); } catch { StockLog.Log.Error(sid + " " + bd.time + " update fail"); } } } TimeSpan end = DateTime.Now - beginning; //StockLog.Log.Debug(sid + " complete at " + end); //} //catch //{ // StockLog.Log.Error(sid + " import fail"); //} }
public string QueryMaxMin(string id, string range) { int r = 24; if (string.IsNullOrEmpty(range)) { r = int.Parse(range); } return(BizApi.QueryMaxMinPriceByRange(id, r)); }
//[WebGet(UriTemplate = "info/industry", ResponseFormat = WebMessageFormat.Json)] public string[] QueryInfoByAllIndustry(string type) { if (type.Equals("L")) { return(BizApi.QueryAllLocation()); } else { return(BizApi.QueryAllIndustry()); } }
public List <ShangjiaData> QueryShangjiaByName(string name, string type) { if (!string.IsNullOrEmpty(type)) { return(BizApi.QueryShangjiaByName(name, int.Parse(type))); } else { return(BizApi.QueryShangjiaByName(name, 1)); } }
public static void DownloadSingle(string sid) { string startDate = BizApi.QueryExtractLastUpdate(sid).AddDays(1).ToString("yyyy-MM-dd"); string endDate = StockUtil.FormatDate(DateTime.Now); DataDownload.DownloadDataToCsvByReader(sid, startDate, endDate); if (!Constant.CLEAN) { StockUtil.UpdateDownloadTimeStamp(sid, endDate); } StockLog.Log.Info(sid + " updated " + startDate + " " + endDate); }
public static void Main(string[] args) { List <InfoData> iflist = BizApi.QueryInfoAll(); foreach (InfoData id in iflist) { InfoExtData ifd = QueryInfoExtFromEastMoney(id.sid); BizApi.InsertInfoExt(ifd); //Console.WriteLine(ifd.sid + " infoext inserted."); } //InfoExtData ifd = QueryInfoExtFromEastMoney("sh600339"); }
public static void Main(string[] args) { //string stock = "sz000333"; //InfoData id = BuildInfo(stock); //Console.WriteLine(id); // BizApi.InsertInfo(id); IList <InfoData> list = GetList(); foreach (InfoData id in list) { BizApi.InsertInfo(id); } }
public string QueryAnalyze1(string sid, string level, string tag, string old, string daybefore) { tag = BizCommon.ProcessWeekend(tag); int level_val = 1; DateTime now = DateTime.Now; int i_daybeofre = 0; if (string.IsNullOrEmpty(tag)) { tag = BizCommon.ParseToString(now); } else { now = BizCommon.ParseToDate(tag); } if (string.IsNullOrEmpty(daybefore)) { i_daybeofre = 0; } else { i_daybeofre = int.Parse(daybefore); } if (!string.IsNullOrEmpty(level)) { level_val = Int32.Parse(level); } if (string.IsNullOrEmpty(old)) { old = Constant.ANALYZE_TIME; } string vv = ""; string[] list = old.Split('-'); foreach (string v in list) { int o = -Int32.Parse(v); DateTime end_date = now.AddDays(-i_daybeofre); DateTime start_date = end_date.AddMonths(o); vv += BizApi.QueryAnalyzeDataValue(sid, tag, start_date, end_date, level_val) + ","; } return(vv.Substring(0, vv.Length - 1));; }
public static void GenerateAll(string path, string tag) { tag = "20150415"; path = @"G:\github\StockAnalyzer\web\"; string temp = path + @"temp\"; if (!Directory.Exists(temp)) { Directory.CreateDirectory(temp); } string[] old_list = Constant.ANALYZE_TIME.Split('-'); string[] type_list = { "CYB", "ZXB", "ZB", "XPG" }; string[] industry_list = BizApi.QueryAllIndustry(); string[] location_list = BizApi.QueryAllLocation(); foreach (string old in old_list) { foreach (string type in type_list) { string haha = Generate(Constant.ANALYZE_LEVEL.ToString(), tag, old, Constant.DAYS_BEFORE.ToString(), "", "", type); string template = Common.FileUtil.ReadFile(path + "analyzetemplate.html"); template = template.Replace("PLACEHOLDER", haha); string filename = string.Format("analyze_{0}_{1}.html", old, type); Common.FileUtil.WriteFile(temp + filename, template); Console.WriteLine(); } foreach (string industry in industry_list) { string haha = Generate(Constant.ANALYZE_LEVEL.ToString(), tag, old, Constant.DAYS_BEFORE.ToString(), industry, "", ""); string template = Common.FileUtil.ReadFile(path + "analyzetemplate.html"); template = template.Replace("PLACEHOLDER", haha); string filename = string.Format("analyze_{0}_{1}.html", old, industry); Common.FileUtil.WriteFile(temp + filename, template); Console.WriteLine(); } foreach (string location in location_list) { string haha = Generate(Constant.ANALYZE_LEVEL.ToString(), tag, old, Constant.DAYS_BEFORE.ToString(), "", location, ""); string template = Common.FileUtil.ReadFile(path + "analyzetemplate.html"); template = template.Replace("PLACEHOLDER", haha); string filename = string.Format("analyze_{0}_{1}.html", old, location); Common.FileUtil.WriteFile(temp + filename, template); Console.WriteLine(); } } }
public static void exec(int day_before) { DateTime now = DateTime.Now; string tag = now.ToString("yyyyMMdd"); DateTime end = now.AddDays(day_before); DateTime start = new DateTime(); string[] list = Constant.ANALYZE_TIME.Split('-'); BizApi.DeleteAnalyzeData(tag); foreach (string i in list) { start = end.AddMonths(-int.Parse(i)); BizApi.InsertAnalyzeData(tag, start, end); } }
public static void Main(string[] args) { // BizData.QueryByWeek("sz000830", 500, new DateTime(2015, 1, 1), new DateTime(2015, 3, 3)); //List<BasicData> list = ImportRawData.ReadCsvFolder(@"D:\workspace\myproject\sz000830", 2000); //foreach (BasicData bd in list) //{ // //Console.WriteLine(bd.time+" "+bd.sellshare); // BizData.InsertTable(bd); //} IList <BasicData> list = BizApi.QueryByWeek("sz000830", 2000, new DateTime(2014, 7, 1), new DateTime(2014, 12, 12));; Console.WriteLine(BizApi.QueryExtractLastUpdate("sz000830")); }
public IList <BasicData> QueryData(string id, string big, string type, string start, string end) { DateTime endDate, startDate; IList <BasicData> list; if (string.IsNullOrEmpty(end)) { endDate = DateTime.Now; } else { endDate = BizCommon.ParseToDate(end); } if (string.IsNullOrEmpty(big)) { big = "1000"; } if (string.IsNullOrEmpty(type)) { type = "w"; } if (string.IsNullOrEmpty(start)) { startDate = new DateTime(2014, 1, 1); } else { startDate = BizCommon.ParseToDate(start); } switch (type) { case "m": list = BizApi.QueryByMonth(id, Int32.Parse(big), startDate, endDate); break; case "d": list = BizApi.QueryByDay(id, Int32.Parse(big), startDate, endDate); break; default: list = BizApi.QueryByWeek(id, Int32.Parse(big), startDate, endDate); break; } return(list); }
public static void ImportFileByReader(string sid, string date, TextReader reader) { //string sid = file.Substring(file.LastIndexOf("\\") + 1); StockLog.Log.Debug(sid + " start "); DateTime beginning = DateTime.Now; //BizApi.CreateDataTable(sid); //try //{ //decimal weight = BizApi.QueryWeight(sid); decimal[] ext_list = BizApi.QueryExtractList(sid); decimal[] extractlist = new decimal[ext_list.Length + 1]; for (int i = 0; i < ext_list.Length; i++) { extractlist[i] = ext_list[i]; } extractlist[ext_list.Length] = 0; //decimal[] extractlist = new decimal[4]; //extractlist[0] = 0; //extractlist[1] = 500; //extractlist[2] = 1000; //extractlist[3] = 2000; try { if (sid == "sh600048") { StockLog.Log.Debug(sid + " complete at "); } DateTime lastupdate = BizApi.QueryExtractLastUpdate(sid); List <BasicData> list = ReadCsvByReader(sid, date, reader, extractlist, lastupdate); foreach (BasicData bd in list) { BizApi.InsertBasicData(bd); } TimeSpan end = DateTime.Now - beginning; StockLog.Log.Debug(sid + " complete at " + end); } catch (Exception e) { StockLog.Log.Error(sid + " import fail"); } }
public static void Auto(int totalThread = 2) { //List<InfoData> total = new List<InfoData>(); //total.Add(new InfoData() { sid = "sh600009" }); //total.Add(new InfoData() { sid = "sh600010" }); List <InfoData> total = BizApi.QueryInfoAll(); int count = total.Count; //int totalThread = 10; int range = total.Count / totalThread; int start = -1; for (int i = 0; i < totalThread; i++) { new Thread(new ParameterizedThreadStart(Process)).Start(total.GetRange(start + 1, range)); start = range * i; } }
public static void Main(string[] args) { List <InfoData> list = BizApi.QueryInfoRzrq(); //List<InfoData> list = new List<InfoData>() { BizApi.QueryInfoById("sh600157") }; foreach (InfoData id in list) { //Console.WriteLine(id.sid + " processed"); try { if (Analyze(id.sid, start, end)) { Console.WriteLine(id.sid + " selected!!!"); } } catch { //Console.WriteLine(id.sid + " failed"); //throw; } } }
static void Main(string[] args) { //902802 decimal x3 = 121.557445M; decimal y3 = 31.213961M; // MapData list = biz.BizApi.QueryFromOrig(1, x, y, x3, y3); //IEnumerable<Point> p_list = BresLine.RenderLine(new Point(-2, 2), new Point(-1, 3)); //List<MapData> l = biz.BizApi.QueryByXY(1, x, y, x1, y1, x2, y2); //biz.BizApi.InsertShangjiaMap("shangjia1", "121.497500,31.316255|121.497500,31.302255|121.497500,31.18025", x, y); List <ShangjiaData> tt = biz.BizApi.QueryShangjiaByName("test", 0); List <MapData> sourceList = new List <MapData>(); foreach (ShangjiaData aa in tt) { sourceList.Add(new MapData() { lng = aa.lng, lat = aa.lat }); } List <MapData> area = BizApi.CompueteGrid(sourceList); foreach (MapData md in area) { BizApi.InsertShangjiaMap(md, "test", 1); } Console.WriteLine(); }
public List <AnalyzeData> QueryAnalyzeRetry(string level, string tag, string old, string daybefore, string industry, string location, string type) { DateTime now = DateTime.Now; List <AnalyzeData> list = new List <AnalyzeData>(); int retry = 0; while (true && retry < 10) { DateTime end_date = now.AddDays((double)(-Int32.Parse(daybefore))); DateTime start_date = end_date.AddMonths(-Int32.Parse(old)); list = BizApi.QueryAnalyzeData(tag, start_date, end_date, Int32.Parse(level), industry, location, type); if (list.Count == 0) { retry++; now = now.AddDays(-retry); } else { break; } } return(list); }
public string QueryLatestPrice(string id, string tag) { return(BizApi.QueryLatestPrice(id, tag)); }
public string QueryLastUpdate(string id) { return(BizCommon.ParseToString(BizApi.QueryExtractLastUpdate(id))); }
public static string Generate(string level, string tag, string old, string daybefore, string industry, string location, string type) { DateTime now = BizCommon.ParseToDate(tag); DateTime end_date = now.AddDays((double)(-Int32.Parse(daybefore))); DateTime start_date = end_date.AddMonths(-Int32.Parse(old)); List <AnalyzeData> data = BizApi.QueryAnalyzeData(tag, start_date, end_date, Int32.Parse(level), industry, location, type); var newRow = ""; newRow += "Start:" + BizCommon.ParseToString(start_date) + " End:" + BizCommon.ParseToString(end_date); for (int i = 0; i < data.Count; i++) { newRow += "<tr>"; var big = data[i].big; var sid = data[i].sid; var link = "<a target='_parent' href='/web/single_dynamic.html?sid=" + sid + "&big=" + big + "'>" + sid + "</a>"; newRow += "<td>" + link + "</td>"; newRow += "<td>" + data[i].name + "</td>"; var ind1 = data[i].firstlevel; var ind2 = data[i].secondlevel; var ind_link1 = "<a target='_parent' href='/web/company.html?industry1=" + ind1 + "'>" + ind1 + "</a>"; newRow += "<td>" + ind_link1 + "</td>"; var ind_link2 = "<a target='_parent' href='/web/company.html?industry1=" + ind1 + "&industry2=" + ind2 + "'>" + ind2 + "</a>"; newRow += "<td>" + ind_link2 + "</td>"; var enddate = data[i].enddate; var startdate = data[i].startdate; //newRow += "<td>" + start_date + "</td>"; //newRow += "<td>" + end_date + "</td>"; //排名情况 var y = "/rest/rest/analyzevalue?level=" + level + "&tag=" + tag + "&sid=" + sid + "&daybefore=" + daybefore; newRow += "<td>" + QueryAnalyze1(sid, level, tag, old, daybefore) + "</td>"; //newRow += "<td>" + data[i].rank + "</td>"; newRow += "<td>" + data[i].value + "</td>"; //财务信息 InfoExtData data1 = BizApi.QueryInfoExtById(sid); newRow += "<td>" + data1.shiyinglv + "</td>"; newRow += "<td>" + data1.shijinglv + "</td>"; newRow += "<td>" + data1.jingzichan + "</td>"; newRow += "<td>" + data1.shourutongbi + "</td>"; newRow += "<td>" + data1.jingliruntongbi + "</td>"; newRow += "<td>" + data1.meiguweifenpeilirun + "</td>"; newRow += "<td>" + data1.zongguben + "</td>"; newRow += "<td>" + data1.liutonggu + "</td>"; //最新价格 newRow += "<td>" + BizApi.QueryLatestPrice(sid, tag) + "</td>"; //价格范围 newRow += "<td>" + BizApi.QueryMaxMinPriceByRange(sid, 12) + "</td>"; } return(newRow); }
public InfoData QueryInfoById(string id) { return(BizApi.QueryInfoById(id)); }
public List <InfoData> QueryInfoByLocation(string location) { return(BizApi.QueryInfoByLocation(location)); }
public string QueryLineDataForQingyou(string date, string stockno, string type) { return(BizApi.QueryStockDataForQingyou(BizCommon.ParseToDate(date), stockno, type)); }
public List <InfoData> QueryInfoByIndutry(string industry1) { return(BizApi.QueryInfoByIndustry(industry1)); }
public List <InfoData> QueryInfoByRzrq() { return(BizApi.QueryInfoRzrq()); }
public List <InfoData> QueryInfoByIndutry2(string industry1, string industry2) { return(BizApi.QueryInfoByIndustry2(industry1, industry2)); }