小白量化彩票实战(4)彩票特征号码重号、邻号、连号和表格展示
我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程和娱乐的思想来看待。兴趣是学习最大的动力!
彩票的号码特征很多,我们本篇介绍几个简单的号码特征。
重号:出现上一期出现的号码。
邻号:出现上一期号码附近的号码。
连号:连续的号码情况,例如:9-10,23-24等。
这些程序设计比较简单,我们直接给出源代码。
程序中给出了DataFrame数据的文件读取,数据处理等等知识点,编写其他程序也能用上。
#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
# https://item.jd.com/61567375505.html
#独狼荷蒲qq:2775205
#小白量化彩票软件开发群:712300766
#小白量化PythonTkinter软件开发群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析
import math
import datetime as dt
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import HP_plt as hplt #小白量化指标绘图模块
from HP_formula import * #小白量化仿通达信公式函数库
import HP_cp as hcp #小白量化彩票模块
import HP_global as g #小白量化全局变量库
import HP_plt as hplt #小白量化指标绘图模块
import tkinter as tk #导入Tkinter
import tkinter.ttk as ttk #导入Tkinter.ttk
import HP_tk as htk #小白量化tkinter高级模块plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
#白底色
g.ubg='w'
g.ufg='b'
g.utg='b'
g.uvg='#1E90FF'
code="双色球彩票" #品种##获取本地ssq.csv双色球数据
df=pd.read_csv('ssq.csv' , encoding='gbk')
df=df.drop(df.columns[0], axis=1)###重号处理,出现上一期出现的号码
df['重号']='' #重号
df['重号数']=0 #重号数
####邻号,出现上一期号码附近的号码
df['邻号']='' #邻号
df['邻号数']=0 #邻号数
###连号
df['连号']=""
df['连号数']=0for i in range(1,len(df)):h1=[df.loc[i-1, 'h1'],df.loc[i-1, 'h2'],df.loc[i-1, 'h3'],df.loc[i-1, 'h4'],df.loc[i-1, 'h5'],df.loc[i-1, 'h6']]h2=[df.loc[i-1, 'h1']+1,df.loc[i-1, 'h2']+1,df.loc[i-1, 'h3']+1,df.loc[i-1, 'h4']+1,df.loc[i-1, 'h5']+1,df.loc[i-1, 'h6']+1, \df.loc[i-1, 'h1']-1,df.loc[i-1, 'h2']-1,df.loc[i-1, 'h3']-1,df.loc[i-1, 'h4']-1,df.loc[i-1, 'h5']-1,df.loc[i-1, 'h6']-1]##重号判断if df.loc[i,'h1'] in h1:df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h1'] )+' 'df.loc[i, '重号数']=df.loc[i, '重号数']+1if df.loc[i,'h2'] in h1:df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h2'] )+' 'df.loc[i, '重号数']=df.loc[i, '重号数']+1if df.loc[i,'h3'] in h1:df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h3'] )+' 'df.loc[i, '重号数']=df.loc[i, '重号数']+1if df.loc[i,'h4'] in h1:df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h4'] )+' 'df.loc[i, '重号数']=df.loc[i, '重号数']+1if df.loc[i,'h5'] in h1:df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h5'] )+' 'df.loc[i, '重号数']=df.loc[i, '重号数']+1if df.loc[i,'h6'] in h1:df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h6'] )+' 'df.loc[i, '重号数']=df.loc[i, '重号数']+1 ##邻号判断if df.loc[i,'h1'] in h2:df.loc[i,'邻号']= df.loc[i,'邻号']+str(df.loc[i,'h1'] )+' 'df.loc[i, '邻号数']=df.loc[i, '邻号数']+1if df.loc[i,'h2'] in h2:df.loc[i,'邻号']=df.loc[i,'邻号']+str(df.loc[i,'h2'] )+' 'df.loc[i, '邻号数']=df.loc[i, '邻号数']+1if df.loc[i,'h3'] in h2:df.loc[i,'邻号']=df.loc[i,'邻号']+str(df.loc[i,'h3'] )+' 'df.loc[i, '邻号数']=df.loc[i, '邻号数']+1if df.loc[i,'h4'] in h2:df.loc[i,'邻号']= df.loc[i,'邻号']+str(df.loc[i,'h4'] )+' 'df.loc[i, '邻号数']=df.loc[i, '邻号数']+1if df.loc[i,'h5'] in h2:df.loc[i,'邻号']= df.loc[i,'邻号']+str(df.loc[i,'h5'] )+' 'df.loc[i, '邻号数']=df.loc[i, '邻号数']+1if df.loc[i,'h6'] in h2:df.loc[i,'邻号']= df.loc[i,'邻号']+str(df.loc[i,'h6'] )+' 'df.loc[i, '邻号数']=df.loc[i, '邻号数']+1##连号判断if df.loc[i,'h1']==df.loc[i,'h2']-1:df.loc[i,'连号']= df.loc[i,'连号']+str(df.loc[i,'h1'] )+'-'+str(df.loc[i,'h2'])+' 'df.loc[i, '连号数']=df.loc[i, '连号数']+1if df.loc[i,'h2']==df.loc[i,'h3']-1:df.loc[i,'连号']= df.loc[i,'连号']+str(df.loc[i,'h2'] )+'-'+str(df.loc[i,'h3'])+' 'df.loc[i, '连号数']=df.loc[i, '连号数']+1if df.loc[i,'h3']==df.loc[i,'h4']-1:df.loc[i,'连号']= df.loc[i,'连号']+str(df.loc[i,'h3'] )+'-'+str(df.loc[i,'h4'])+' 'df.loc[i, '连号数']=df.loc[i, '连号数']+1if df.loc[i,'h4']==df.loc[i,'h5']-1:df.loc[i,'连号']= df.loc[i,'连号']+str(df.loc[i,'h4'] )+'-'+str(df.loc[i,'h5'])+' 'df.loc[i, '连号数']=df.loc[i, '连号数']+1if df.loc[i,'h5']==df.loc[i,'h6']-1:df.loc[i,'连号']= df.loc[i,'连号']+str(df.loc[i,'h5'] )+'-'+str(df.loc[i,'h6'])+' 'df.loc[i, '连号数']=df.loc[i, '连号数']+1 df.to_csv('ssq_lh.csv' , encoding= 'gbk')df2=df.reset_index(level=None, drop=True ,col_level=0, col_fill='') #重新索引##更换表名为重中文
df2.rename(columns={'date':'日期','qh':'期号','hh':'红号','lh':'蓝号','tz':'投注资金'},inplace=True)
df2.rename(columns={'j1':'头等奖','j2':'二等奖','h1':'红一','h2':'红二','h3':'红三'},inplace=True)
df2.rename(columns={'h4':'红四','h5':'红五','h6':'红六'},inplace=True)
##删除列
df2=df2.drop(['投注资金','头等奖','二等奖','sumh'],axis=1)#建立主窗口
root=htk.MainWindow(title="DataFrame数据浏览",x=100,y=200,w=1200, h=700)
root.SetCenter() #移动到屏幕中央
tb = htk.Table(root) #创建表格控件
tb.load_df(df2) #加载数据表
tb.brush() #交替颜色显示
tb.pack(expand = 1, fill = tk.BOTH) #显示控件
root.mainloop() #启动Tkinter消息主循环
程序运行结果如下,出现一个窗口。
我们客户看出,每期奖号与上期奖号的有些关系,例如从上期奖号找重号或相邻号来找号码,可以选自己的心仪号码的连号等进行组号。
彩票的分析技术有很多,下面看看作者曾定做的彩票软件。
彩票的分析技术还很多,例如尾数合,偏度,散度,最大相邻数,最小相邻数,同尾数(个位数相同,例如1,11,21,31等),我相信读者不难根据这几篇博文介绍的知识来实现这些功能。
我们发现了出号的关系或规律,需要如何组号呢? 这个可以通过全组和的过滤来实现。
例如我们发现红号三段比,1-11,12-22,23-33为 6:0:0,是不是红号可选只有1-11号。
我们又发现质合比为4:2,在1-11号中能选的质数只有1,2,3,5,7,11.
发现单双比为5:1,和数37等等。
我们先对1-11个号码生成所以组合,然后根据上面的条件进行过滤,最后生成的几注就会包含2021020期大奖红号 : 01 03 06 07 09 11。
在分析彩票过程中,除了选号外,还有杀号操作,既根据历史统计排除不可能出现在一起的组合号码。或者上期奖号出现某些号码组合,下期不会出现某个号码等等。
很多彩民有自己的见解,所以我在彩票软件中增加了彩票公式系统,用上一期或若干期号码进行算号或杀号。l例如下图是彩民杀号公式。
写成彩票软件计算公式如下:
杀1=REF(红6,1)-REF(红1,1)
杀4=REF(红1,1)*4-2
杀5=(REF(红1,1)+REF(蓝1,1))*3
杀6=REF(红1,1)+9
是不是跟股票指标公式有点像。其他语言要自己开发一套公式解析系统,我们既然用了Python的小白量化,直接使用仿通达信公式来做彩票分析公式了。
上图是我定做的彩票软件公式创作台。
后面文章介绍彩票号码组合生成程序(包含数据库快速生成号码的SQL命令)和号码过滤以及号码缩水程序(即中六保五,中五保四等等程序)。
购买《零基础搭建量化投资系统――以Python为工具》(https://item.jd.com/61567375505.html)一书,就能得到小白量化第二代全部源代码。其中包括完整的HP_cp模块。
#独狼荷蒲qq:2775205 /2886002
#小白量化彩票软件开发群:712300766
#小白量化PythonTkinter软件开发群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析
请点赞本文,你的鼓励是我写作的动力!
请持续关注我的博客,我的进步,就是你的进步!