小白量化彩票实战彩票特征号码重号邻号连号和表格展示
Posted 荷蒲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白量化彩票实战彩票特征号码重号邻号连号和表格展示相关的知识,希望对你有一定的参考价值。
小白量化彩票实战(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['连号数']=0
for 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, '重号数']+1
if df.loc[i,'h2'] in h1:
df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h2'] )+' '
df.loc[i, '重号数']=df.loc[i, '重号数']+1
if df.loc[i,'h3'] in h1:
df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h3'] )+' '
df.loc[i, '重号数']=df.loc[i, '重号数']+1
if df.loc[i,'h4'] in h1:
df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h4'] )+' '
df.loc[i, '重号数']=df.loc[i, '重号数']+1
if df.loc[i,'h5'] in h1:
df.loc[i,'重号']= df.loc[i,'重号']+str(df.loc[i,'h5'] )+' '
df.loc[i, '重号数']=df.loc[i, '重号数']+1
if 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, '邻号数']+1
if df.loc[i,'h2'] in h2:
df.loc[i,'邻号']=df.loc[i,'邻号']+str(df.loc[i,'h2'] )+' '
df.loc[i, '邻号数']=df.loc[i, '邻号数']+1
if df.loc[i,'h3'] in h2:
df.loc[i,'邻号']=df.loc[i,'邻号']+str(df.loc[i,'h3'] )+' '
df.loc[i, '邻号数']=df.loc[i, '邻号数']+1
if df.loc[i,'h4'] in h2:
df.loc[i,'邻号']= df.loc[i,'邻号']+str(df.loc[i,'h4'] )+' '
df.loc[i, '邻号数']=df.loc[i, '邻号数']+1
if df.loc[i,'h5'] in h2:
df.loc[i,'邻号']= df.loc[i,'邻号']+str(df.loc[i,'h5'] )+' '
df.loc[i, '邻号数']=df.loc[i, '邻号数']+1
if 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, '连号数']+1
if 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, '连号数']+1
if 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, '连号数']+1
if 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, '连号数']+1
if 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
#微信公众号:独狼股票分析
请点赞本文,你的鼓励是我写作的动力!
请持续关注我的博客,我的进步,就是你的进步!
以上是关于小白量化彩票实战彩票特征号码重号邻号连号和表格展示的主要内容,如果未能解决你的问题,请参考以下文章