public IActionResult Sell() { int[] lines = { 5, 10, 20, 30, 50, 60, 90, 180, 360 }; //卖出测试 int topline = 5; int bottomline = 250; List <string> result = new List <string>(); var date = DateTime.Now.AddDays(30 * 36 * -1); var data = DBHelper._db.SHAs.Where(tb => tb.Code == CodeHelper.CodeToDBCode("000001")).Select(tb => new { tb.Date, tb.Closing, tb.Lowest, tb.Highest }).ToList(); while (date <= DateTime.Now) { var thisdata = data.Where(tb => tb.Date.Year == date.Year && tb.Date.Month == date.Month && tb.Date.Day == date.Day).ToList(); date = date.AddDays(1); if (thisdata.Count == 0) { continue; } var topdata = data.Where(tb => tb.Date < date).OrderByDescending(tb => tb.Date).Take(topline).ToList(); var top = topdata.Sum(tb => tb.Closing) / topline; //var bottomdata = data.Where(tb => tb.Date < date).OrderByDescending(tb => tb.Date).Take(bottomline).ToList(); //var bottom = bottomdata.Sum(tb => tb.Lowest) / bottomline; bool canbuy = true; if (thisdata[0].Closing > top) { canbuy = false; } if (canbuy) { result.Add(thisdata[0].Date.ToString("yyyy-MM-dd")); } } return(View("Six", result)); }
public IActionResult BuyLineTest() { var data = DBHelper._db.SHAs.Where(tb => tb.Code == CodeHelper.CodeToDBCode("000001")).Select(tb => new { tb.Date, tb.Closing }).ToList(); //int[] lines = { 5, 10, 20, 30, 60, 180, 365 }; List <DateTime> dateTimes = new List <DateTime>(); dateTimes.Add(new DateTime(2018, 4, 11)); //dateTimes.Add(new DateTime(2017, 4, 24)); //dateTimes.Add(new DateTime(2018, 5, 30)); //dateTimes.Add(new DateTime(2018, 12, 10)); //dateTimes.Add(new DateTime(2019, 7, 22)); List <List <string> > Result = new List <List <string> >(); for (int i = 0; i < dateTimes.Count; i++) { List <string> res = new List <string>(); var thisdata = data.Where(tb => tb.Date.Year == dateTimes[i].Year && tb.Date.Month == dateTimes[i].Month && tb.Date.Day == dateTimes[i].Day).ToList(); for (int j = 5; j <= 360; j += 5) { string s = dateTimes[i].ToShortDateString() + ", " + j.ToString() + " 日均线:"; var before = data.Where(tb => tb.Date < dateTimes[i]).OrderByDescending(tb => tb.Date).Take(j).ToList(); var avg = before.Sum(tb => tb.Closing) / before.Count; if (thisdata[0].Closing <= avg) { s += "无效"; } else { s += "有效"; res.Add(s); } } Result.Add(res); } return(View(Result)); }
public IActionResult All() { int[] lines = { 5, 7, 10, 20, 30, 50, 60, 90, 100, 150, 180, 250, 360 }; var mindate = new DateTime(2019, 8, 1); var maxdate = new DateTime(2019, 8, 30); List <List <string> > Result = new List <List <string> >(); var data = DBHelper._db.SHAs.Where(tb => tb.Code == CodeHelper.CodeToDBCode("000001")).Select(tb => new { tb.Date, tb.Closing }).ToList(); while (mindate < maxdate) { List <string> res = new List <string>(); var thisdata = data.Where(tb => tb.Date == mindate).ToList(); if (thisdata.Count == 0) { mindate = mindate.AddDays(1); continue; } res.Add(mindate.ToShortDateString() + " :" + thisdata[0].Closing); for (int j = 0; j < lines.Length; j++) { string s = ""; var before = data.Where(tb => tb.Date < mindate).OrderByDescending(tb => tb.Date).Take(lines[j]).ToList(); var avg = before.Sum(tb => tb.Closing) / before.Count; if (thisdata[0].Closing < avg) { s = "击破 " + lines[j].ToString() + "日均线:" + avg; res.Add(s); } } mindate = mindate.AddDays(1); Result.Add(res); } return(View(Result)); }
public IActionResult History_Data(int startMonth = -1000, string Code = "000001") { var startDay = DateTime.Now.AddDays(30 * startMonth); var data = DBHelper._db.SHAs.Where(tb => tb.Code == CodeHelper.CodeToDBCode(Code)).Where(tb => tb.Date >= startDay).Select(tb => new { tb.Date, tb.Closing, tb.ReferDown, tb.ReferUp, tb.Highest, tb.Lowest, tb.MA5, tb.MA10, tb.MA20, tb.MA30, tb.MA60, tb.MA90, tb.MA120, tb.MA200, tb.MA250 }).OrderBy(tb => tb.Date).ToList(); string CHName = CodeHelper.CodeDic[Code]; ChartData result = new ChartData(); result.xAxis = data.Select(tb => tb.Date.ToString("yyyy-MM-dd")).ToArray(); result.legend = new string[] { CHName, "赶紧跑路", "为国护盘", "最高", "最低", "MA5", "MA10", "MA20", "MA30", "MA60", "MA90", "MA120", "MA200", "MA250" }; result.series.Add(new series { name = CHName, type = "line", data = data.Select(tb => (object)tb.Closing).ToArray() }); result.series.Add(new series { name = "最高", type = "line", data = data.Select(tb => (object)tb.Highest).ToArray() }); result.series.Add(new series { name = "最低", type = "line", data = data.Select(tb => (object)tb.Lowest).ToArray() }); result.series.Add(new series { name = "MA5", type = "line", data = data.Select(tb => (object)tb.MA5).ToArray() }); result.series.Add(new series { name = "MA10", type = "line", data = data.Select(tb => (object)tb.MA10).ToArray() }); result.series.Add(new series { name = "MA20", type = "line", data = data.Select(tb => (object)tb.MA20).ToArray() }); result.series.Add(new series { name = "MA30", type = "line", data = data.Select(tb => (object)tb.MA30).ToArray() }); result.series.Add(new series { name = "MA60", type = "line", data = data.Select(tb => (object)tb.MA60).ToArray() }); result.series.Add(new series { name = "MA90", type = "line", data = data.Select(tb => (object)tb.MA90).ToArray() }); result.series.Add(new series { name = "MA120", type = "line", data = data.Select(tb => (object)tb.MA120).ToArray() }); result.series.Add(new series { name = "MA200", type = "line", data = data.Select(tb => (object)tb.MA200).ToArray() }); result.series.Add(new series { name = "MA250", type = "line", data = data.Select(tb => (object)tb.MA250).ToArray() }); if (Code == "000001") { result.series.Add(new series { name = "赶紧跑路", type = "line", data = data.Select(tb => (object)tb.ReferUp).ToArray() }); result.series.Add(new series { name = "为国护盘", type = "line", data = data.Select(tb => (object)tb.ReferDown).ToArray() }); //if (data.Count > 0) // ViewBag.yStart = (int)(data.Min(tb => tb.ReferDown) * 100 / Math.Max(data.Max(tb => tb.Closing), data.Max(tb => tb.ReferUp))); } if (data.Count > 0) { ViewBag.yStart = (int)(data.Min(tb => tb.Lowest) * 100 / data.Max(tb => tb.Highest)); } return(View(result)); }
public IActionResult MonthData(int start, int end, int startyear, int endyear) { string Code = "000001"; if (start < 1) { start = 1; } if (end > 12) { end = 12; } var data = DBHelper._db.SHAs .Where(tb => tb.Code == CodeHelper.CodeToDBCode(Code)) .Where(tb => tb.Date.Month >= start && tb.Date.Month <= end && tb.Date.Year >= startyear && tb.Date.Year <= endyear).Select(tb => new { tb.Date, tb.Closing, tb.ReferDown, tb.ReferUp }).OrderBy(tb => tb.Date).ToList(); ChartData result = new ChartData(); result.xAxis = data.Select(tb => tb.Date.ToString("yyyy-MM-dd")).ToArray(); result.legend = new string[] { "上证指数", "准备跑路", "为国护盘" }; result.series.Add(new series { name = "上证指数", type = "line", data = data.Select(tb => (object)tb.Closing).ToArray() }); result.series.Add(new series { name = "准备跑路", type = "line", data = data.Select(tb => (object)tb.ReferUp).ToArray() }); result.series.Add(new series { name = "为国护盘", type = "line", data = data.Select(tb => (object)tb.ReferDown).ToArray() }); if (data.Count > 0) { ViewBag.yStart = (int)(data.Min(tb => tb.ReferDown) * 100 / Math.Max(data.Max(tb => tb.Closing), data.Max(tb => tb.ReferUp))); } List <pieces> pieces = new List <pieces>(); var piedata = data.GroupBy(tb => tb.Date.Year).OrderBy(tb => tb.Key).ToList(); int total = 0; for (int i = 0; i < piedata.Count - 1; i++) { total += piedata[i].ToList().Count; pieces.Add(new Models.pieces { gt = total - 1, lt = total }); } ViewBag.pieces = pieces; return(View(result)); }