【原创】C#玩高频数字彩快3的一点体会 – 数据之巅 – 博客园

来源: 【原创】C#玩高频数字彩快3的一点体会 – 数据之巅 – 博客园

  购彩风险非常高,本人纯属很久以前对数字高频彩的一点研究。目前已经远离数字彩,重点研究足球篮球比赛资料库和赛果预测。

  这是一篇在草稿箱保存了1年多的文章,一直没发现,顺便修改修改分享给大家。以后会有更多关于足球和篮球体育彩票的玩法分析,希望大家关注。

本人不算专业程序员,但经常敲代码玩玩。上学时研究的是伪随机数这个东东,因此对彩票就情有独钟,从10年开始,就开始研究双色球,其中软件版本改了又改,但一直没有实际操作过,原因就是双色球的投注量太大。所以这1年多就没研究了。最近一次偶然的机会,发现了“高频彩-快3”,仔细研究了一番,发现这个比双色球有意思多了,1是每天82期,快,不用等开奖;2是号码总共就56注。想想应该比较容易。加上玩法多样,现在也比较收欢迎,所以从10月份开始,就开始重操旧业,用我对数字的理解以及会敲代码这个特长,结合起来,研究研究(很多老彩民,经验丰富,但不会写代码,不会搞Excel,所以后来被动)各位看官先莫乱说,且把文章看完,顺便我也写下对快3的理解。

彩票数据框架与分析预测总目录

【彩票】彩票预测算法(一):离散型马尔可夫链模型C#实现

【彩票】彩票预测算法(二):朴素贝叶斯分类器在足球胜平负预测中的应用及C#实现 

注意:我玩的是江苏快3,俗称老快3。顺便说一下快3的玩发:发一个链接吧,有兴趣去看。http://cp.360.cn/k3js/

先说一下,彩票的性质其实就是合法的赌博,虽然中国的彩票一直不透明,对快3来说,机器开奖,就更不用说了。

1.我认为快3人为操作的可能性很大,但不是每期都操作,操作的期数在少数;正因为如此,所以现在高频彩的私彩相当多,而且返奖率比官方高出一大坨。。

2.快3的返奖率不算高,但是快,所以刺激,同时也俗称吸金器,千万不要上瘾。

切记:玩彩风险非常大,一天输几万的很多,所以看过此文,请谨慎对待彩票。

1.建立基本框架

说平台太大了点,对我来说,其实就是一个分析软件。因为以前又开发双色球分析软件的经验,所以这次就省事了不少,特别是在数据库方面,很快就搞定了。先建立基本的数据库,快3的数据很简单,就是1个日期,期号,再就是号码。当然为了提高计算速度,避免每次重复的分析计算,我在数据库设计的时候,就把一些常规指标进行了统计,直接存到数据库,比如和值,跨度,奇数,偶数等等。

基本的思路就是:

1.实时采集数据。

2.先对基础数据进行统计,编写各种统计算法(其实都是很简单,就3个号码,怎么算,对程序员来说都不复杂,即使统计加加减减等)。

3.在初步统计的基础上,然后编写一些验证预测算法,测试准确性,如果可行,就做成界面(结果自己的不断努力和测试,现在已经取消验证环节了,直接把有价值的统计数据,放在表格中,人工观察,实时进行人为判断,如果机器能自动,那是不可能的,这样彩票中心可以下岗了)。

4.完善软件界面,不断根据自己的经验,增加统计数据。

2.数据库建立和数据采集

本人一直使用XCode组件来进行数据库的操作,具体组件使用,看我博客把。数据库的建立很简单,看代码中的实体模型好了。可能有些冗余,只是没时间完善而已。主要看看数据采集部分吧。我用的是HtmlAgilityPack组件,这个东西很多人都玩过,不详细解释了,HtmlAgilityPack+XPath,可以很轻松的解决固定页面的数据提取。直接上代码:

顺便提一下,考虑到网站的不稳定性,有时候会连不上,所以我每一种快3都有2种采集方案,就是有2个采集来源。 根据当前的数据库连接名称来采集。

复制代码
#region 抓取数据-52CP
private static void GetDataFormWeb_52CP(int perDay, Boolean isUpdateAll)
{
    string url;           
    if (perDay == 0) //今天
    {
        if (JS_K3_DayStatics.Meta.ConnName == "LotTickDayJL") url = @"http://www.52cp.cn/bull/index.php/Index/list_jlks";
        else url = @"http://www.52cp.cn/bull/index.php/Index/list_jsks";
    }
    else
    {
        if (JS_K3_DayStatics.Meta.ConnName == "LotTickDayJL")
        {
            url = @"http://www.52cp.cn/bull/index.php/Index/list_jlks/time/-" + perDay.ToString();
        }
        else
        {
            url = @"http://www.52cp.cn/bull/index.php/Index/list_jsks/time/-" + perDay.ToString();
        }
        //前几天        
    }
    HtmlWeb web = new HtmlWeb();
    HtmlDocument doc = web.Load(url);
    HtmlNodeCollection hc = doc.DocumentNode.SelectNodes(@"/html[1]/body[1]/div[3]/div[4]/div[4]/table[1]")[0].SelectNodes(@"tr");
    for (int j = hc.Count - 1; j > 0; j--)
    {
        HtmlNodeCollection hc1 = hc[j].SelectNodes(@"td");

        string noStr = hc1[0].InnerText.Trim();
        //如果此期号不存在,就加入
        int count = FindCount(_.No, noStr);
        if (count < 1 && Convert.ToInt32(noStr.Substring(0, 2)) > 11)//只采集12年1月1日之后的数据
        {
            string[] numbers = hc1[2].InnerText.Trim().Split(',');
            int a = Convert.ToInt32(numbers[0]);
            int b = Convert.ToInt32(numbers[1]);
            int c = Convert.ToInt32(numbers[2]);
            JS_K3Base model = new JS_K3Base(new int[] { a, b, c });
            model.No = noStr;
            model.Day = new DateTime(Convert.ToInt32("20" + model.No.Substring(0, 2)), Convert.ToInt32(model.No.Substring(2, 2)),
                Convert.ToInt32(model.No.Substring(4, 2)));
            model.Save();
            if (isUpdateAll)
            {
                //更新信息表 JS_K3
                if (JS_K3.Find(JS_K3._.No, model.No) == null) new JS_K3(model).Save();
            }
        }
        else
        {
            if (JS_K3.FindCount(_.No, noStr) < 1) new JS_K3(Find(_.No, noStr)).Save();
        }
    }
}
#endregion
复制代码

3.核心的统计扩展方法

因为计算就是对位置,频率这些东西进行计算,基本都很简单,所以都以扩展方法的形式存在。大家具体可以看代码。里面非常乱,没时间整理,举个例子吧:

复制代码
#region 邻号出现的情况
/// <summary>连续2期号码相同个数,剔除后 邻号出现个数
/// 返回数组第1个为 相同号码列表
/// 返回数组第2个为 邻号相同的列表
/// </summary>
public static int[][] K3_SameAndCloseCount(this JS_K3[] data)
{
    int[] SameCount = new int[data.Length - 1];
    int[] CloseCount = new int[data.Length - 1];

    for (int i = 0; i < data.Length -1; i++)
    {
        List<int> a1 = new List<int>() { data[i].Number_1, data[i].Number_2, data[i].Number_3 };
        List<int> a2 = new List<int>() { data[i + 1].Number_1, data[i + 1].Number_2, data[i + 1].Number_3 } ;
        //相同号码及移除
        List<int> a3 = new List<int>() { data[i + 1].Number_1, data[i + 1].Number_2, data[i + 1].Number_3 };
        foreach (var item in a3)
        {   //都包含才能移除
            if (a1.Contains<int>(item) && a2.Contains<int>(item))
            {
                a1.Remove(item);
                a2.Remove(item);
                SameCount[i] ++;
            }
        }
        //移除后号码的邻号统计,对于位置相减
        for (int j = 0; j < a1.Count ; j++)
        {
            int temp = Math.Abs(a1[j] - a2[j]);
            if (temp == 1) CloseCount[i] ++;
        }
    }
    return new int[][] { SameCount, CloseCount };
}
复制代码

同时对一些高频数据,重复数据的分析也很重要,下面是一些扩展方法:

复制代码
/// <summary>2不同重复出现的次数</summary>
public static int[] K3_Diff2_RepeatCount(this JS_K3[] data)
{
    Dictionary<string, int> result = new Dictionary<string, int>();
    int[] count = new int[2];
    foreach (var item in data)
    {
        if (item.IsDiff2)
        {
            if (result.ContainsKey(item.NoString))
            {
                result[item.NoString]++;
                count[0]++;
            }
            else result.Add(item.NoString, 1);
        }
    }
    foreach (var item in result) if (item.Value > 1) count[1]++;
    return count;
}

/// <summary>3同号重复的次数</summary>
public static int K3_Same3_RepeatCount(this JS_K3[] data)
{
    Dictionary<string, int> result = new Dictionary<string, int>();
    int count = 0;
    foreach (var item in data)
    {
        if (item.IsSame3)
        {
            if (result.ContainsKey(item.NoString)) count++;
            else result.Add(item.NoString, 1);
        }
    }
    return count;
}
复制代码

其实上面这些统计方法都比较简单,就是一些数据的统计。由于版本很老,当然还有很多其他的,由于经验不足,封装得不好,暂时就不全部发出来了。其他代码和文章还在计划中。至于统计和分析的界面,太久了,我也懒得去找程序。谢谢大家理解,一个小软件也是面面俱到,非常复杂的。

4.总结

本人2013年10月下旬开始玩江苏快3,因为自己会写程序,所有就做软件研究了下,当然经验不足,有时候运气比较好,也赢过。但每天的盘不一样,很容易就陷进去了。然后看了很多帖子,发现容易亏得很大,所以输了几百块,赶紧收手不玩了,这个心态一定要控制好。也看了很多论坛的帖子,发现很多人都很容易亏大,结合自己的经验,我发现的确是很容易掉进去,别说几万,如果没有策略,不加分析,几十万都很容易输掉。快3类型很多,说一点体会

1.江苏快3更刺激,总体平均还是不错,局部热号更明显;相反吉林快3的号更平稳和平均。
2.玩快3不能指望一夜暴富,如果收益能有10-20%,赶紧收手。不要手痒,我有好多次前面都有20-50%的盈利,但还不死心,结果很快就陷进去了。玩彩票心态很重要,一定要忍住,我也在控制自己的心态。
3.不要往死里追,除非你有大量的实际数据做论证,我会写软件,所以这方面经验比较多,当然软件分析也是多个角度,偶尔也会失误。因为一旦你陷进去,只需要5-10期,就可以让你彻底崩溃,快3的刺激就在于速度快,毕竟有56个号,你想在5-10期抓住,还是有难度的,但也有可能。我也有1-2期就追到号的情况。
4.快3一定要有玩法,如果你只是简单的看和值,追2同号,或者豹子,那么基本会输的很快,要有自己的策略和计划。

总的来说,高频彩返奖率50%,已经是世界最低了,真的没有玩的理由。从概率与回报率来说,闭着眼睛玩足球回报率也比这好(国彩足球返奖率高的时候有70-80%)。希望看到此文的人早点收手。另外群也不再公布了,有人说我拉人赌博,好好看文章把,本来是想给大家一个交流的机会的,我都用了这么大的粗体字,有些人跟疯狗一样,乱咬,真实没话说。


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

.NET数据挖掘与机器学习,作者博客: http://www.cnblogs.com/asxinyu

E-mail:1287263703@qq.com

分享到: 更多 (0)