自己做量化交易软件(3)通通量化分析框架构成1

自己做量化交易软件(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=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) 

猜你喜欢

转载自blog.csdn.net/hepu8/article/details/82718220