通通股票量化分析框架采用模块化设计,每个模块存放在不同的py文件中。
通通股票量化分析框架下载:
https://download.csdn.net/download/hepu8/10668509
运行python环境,可以在我的网盘下载绿色python软件,不用安装设置,解包就能运行,已经安装了常用软件包。用户根据自
己需要选择所需版本,hpython36是python3.6版本,hpython27是python2.7。
hpyton27下载网盘: https://pan.baidu.com/s/14TAGHiJzommKKIA9n2iGiw
hpyton36下载网盘: https://pan.baidu.com/s/112_IwCJg49c2P4TU3PFomw
用户不需要我们提供的绿色版本,也可参考下面我写的文章,重新构建自己的python环境。
自己做量化交易软件(1) 免费量化分析环境安装使用
https://blog.csdn.net/hepu8/article/details/81866694
下面介绍这些文件功能。
一、系统全局变量文件 HP_global.py
文件里面定义了全局变量。基本上每个模块都要引用。
#运行系统环境设置
#G_os=1 windows,=2 linux, =3 mac oS
global G_os #操作系统
global G_pyver #Python版本
global G_tk #tkinter命令
global G_tk1 #tkinter命令
global G_tk2 #tkinter命令
global G_py2 #python2命令
global G_py3 #python3命令
#软件环境设置
global G_name #软件名称
global G_title #软件标题
global G_winW #默认主窗口宽度
global G_winH #默认主窗口高度
global G_ver #软件版本号
global G_user #用户名
global G_ico #软件图标
global G_login #用户登录标记
global G_root #窗口根句柄
global G_canvas #绘图canvas
global G_figure #绘图figure
global G_plot #绘图plot
global tk #tk
global ttk #ttk
###########################################
#软件参数
global G_gtype #画面模式,暂用于显示指标图形个数
global G_stock #当前股票代码
global G_index #当前用户指标
global G_df #当前股票代码数据
global G_sday #分析开始日期
global G_eday #分析结束日期
global G_MA1 #价格平均线周期
global G_MA2 #价格平均线周期
global G_MA3 #价格平均线周期
global G_MA4 #价格平均线周期
global G_MA5 #价格平均线周期
global G_MA6 #价格平均线周期
global G_MAV1 #成交量平均线周期
global G_MAV2 #成交量平均线周期
二、系统参数设置及初始化文件 HP_set.py
系统软件名称,用户,以及参数设置。基本上每个模块都要引用。
程序主要代码如下:
import platform
from HP_global import *
import pandas as pd
#软件名称
G_root=None
G_name='聚宽证券分析研究平台'
G_title='聚宽证券分析研究平台'
G_ico='.\jk.ico'
G_winW=1280
G_winH=850
G_ver=1.00
G_user='18578755056'
G_login=False
G_tk='import tkinter as tk'
G_tk1='from tkinter import *'
G_tk2='from tkinter import ttk'
G_os=1
G_pyver=int(platform.python_version()[0:1])
###########################################
#软件参数
G_gtype=3
G_stock='000001.XSHE'
G_df=None
G_sday='2018-01-01'
G_eday='2018-09-08'
G_index='KDJ'
G_MA1=5
G_MA2=10
G_MA3=20
G_MA4=60
G_MA5=120
G_MA6=240
G_MAV1=5
G_MAV2=10
########################################
#操作系统类型
def UseOS( ):
sysstr = platform.system()
if(sysstr =="Windows" or sysstr =="windows"):
return 1
elif(sysstr == "Linux"):
return 2
else:
return 3
def HP_init():
#软件名称
G_name='聚宽证券分析研究平台'
G_title='聚宽证券分析研究平台'
G_ver=1.00
G_login=False
G_tk='import tkinter as tk'
G_tk1='from tkinter import *'
G_tk2='from tkinter import ttk'
G_pyver=int(platform.python_version()[0:1])
G_os=UseOS( )
if G_pyver==3:
G_tk='import tkinter as tk'
G_tk1='from tkinter import *'
G_tk2='from tkinter import ttk'
else:
G_tk='import Tkinter as tk'
G_tk1='from Tkinter import *'
G_tk2='from Tkinter import ttk'
三、通通软件登录窗口文件 HP_Login.py
软件登录窗口,我们设计了聚宽用户的登录演示。如果软件登录成功,就进入主窗口。
聚宽数据包安装见我的第一篇文章。
from jqdatasdk import * #聚宽数据包
x=auth(name,secret) #用户登录,name是用户名,secret是用户密码
下面是完整文件代码:
from jqdatasdk import * #聚宽数据包
from PIL import Image, ImageTk
from HP_global import *
from HP_set import *
from HP_MainPage import *
class LoginPage(object):
def __init__(self, master=None):
HP_init()
exec(G_tk)
exec(G_tk1)
self.w = 300
self.h = 180
self.root = master #定义内部变量root
self.staIco = G_ico
self.root.geometry('%dx%d' % (self.w, self.h )) #设置窗口大小
self.username = StringVar()
self.password = StringVar()
self.createPage()
self.loop()
def loop(self):
self.root.resizable(False, False) #禁止修改窗口大小
self.center() #窗口居中
self.root.mainloop()
def _quit(self):
#结束事件主循环,并销毁应用程序窗口
self.root.quit()
self.root.destroy()
def center(self):
ws = self.root.winfo_screenwidth()
hs = self.root.winfo_screenheight()
x = int( (ws/2) - (self.w/2) )
y = int( (hs/2) - (self.h/2) )
self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))
self.root.iconbitmap(self.staIco)
def createPage(self):
self.page = Frame(self.root) #创建Frame
self.page.pack()
Label(self.page).grid(row=0, stick=W)
Label(self.page, text = '聚宽账户: ').grid(row=1, stick=W, pady=10)
Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=E)
self.username.set(G_user)
Label(self.page, text = '聚宽密码: ').grid(row=2, stick=W, pady=10)
Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E)
Button(self.page, text='登陆', command=self.loginCheck).grid(row=3, stick=W, pady=10)
Button(self.page, text='退出', command=self._quit).grid(row=3, column=1, stick=E)
def loginCheck(self):
name = self.username.get()
secret = self.password.get()
try:
x=auth(name,secret)
except:
x="error"
#x='test'
if x!='error' or x=='' :
self.page.destroy()
G_login=True
MainPage(self.root)
else:
showinfo(title='错误', message='账号或密码错误!')
G_login=False
四、通通软件主文件 HP_main.py
通通股票分析软件框架主程序代码如下:
# -*- coding: utf-8 -*-
"""
#功能:通通股票分析软件框架主程序
#版本:Ver1.00
#设计人:独狼荷蒲
#电话:18578755056
#QQ:2775205
#百度:荷蒲指标
#开始设计日期: 2018-07-08
#公众号:独狼股票分析
#使用者请同意最后<版权声明>
#最后修改日期:2018年9月14日
#主程序:HP_main.py
"""
from HP_global import *
from HP_set import *
from HP_Login import *
if __name__ == "__main__":
HP_init()
exec(G_tk)
exec(G_tk1)
exec(G_tk2)
G_root = tk.Tk()
G_root.title(G_title)
LoginPage(G_root)