Esempio n. 1
0
        /// <summary>
        /// 获得平均凯利线性图形
        /// </summary>
        /// <param name="scheduleID"></param>
        /// <param name="companyids"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public string GetKellyAverageLineChart(string scheduleID, string[] companyids, double time, bool isRefresh)
        {
            string    jsonStr = "";
            BetExpBLL bll     = new BetExpBLL();

            if (bll.Exists(int.Parse(scheduleID)) && !isRefresh)
            {
                BetExp betExp = bll.GetModel(int.Parse(scheduleID));
                jsonStr = betExp.data;
            }
            else
            {
                if (companyids == null || companyids.Length == 0)
                {
                    companyids = dal.getLastCompanyIDs(scheduleID, 1);
                }

                DataSet dsStart = dal.GetCompanyStartPoint(scheduleID, companyids);
                DataSet dsEnd   = dal.GetCompanyEndPoint(scheduleID, companyids);

                DateTime firsttime = DateTime.Parse(dsStart.Tables[0].Rows[0][0].ToString());
                DateTime lasttime  = DateTime.Parse(dsEnd.Tables[0].Rows[0][0].ToString());

                DateTime firsttime1 = lasttime.AddSeconds(-time);

                if (firsttime1 > firsttime)
                {
                    firsttime = firsttime1;
                }
                float inithome = 0;
                float initdraw = 0;
                float initaway = 0;
                float initrate = 0;

                JsonSerializer serializer = GetJsonSerializer();
                double         timespace  = lasttime.Subtract(firsttime).TotalSeconds / 30;
                Odds1x2History firthmodel = new Odds1x2History();
                JArray         data       = new JArray();
                while (firsttime <= lasttime)
                {
                    ds = dal.GetAveNumByCompanys(scheduleID, string.Join(",", companyids), firsttime);
                    if (ds.Tables[0].Rows.Count == 1)
                    {
                        DataRow               dr              = ds.Tables[0].Rows[0];
                        List <float>          homeKelly       = new List <float>();
                        List <float>          drawKelly       = new List <float>();
                        List <float>          awayKelly       = new List <float>();
                        List <float>          returnrateKelly = new List <float>();
                        List <Odds1x2History> oddsList        = dal.GetLastListByCompanys(int.Parse(scheduleID), string.Join(",", companyids), firsttime);
                        foreach (Odds1x2History item in oddsList)
                        {
                            homeKelly.Add(item.home * float.Parse(dr["avghomep"].ToString()));
                            drawKelly.Add(item.draw * float.Parse(dr["avgdrawp"].ToString()));
                            awayKelly.Add(item.away * float.Parse(dr["avgawayp"].ToString()));
                            returnrateKelly.Add(item.returnrate * 100);
                        }

                        JObject result = new JObject();
                        if (data.Count <= 0)
                        {
                            inithome = homeKelly.Average();
                            initdraw = drawKelly.Average();
                            initaway = awayKelly.Average();
                            initrate = returnrateKelly.Average();
                        }

                        result.Add("avehome", (homeKelly.Average() - inithome) * 10);
                        result.Add("avedraw", (drawKelly.Average() - initdraw) * 10);
                        result.Add("aveaway", (awayKelly.Average() - initaway) * 10);
                        result.Add("returnrate", (returnrateKelly.Average() - initrate) * 10);
                        result.Add("varhome", this.CalculationVariance(homeKelly));
                        result.Add("vardraw", this.CalculationVariance(drawKelly));
                        result.Add("varaway", this.CalculationVariance(awayKelly));
                        result.Add("time", JProperty.FromObject(firsttime, serializer));
                        data.Add(result);
                        firsttime = firsttime.AddSeconds(timespace);
                    }
                }
                jsonStr = data.ToString();
                bll.Delete(int.Parse(scheduleID));
                string[] valueArr = new string[data.Count];
                for (int i = 0; i < data.Count; i++)
                {
                    valueArr[i] = bll.GetTrendsValue(JObject.Parse(data[data.Count - (data.Count - i)].ToString()), "");
                }
                bll.Add(new BetExp(int.Parse(scheduleID), jsonStr, string.Join(",", valueArr), "*" + bll.GetChangesValue(data, ""), false));
            }
            return(jsonStr);
        }
Esempio n. 2
0
    private void ProcessSaveBetExp()
    {
        JObject result  = new JObject();
        JArray  rowData = JArray.Parse(Request.Form["row"]);

        try
        {
            JArray errorResults = new JArray();
            foreach (JObject row in rowData)
            {
                int matchid = int.Parse(row["match_0"].ToString());
                if (bll.Exists(matchid))
                {
                    BetExp model = new BetExp();
                    model.id        = matchid;
                    model.isexp     = true;
                    model.exp       = Request.Form["content"];
                    model.hometeam  = (((Newtonsoft.Json.Linq.JValue)(row["match_4"]))).Value.ToString();
                    model.awayteam  = (((Newtonsoft.Json.Linq.JValue)(row["match_7"]))).Value.ToString();
                    model.homescore = (int)row["match_13"];
                    model.awayscore = (int)row["match_14"];
                    int score = model.homescore - model.awayscore;
                    model.asia = float.Parse((((Newtonsoft.Json.Linq.JValue)(row["match_25"]))).Value.ToString());
                    if (score > 0)
                    {
                        model.victory = 3;
                    }
                    else if (score == 0)
                    {
                        model.victory = 1;
                    }
                    else
                    {
                        model.victory = 0;
                    }
                    if (score > model.asia)
                    {
                        model.win = 3;
                    }
                    else if (score == model.asia)
                    {
                        model.win = 1;
                    }
                    else
                    {
                        model.win = 0;
                    }
                    bll.Update(model);
                }
                else
                {
                    JObject o = new JObject();
                    o.Add("error", row["match_4"].ToString() + "-" + row["match_7"].ToString());
                    errorResults.Add(o);
                }
            }
            result.Add("success", true);
            result.Add("errorData", errorResults);
        }
        catch (Exception e)
        {
            result.Add("success", false);
            result.Add("error", e.ToString());
        }
        JsonStr = result.ToString();
    }