自己做量化交易软件(3)通通量化分析框架构成1
通通股票量化分析框架采用模块化设计,每个模块存放在不同的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=1G_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 1elif(sysstr == "Linux"):return 2else:return 3def HP_init():#软件名称G_name='聚宽证券分析研究平台'G_title='聚宽证券分析研究平台'G_ver=1.00G_login=FalseG_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 = 300self.h = 180self.root = master #定义内部变量root self.staIco = G_icoself.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=TrueMainPage(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)