小白量化彩票实战(2)奖号特征值与编码器应用

106 篇文章 119 订阅
104 篇文章 107 订阅

小白量化彩票实战(2)奖号特征值与编码器应用
我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程娱乐的思想来看待。
索普玩的21点,只有1,2副牌,牌发完再重新洗牌,所以通过记牌,计牌估算概率,当形势有利时才下赌注 !赌场通过监控,发现索普经常赢钱,所以把索普设置为赌场黑名单,不允许他进赌场。索普写了本关于21点的书–《战胜庄家》。谁都想发财,这本书销量很大,索普没有靠赌博发财,靠卖书大赚一笔。很快出现无限个“索普”,赌场的黑名单越来越长。终究设置黑名单不是办法,于是赌场把扑克牌由2副改为8副,不用发牌结束就重新洗牌。所以索普那套记牌方法已经没用了。因此,索普的江湖不是你的江湖,挖矿不如卖铲子赚钱。
所以说世界上没有卖摇钱树的,不要问我的彩票软件能不能赚钱。你用的股票软件和量化软件能赚钱吗?
我是码农,靠敲代码赚钱。我定做软件,以及定做彩票软件,开发股票公式指标,软件分析思路是你提供的,我只是用程序实现了你的分析思路而已。
说说我的经历,在2013年我感觉收入不够付出。看到卖彩票店,想买彩票发财。我想到能不能用程序来算号,可是我根本不会在Windows下开发软件,于是我选择容易学习的Foxpro的windows软件Visual FoxPro 9.0(简称VFP9)来学习编成开发。兴趣是学习最大的动力! 从零开始学习,花费了不到1年时间学会了Visual FoxPro 9.0开发程序。最后自己买彩票书(买了别人的铲子),琢磨了彩票分析程序,花了几千元去买彩票,也没中大奖。
我设计的双色球彩票助理软件
(我设计的双色球彩票助理软件)

于是我2014-2017年帮彩民定做彩票软件,赚了几万元,看来卖铲子能赚钱 !
下面是我为彩民定做的彩票软件,通过定制彩票软件,我学会了很多彩民的分析思路。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据彩民的思路,我编写的菜软开发教程电子书。也在淘宝上卖200元,教大家做如何做铲子。
在这里插入图片描述
原先这些软件是我用VFP9开发的,现在转化为Python程序,进一步用股票量化分析和深度学习来尝试研究彩票。
下来进入正题,继续讲Python彩票软开发。
一、极值概念与应用机制
极值:故名思意,就是极大值或极小值,最大值或最小值的意思。
通常利用极值来排除或选择号码。例如上篇文章的例子,双色球蓝11号,已经连出3期,统计历史蓝号最大连出也是3,3就是蓝号最大连出的极值。因此我们可以用排除法,在投注时排除蓝11号。在分析双色球红号区时,某个红号历史上最大不出极值(不出现在中奖号码中,或空期)等于现在空期,在组合号时可以优先选择该红号。
极值概念可以应用到各种分析中,包括大小号比利等等。

二、编码器
计算机中只能计算数字,文字信息不能够处理,例如单双比“4:2”,大小比“3:3”等等。我们要把这些数据转化为对应的数字,这就需要统一的编码。
双色球只有6个号,奇偶比只有下面6个组合:0:6,1:5,2:4,3:3,4:2,5:1,6:0,在计算机中是文本信息,我们用固定的规则转化为对应的数字0到6。
HP_cp模块提供了3个编码器,编码器返回的是字典值。
例如编码器函数bmq2返回下面信息。
{‘0:6’: 0, ‘1:5’: 1, ‘2:4’: 2, ‘3:3’: 3, ‘4:2’: 4, ‘5:1’: 5, ‘6:0’: 6}
如果大小比为:‘4:2’对应的数字是4。

import HP_cp as hcp   #小白量化彩票模块
b2=hcp.bmq2(m=6)
print(b2)
print('4:2对应数字是:',b2['4:2'])
b3=hcp.bmq3(m=6)
print(b3)
print('4:1:1对应数字是:',b3['4:1:1'])
b4=hcp.bmq4(m=6)
print('1:3:1:1对应数字是:',b4['1:3:1:1'])

运行结果:

{'0:6': 0, '1:5': 1, '2:4': 2, '3:3': 3, '4:2': 4, '5:1': 5, '6:0': 6}
4:2对应数字式: 4
{'0:0:6': 0, '0:1:5': 1, '0:2:4': 2, '0:3:3': 3, '0:4:2': 4, '0:5:1': 5, '0:6:0': 6, '1:0:5': 7, '1:1:4': 8, '1:2:3': 9, '1:3:2': 10, '1:4:1': 11, '1:5:0': 12, '2:0:4': 13, '2:1:3': 14, '2:2:2': 15, '2:3:1': 16, '2:4:0': 17, '3:0:3': 18, '3:1:2': 19, '3:2:1': 20, '3:3:0': 21, '4:0:2': 22, '4:1:1': 23, '4:2:0': 24, '5:0:1': 25, '5:1:0': 26, '6:0:0': 27}
4:1:1对应数字是: 23
1:3:1:1对应数字是: 44

其他类似的问题都可以用类似的方法来解决。例如前面博客介绍,你告诉计算机涨跌,他不懂,你把上涨记为1,不上涨记0,电脑就会处理数据了。
再比如K线图形形态识别,电脑不懂什么是上涨、下跌、盘整,你把这些文字转为对应的1,2,0数字,电脑就可以运算了。

三、彩票的特征
特征可以理解为区分不同号码的分析指标。特征在股票中,可以理解为股票指标。
我们以双色球来介绍彩票的特征值。
蓝号的特征有大小号,质数合数号,单双号(余二,除2的余数0,1),余三(除三的余数0,1,2),余四(除4的余数0,1,2,3),以及统计历史获得冷号,热号,温号等等。

lh=9
if lh%2==0:
    print('数字',lh,"是偶数")
else:
    print('数字',lh,"是奇数")

if hcp.zhishu(lh)==0:
    print('数字',lh,"是质数")
else:
    print('数字',lh,"是合数")

执行结果:

数字 9 是奇数
数字 9 是合数

红号的特征值:
和数:所有红号数的和。

df['sumh']=df['h1']+df['h2']+df['h3']+df['h4']+df['h5']+df['h6']

全和:包含所有红号数和蓝号数的和。

df['suma']=df['h1']+df['h2']+df['h3']+df['h4']+df['h5']+df['h6'] +df['lh']

红号跨度:最大红号与最小红号的差。

df['kd']=df['h6']-df['h1']

奇偶比:奇数:偶数。
大小比:大数:小数。
质合比:质数:合数。
AC值:AC值表示的是号码的复杂程度。所以双色球AC值也称作“双色球数字复杂指数”。AC值越小,说明号越傻。

hm1='06 10 13 25 26 32'
hm2=hcp.str2num(hm1)  #转化为数字列表
print(hm2)
print(hm1,'奇偶比:',hcp.qab(hm2))
l1,l2=hcp.qab2(hm2)
print(hm1,'奇数个数:',l1,'偶数个数:',l2)
print(hm1,'大小比:',hcp.dxb(hm2))
l3,l4=hcp.dxb2(hm2)
print(hm1,'大数个数:',l3,'小数个数:',l4)
print(hm1,'质合比:',hcp.zhb(hm2))
l5,l6=hcp.zhb2(hm2)
print(hm1,'质数个数:',l5,'合数个数:',l6)

print(hm1,'AC值:',hcp.ac(hm2))
print([1,2,3,4,5,6],' AC值:',hcp.ac([1,2,3,4,5,6]))
print([2,4,6,8,10,12],' AC值:',hcp.ac([2,4,6,8,10,12]))

程序运行结果如下:

[6, 10, 13, 25, 26, 32]
06 10 13 25 26 32 奇偶比: 4:2
06 10 13 25 26 32 奇数个数: 4 偶数个数: 2
06 10 13 25 26 32 大小比: 3:3
06 10 13 25 26 32 大数个数: 3 小数个数: 3
06 10 13 25 26 32 质合比: 2:4
06 10 13 25 26 32 质数个数: 2 合数个数: 4
06 10 13 25 26 32 AC值: 8
[1, 2, 3, 4, 5, 6]  AC值: 0
[2, 4, 6, 8, 10, 12]  AC值: 0

类似的彩票特征值很多,还有很多彩民发现了更多的特征值来分析彩票。因此我在彩票软件中开发过彩票分析指标系统,彩友可以自编彩票分析公式,提取自编特征因子。在Python中就不用了,我们把彩票数据,转化为股票数据格式,就可以使用股票自编公式系统,来做彩票特征因子数据。

四、彩票号码转化为股票数据
把彩票号码转化为股票数据,就可以用股票分析的工具进行分析彩票了。
双色球开奖有顺序,下面是双色球开奖红球顺序
在这里插入图片描述

我们以2021018数据为例,开奖数据如下:
2021018 2021-02-23 32 25 02 08 14 23
open=32
close=23
high=32
low=2
这样的数据想不像股票K线数据?是不是可以用股票的各种分析指标来分析彩票了。
不过我们无法获取所有开奖顺序,就用如下方式来做。
2021018开奖输入如下:
2021018 02 08 14 23 25 32
open=02
low=02
close=32
high=32
这样也可以当股票数据来处理,也有些彩友用其他方法计算出来这几个值。后面就可以使用很多股票分析指标以及深度学习来处理过票数据了。
下面集中给出程序演示。

#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
# 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   #小白量化指标绘图模块

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['open']=df['h1']
df['low']=df['h1']
df['open']=df['h6']
df['high']=df['h6']

# 和数
df['sumh']=df['h1']+df['h2']+df['h3']+df['h4']+df['h5']+df['h6']  
# 和数的5期平均线
df['ma5']=MA(df['sumh'],5)
# 和数的20期平均线
df['ma20']=MA(df['sumh'],20)

# 全和数
df['suma']=df['h1']+df['h2']+df['h3']+df['h4']+df['h5']+df['h6'] +df['lh']

#跨度 
df['kd']=df['h6']-df['h1']

#计算奖号AC值
df['ac']=[hcp.ac(hcp.str2num(x)) for x in df.hh.astype(str)]
df['maac']=MA(df['ac'],5)  #AC值的平均线

#2段编码器
bm2=hcp.bmq2()

#计算奖号红号奇偶比,单双比
df['dsb']=[hcp.qab(hcp.str2num(x)) for x in df.hh.astype(str)]
df['dsb2']=[bm2[x] for x in df.dsb.astype(str)]   #文本转为数字

#计算蓝号单双号,奇偶号
df['lhds']=[x%2 for x in df.lh.astype(int)]   #文本转为数字

#小白量化数据格式化
df['open']=df['h1']
df['low']=df['h1']
df['high']=df['h6']
df['close']=df['h6']
mydf=df.copy()
CLOSE=mydf['close']
LOW=mydf['low']
HIGH=mydf['high']
OPEN=mydf['open']

#RSI指标
def RSI(N1=5):
    LC = REF(CLOSE, 1)
    RSI1 = SMA(MAX(CLOSE - LC, 0), N1, 1) / SMA(ABS(CLOSE - LC), N1, 1) * 100.00
    return RSI1
#计算RSI指标值
mydf['rsi']=RSI(6)
mydf['rsi2']=RSI(12)

print(mydf)

#数据裁减
m=1
mydf=mydf.tail(100*m).head(100).copy()

#绘制图形
plt.figure(1,figsize=(16,12), dpi=80)

#绘制主图指标
ax1=plt.subplot(311)
mydf['h1'].plot.line(legend=True,linewidth=1)
mydf['h2'].plot.line(legend=True,linewidth=1)
mydf['h3'].plot.line(legend=True,linewidth=1)
mydf['h4'].plot.line(legend=True,linewidth=1)
mydf['h5'].plot.line(legend=True,linewidth=1)
mydf['h6'].plot.line(legend=True,linewidth=1)

#绘制副图指标2
ax2=plt.subplot(312)
mydf['ac'].plot.line(legend=True,linewidth=1)
mydf['maac'].plot.line(legend=True,linewidth=1)

#绘制副图指标3
ax3=plt.subplot(313)
mydf['rsi'].plot.line(legend=True,linewidth=1)
mydf['rsi2'].plot.line(legend=True,linewidth=1)
plt.show()

程序运行结果如下:
在这里插入图片描述

本篇文章先写到这里。
后面文章将介绍彩票特征分析,统计,仿通达信指标分析,深度学习以及过滤和缩水等技术。
购买《零基础搭建量化投资系统――以Python为工具》(https://item.jd.com/61567375505.html)一书,就能得到小白量化第二代全部源代码。其中包括完整的HP_cp模块。

请点赞本文,你的鼓励是我写作的动力!
请持续关注我的博客,我的进步,就是你的进步!

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷蒲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值