自己做量化交易软件(36)小白量化实战9–小白量化回测面板设计
在股市中,没有很高文化知识的散户,也可以成为股市赢家。例如,有一位看自行车的大妈,每到一段时间存车的人很少时她就去买股票,看到一段时间存车的人多的时候就她去卖股票,每年都有所获。
因此散户有好的经验和技术分析的前提下,散户投资者也可以利用好的操作方法,可以在股市中经常保持获利。这个好的操作方法,例如数自行车数量,可以当作会用“股票技术指标”,技术指标是谁写的?当然是能看我博客的各位读者了。
作者出版的《看盘秘籍》不仅教炒股知识、炒股方法、炒股技术、炒股理念,还从宏观和微观介绍了股票价格波动的原理,并以此开发出荷蒲指标、独狼指标、貔貅指标系列。最后教读者如何编写大智慧和通达信软件指标公式,以及用c++来开发和加密指标的方法。

随着计算机科学的发展,投资分析由以前的简单指标分析,发展为量化投资分析技术。
现在是人工智能的量化时代,没有很高文化知识的小白散户,能用小白量化软件吗?

购买作者出版的<零基础搭建量化投资系统――以Python为工具>,并好评,除了得到随书提供的小白量化第一代源代码外,还赠送小白量化第二代源代码。

小白量化第二代能够编译为exe文件,做成仿通达信软件Python版,提供给没有安装过Python环境的电脑小白使用。
这篇文章给大家介绍如何定制小白量化二代的量化工具,这个工具可以称为小白量化软件的插件,增强小白量化平台的功能,更加简化用户量化分析回测。
假如小白量化目录的:d:\xb2d
小白量化中[增强插件]在view目录中 d:\xb2d\view
小白量化中[用户程序]在user目录中 d:\xb2d\user
其中文件都以.py文件存在,这些文件会在重新启动后,增加到导航目录树中。

上图是小白量化二代的启动画面。这些关键控制变量与书中第一代小白量化一样。

通过这些全局控制变量来控制或改变小白量化框架的外观,功能和形态。
下面我们看看[三画面.py]的插件代码。

# -*- coding: utf-8 -*-
# 显示3个K线图的模板
import time
import tkinter as tk
import HP_global as g
import HP_data as hp
from HP_view import * #菜单栏对应的各个子页面
import HP_tdx as htdx#系统设定了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.tab8!=None:g.tabControl.forget(g.tab8)g.tab8=None#用户自建新画面
g.tab8 = tk.Frame(g.tabControl)
g.tabControl.add(g.tab8, text='三画面')
g.tabControl.select(g.tab8)#把window划分3个子容器,在不同子容器中显示不同股票K线图
xxx=view3(g.tab8)##读取股票数据g.gtype=g.book_s.get()
stockn=g.stock_i.get()
stockn=stockn.strip()
stockn=stockn.zfill(6)
g.stock_i.set(stockn)
g.stock=stockn
ds=g.date_s.get()
de=g.date_e.get()
g.sday=ds.strip()
g.eday=de.strip()
df2=htdx.get_k_data(g.stock,ktype='D',start=g.sday,\end=g.eday,index=False,autype='qfq')ds=g.mds
de2=time.strftime('%Y-%m-%d',time.localtime(time.time()))
de=time.strftime('%Y-%m-%d',time.localtime(time.time()))+' 15:01:00'
g.mde=destockn=g.stock_i.get()
stockn=stockn.strip()
stockn=stockn.zfill(6)
g.stock_i.set(stockn)
g.stock=stockn
st=g.stock
st2=stif int(time.strftime('%H%M',time.localtime(time.time())))<=930:ds=time.strftime('%Y-%m-%d',time.localtime(time.time()-24*60*60))+' 09:30:00'de=time.strftime('%Y-%m-%d',time.localtime(time.time()-24*60*60))+' 15:00:00'
else:ds=time.strftime('%Y-%m-%d',time.localtime(time.time()))+' 09:30:00'de=time.strftime('%Y-%m-%d',time.localtime(time.time()))+' 15:00:00'#if g.login:
df2b=htdx.get_security_bars(7,code=st)
a=[x[0:10] for x in df2b.date]
df2b['date2']=a
df2b=df2b[df2b.date2==de2]
df2b=df2b.reset_index(level=None, drop=True ,col_level=0, col_fill='') axview3x_m(xxx.v[0],df2b,g.stock+' '+g.stock_names[g.stock]+' 分时图',6) df3=htdx.get_security_bars(nCategory=5,nMarket = 0,code=g.stock,\nStart=0, nCount=240)
df3.date=[x[0:10] for x in df3.date.astype(str)]
#6均线2指标图,现实KDJ指标线
axview2x(xxx.v[1],df3,g.stock+' '+g.stock_names[g.stock]+' 周线图',6)
# 3指标图
axview4x(xxx.v[2],df2,g.stock+' '+g.stock_names[g.stock]+' 日线图',f1='VOL',f2='HPYYX',f3=g.gtype)xxx.pack(fill=tk.BOTH, expand=1)

程序运行结果如下图:

我们再看看[F10窗口.py]基本面信息的插件程序如下:

# -*- coding: utf-8 -*-
import time
import threading, time
import pandas as pd
import numpy as np
import tkinter as tk  #装载tkinter模块,用于Python3
from tkinter import ttk  #装载tkinter.ttk模块,用于Python3
import  HP_tk  as  htk   #导入htk
from tkinter import scrolledtext  #装载scrolledtext模块
from PIL import Image, ImageTk, ImageDraw, ImageFont
import sys
sys.path.append("..")
import HP_tk  as  htk   #导入ht
import HP_tdx as htdx
import HP_global as gif g.tab7!=None:g.tabControl.forget(g.tab7)g.tab7=None#用户自建新画面
g.tab7 = tk.Frame(g.tabControl)
g.tabControl.add(g.tab7, text='F10信息')
mk=htdx.get_market(g.stock)class UserF10(tk.Frame): # 继承Frame类  def __init__(self, master=None,stock=''):  tk.Frame.__init__(self, master)  self.stock=stockif self.stock=='':self.stock=g.stockself.root = master #定义内部变量root  self.button2=Noneself.r=1self.c=8self.b=[]self.F10text=scrolledtext.ScrolledText(self,undo=True,bg='#FFF8DC')self.F10text.pack(side=tk.TOP, fill=tk.BOTH, expand=1,ipady=1,pady=1,ipadx=1,padx=1)self.init()self.pack(fill=tk.BOTH, expand=1,)def bt(self,n=0):import HP_tdx as htdxmk=htdx.get_market(self.stock)df=htdx.get_company_info_category(mk,self.stock)self.F10text.delete(2.0,tk.END)self.F10text.insert(tk.INSERT,'\n\n')        t=htdx.get_F10(self.stock,df.name[n])self.F10text.insert(tk.INSERT,t)def bt2(self):stockn=g.stock_i.get()stockn=stockn.strip()stockn=stockn.zfill(6)self.stock=stockng.stock=stocknself.init()g.status.text(2,'查看'+self.stock+'  F10信息!')self.bt(n=0)def init(self):import HP_tdx as htdxmk=htdx.get_market(self.stock)df=htdx.get_company_info_category(mk,self.stock)fr=tk.Frame(self.F10text)k=0for i in range(self.r):for j in range(self.c):def kk(self=self, k=k):self.bt(k)self.button = tk.Button(fr,text=df.name[k],command=kk,cursor='hand2')self.b.append(self.button)self.button.grid(row=i, column=j, padx=1, pady=1, sticky=tk.E)k+=1self.button2 = tk.Button(fr,text='切换股票',command=self.bt2,cursor='hand2')  self.button2.grid(row=0, column=self.c+1, padx=1, pady=1, sticky=tk.E)              fr.pack(side=tk.TOP)self.F10text.window_create(tk.INSERT,window=fr)self.F10text.insert(tk.INSERT,'\n\n')t=htdx.get_F10(self.stock,df.name[0])self.F10text.insert(tk.INSERT,t)g.UserF10View=UserF10(g.tab7)
g.UserF10View.pack(fill=tk.BOTH, expand=1)
g.tabControl.select(g.tab7)
g.tabs=7

程序运行结果如下:

无论是输入什么股票代码,敲回车后,日线图,分时图,三画图,F10基本信息,股票代码都会自动切换。
通过阅读我的文章,你是不是有更丰富的想法呢?

一位读者找到我,他的目前只会写通达信指标,一时半会学不会Python,希望花钱订制一个量化回测插件,于是我的其中一位读者为他订制了这个[小白回测]插件。使用者只需要写相应的通达信指标公式,就能实现自动回测。

#双均线策略
#买信号B
B=CROSS(MA(C,5),MA(C,20))#卖信号S
S=CROSS(MA(C,20),MA(C,5))


你觉得定制这样的插件能赚多少钱呢?一本书<零基础搭建量化投资系统――以Python为工具>全价才99元。
我相信,我们的读者看了我的帖子,设计类似的插件非常容易。

请持续关注我的博客,我的进步,就是你的进步!

自己做量化交易软件(36)小白量化实战9--小白量化回测面板设计相关推荐

  1. QMT量化交易软件使用攻略(四)-策略回测

    对某一策略编译成功后,点击回测,可以通过日志输出查看模型基于历史行情数据回测情况和表现. 在回测之前,需要设置好策略回测运行的主图品种和周期,以及相关的回测参数.回测主图和周期可以 在策略编辑器-基本 ...

  2. 自己做量化交易软件(35)小白量化实战8--事件型回测程序

    自己做量化交易软件(35)小白量化实战8–事件型回测程序 小白量化第二代程序也提供了一个简单的事件型回测程序,我们前面的博客文章有介绍这方面的知识.当时用MT5 做的回测演示,见文章:自己做量化交易软 ...

  3. python股票量化交易入门到实践_量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》...

    我们需要利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,重点学习如何高效地利用Python解决投资策略问题,推荐学习<Python与量化投资从基础到实战>等电子资料. ...

  4. 用python做股票因子分析_Python量化交易教程(3)因子选股与回测

    量化QQ群:371474481 因子选股模型是应用最为广泛的一种选股模型,基本原理是采用某个或某些因子作为选股的标准,满足这些因子的股票则被买入,不满足的则卖出. 因子选股模型为什么适用?举一个简单的 ...

  5. python gui插件_Python进阶量化交易专栏场外篇17- GUI控件在回测工具上的添加

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 为了 ...

  6. 深入浅出Python量化交易实战--第2章 回测与经典策略(下)

    2.3 经典策略之海龟策略 说起经典的交易策略,就不得不提到"海龟策略"--一个20世纪80 年代提出的,以海龟交易法则为核心的交易策略.其核心要点是:在股 价超过过去N个交易日的 ...

  7. 量化初步-《python与量化投资从基础到实战》——优矿策略

    python与量化投资从基础到实战--策略初步 量化数据获取 优矿介绍 使用方式 日行情数据 因子数据 数据处理 数据合并 数据透视 数据过滤 数据获取与整理 数据转化: 标准化 哑变量 通联数据回测 ...

  8. 量化交易软件哪家好?国内排名是?

    一.量化交易软件是什么 量化交易软件是一种基于计算机程序和算法的交易系统,能够自动化地执行投资策略,降低交易成本.提高交易效率.它通过数据分析.技术分析等手段,对市场走势进行预测,并根据预测结果自动执 ...

  9. 自己做量化交易软件(43)小白量化实战16--利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计

    自己做量化交易软件(43)小白量化实战16–利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计 量化产品PTrade(Personalise Trade)交易系统 ...

  10. 量化进阶-《python与量化投资从基础到实战》——常用的量化策略及其实现

    python与量化投资从基础到实战--常用的量化策略及其实现 量化投资概述 量化投资简介 量化投资策略的类型 年化研究流程 行业轮动理论及其策略 行业轮动理论简介 行业轮动的原因 从产业链的角度来看行 ...

最新文章

  1. 计算机网络与云计算研究背景,基于云计算背景下的计算机网络安全研究
  2. DWZ中Tree树形菜单的treeCheck如何获取返回值解决方案
  3. Vue源码解析之数组变异
  4. 年薪 66万+,西澳大学招聘 CV DL Research Fellow(研究员)
  5. JAVA中 fastjson判断JSONObject是否为空,方法isEmpty()
  6. 嵌入式电路设计(外围模块)
  7. 4g/5g信号远程遥控小车解决方案二
  8. 面试过了复试机会大吗-面试通过,参加复试通过的几率有多大
  9. 国税局验证码识别 | 不讲武德篇
  10. 使用GF集进行构型综合的方法之总结
  11. 学习C++复合数据类型
  12. C#输出Word文档
  13. 单独按戴尔笔记本f11键和f12键无法调节亮度了怎么办?用(Fn+F11键或者Fn+F12键就好)
  14. SSM三大框架从0到1,无障碍学习,萌新可入《二》
  15. 设置element ui table表格线条颜色以及设置圆角/解决element ui table设置圆角后线条不显示或显示模糊问题,亲测有效
  16. matplotlib显示图片与图片批量裁剪
  17. H - Hangar Hurdles
  18. sftp,ftp文件下载
  19. Python数据分析实战学习与分享(一)
  20. https连接websocket用wss的连接用法

热门文章

  1. Windows中如何对电脑硬盘进行分区
  2. 开发中使用第三方工具/服务
  3. 短视频去除logo(抖音)
  4. 实现 API 调用接口
  5. 关于Ubuntu的联网操作
  6. 重新理解泰勒公式 牛顿法
  7. register int 与 int 的区别
  8. 运放输入偏置电流方向_运算放大器输入偏置电流的两种测试方法研究
  9. IO-4、RAID结构
  10. 动态IP和静态IP有什么区别