Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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));
        }