程序的目录构造
统统量化有3个目录,都须要放在根目录中,例如:D盘跟目录.
d:\py36 py36的运行和开发零碎
d:\ttdata 各种tt数据
d:\tt tt模块和主运行程序.
其中tt目录零碎I34-开发I633-源码53I9中寄存用户回测程序和画面定义程序
d:\tt\view 用户自定义窗口和画面模板
d:\tt\user 用户各种程序,蕴含回测程序
spyder软件开发命令,统统量化AI框架主程序tt_main.py
d:\py36\py36.bat #python代码开发调试编辑环境。发送到桌面快捷。
程序可能独立运行后,可独立运行.把tt.exe发送到桌面快捷。
d:\tt\tt.exe
第一次应用,要运行一次py36,如果运行胜利.就能够运行tt.exe程序了
程序的性能构造
首先,程序设计分为面对过程和面对对象。
面对过程考究自顶向下,逐步求精的设计思维。因而程序设计过程非常简单,统统量化软件设计初期采纳了这个设计思维。因而很多性能、模块、函数都是独立存在于不同py文件中。对于这些模块函数的援用,设计初期不懂import的齐全作用。应用了这样的用法from HP_global import * ,起初发现这样会呈现同名函数的凌乱。又改为这样应用import HP_global as g,最初明确了import命令的实在用法。对于统统量化软件框架中,两种模式都存在,因为从新批改写代码须要工夫,我前面会逐渐进行标准对立。
对于这个文件HP_formula.py的应用,大家必须这样写:from HP_formula import *
-- coding: utf-8 --
用户自定义显示2个K线图的模板
用户新窗口2.py
import tkinter as tk
import HP_global as g
import HP_data as hp
from HP_view import * #菜单栏对应的各个子页面
零碎设定了g.tab1--g.tab9,零碎只是用了g.tab1--g.tab6
控件构造 g.G_root -〉 g.tabControl -〉g.tab1
减少tab,用add()
删除tab,用forget()
当然用户能够设置更多的tab窗口。必须应用全局变量g.变量名
反复建设新tab窗会出错,所以咱们先检测是否None,不是就先做删除旧tab窗口。
if g.tab7!=None:
g.tabControl.forget(g.tab7)g.tab7=None
用户自建新画面
g.tab7 = tk.Frame(g.tabControl)
g.tabControl.add(g.tab7, text='用户新窗口')
新设全局变量
g.frame_a=tk.Frame(g.tab7, bg = 'blue',width = 500, height = 320)
g.frame_a.pack(side=tk.TOP, fill=tk.BOTH, expand=1)
g.frame_b=tk.Frame(g.tab7, bg = 'red',width = 500, height = 320)
g.frame_b.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=1)
读取数据源,并显示K线图
df1=hp.get_k_data('600088',ktype='D',start='2018-01-01',end='2018-08-31',index=False,autype='qfq')
df2=hp.tstojq(df1)
g.plot_a = plotFrame(g.frame_a,df2,'600088','KDJ')
g.plot_a.pack(fill=X)
df3=hp.get_k_data('600619',ktype='D',start='2018-01-01',end='2018-08-31',index=False,autype='qfq')
df4=hp.tstojq(df3)
g.plot_a = plotFrame(g.frame_b,df4,'600619','MACD')
g.plot_a.pack(fill=X)