点击:QTYX最新版本使用指南[文字版]

点击:QTYX最新版本使用指南[视频版]

点击: QTYX历史版本更新说明

赠送“回测框架”的目的

为了帮助读者再建立一座从书本知识到实战应用之间的“桥梁”,赠送一个回测小工具。

由书中知识点组合而成,实现了包括选股、行情、回测三个功能。额外使用wxPython封装一层GUI便于操作。

提供给大家一种“量化交易”为我所用的思路。大家可以以此为基础去搭建适合自己的系统!

回测框架效果展示

回测框架的功能,其实是我自己设定了一个炒股的场景。

我们根据上市公司的一些财务指标,去过滤出我们心仪的股票加入我们的股票池,然后查看股票的行情走势,选出走势较好的几只股,再制定一个择时策略,对这几只股票进行回测,评估择时策略的效果。

  • 条件选股界面

我们把全市场股票的部分财务数据(市盈率、市值、换手率之类的)整合成了一张表,然后通过条件选取过滤出符合要求的股票,点击保存结果后就可以更新到自选股票池中。大家也可以重构这张表,把平时关系的一些财务指标加进来。

  • 行情分析界面

我们可以点击股票池 显示行情走势,行情参数包括行情起始时间、周期、前复权、后复权、不复权。也可以4幅子图同时比较行情走势。

  • 回测评估界面

策略池中注册策略,选择回测参数,比如初始资金、交易规模、滑点、手续费、印花税之类,点击开始回测,主界面可视化回测指标,比如风险和收益,日志中会有更具体的回测结果,比如交易明细、回测幅度、收益率等。

我录制了一个操作视频,大家可以看一下:点击跳转哔哩哔哩

回测框架文件功能概述

回测工具的下载位置

在群文件夹中下载一个名称“QuantTradeYx_System-v03”的压缩包。

【该版本为V1.0,是随书赠送的。目前有升级的V2.0:可以点击跳转查看】

文件包括:

  1. stock_self_pool.json:存储股票池,可参考书中《7.4 注册 JSON 格式自选股票池》的实现。
  2. firm_para.json:行情显示页面配置参数,可参考书中《8.5 自定义显示界面框架开发》
  3. back_para.json:回测显示页面配置参数,可参考书中《9.1 建立多维度的度量体系》
  4. logtrade.txt:存储回测结果的日志文件,可参考书中《9.1 建立多维度的度量体系》
  5. token.txt:存储tushare pro的token码,手动把注册的token码存文件中

token码是从tushare官网获取,使用tushare的接口有积分要求

  1. QTYX_ApiData.py:API数据获取接口文件,参考《7.1 如何获取股票行情数据》
  2. QTYX_ElementGui.py:GUI相关的定制类 QTYX_MainGui.py:GUI主界面,也是main启动文件
  3. QTYX_MultiGraphs.py:行情显示/回测显示接口,可参考书中《8.1 定制可视化接口 》《9.1 建立多维度的度量体系》和《8.5 自定义显示界面框架开发》
  4. QTYX_StrategyGath.py:策略文件
  5. QTYX_SysFile.py:文件的读取和存储接口

运行条件:

必看本文“安装环境”和“常见问题解决”的内容,可以少走很多弯路。

安装环境

移植程序前,按书中“2.1 快速部署 Python 开发环境”节内容安装开发环境。
新手读者建议和书中的Python版本保持一致。
Python3.7
wxpython 4.0.4
mpl_finance 0.10.0
TA-Lib 0.4.17
numpy 1.15.1
pandas 0.23.4
pandas-datareader 0.7.0
matplotlib 3.1.1
tushare 1.2.51
baostock 0.8.8
statsmodels 0.9.0

注意事项:

  1. 需要额外安装GUI库wxPython(Win7环境下安装wxpython4.0.4,原因见“常见问题解决”)。

  2. 书中安装部署anaconda和pycharm过程是以macos为例,对于Windows用户可以结合这篇文章参考点击跳转链接。

  3. 安装完成后启动主文件QTYX_MainGui.py

  4. TA-Lib安装会麻烦点。具体安装步骤可参考 https://github.com/mrjbq7/ta-lib 网站上介绍。

    Mac用户可按照书中的过程一步步来即可!!!
    Windows用户参考下群里朋友的过程:前往“Python扩展包的非官方Windows二进制文件”,找到对应的wrapper

    选择TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl(win系统64位,python3.7版本,根据自己系统和python版本选择相应的安装包),将下载包放在当前工作路径中,然后在Anaconda Prompt(或windows的cmd)里面输入命令:pip install TA_Lib-0.4.17-cp27-cp27m-win_amd64.whl。

常见问题解决

1. 提示以下错误:


主要出现在windows环境下,原因是读写的文件要指定编码格式’utf-8’。我是在macos系统上调的,不需要指定编码格式,采用默认的即可。
已在QuantTradeYx_System-v02工程的QTYX_SysFile.py中更改。

with open(filename, 'r', encoding='utf-8') as load_f:
2. 提示以下错误:


mpl_finance库用于画K线,可指定书中版本安装。

首先删除当前版本 pip uninstall mpl_finance 或者pip uninstall mplfinance

然后指定版本安装pip install mpl_finance==0.10.0,这样避免更多的问题排查。

当然,有能力的朋友可以移植成mplfinance,参考这篇内容:mpl_finance升级至mplfinance!基于股票量化分析工具V2.06的改动!。

3. 提示以下错误:

在win7环境下wxpython 4.1.0版本和baostock 0.8.8 一同使用时,在baostock的history.py文件的以下代码中报错:

经测试可以使用wxpython4.0.4版本和baostock 0.8.8共同使用。不过wxpython4.0.4在win7下会出现以下问题:

You probably called setlocale() directly instead of using wxLocale and
now there is a mismatch between C/C++ and Windows locale.

解决方法在MainGui文件中添加语句self.locale = wx.Locale(wx.LANGUAGE_ENGLISH),如下所示:

def OnInit(self):self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)self.frame = MainFrame()self.frame.Show()self.frame.Center()self.SetTopWindow(self.frame)return True

win10环境下baostock 0.8.8和wxPython4.1.1 不存在兼容性问题。

也有读者反映以下信息,仅供参考:

总之建议的版本搭配为:
Python3.8+wxpython4.1.1+baostock 0.8.8 + 去掉 self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
Python3.7+wxpython4.0.4+baostock 0.8.8 win10/win7 维持代码语句 self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)

4. 提示以下错误:


原因为tushare的积分不足,程序中使用了pro.daily_basic()接口,大家可前往官网查看积分获取规则。

如不介意可使用org的一个接口作为选股数据(速度有点慢,也并不稳定),仅需在MainGui文件中更改一行代码即可:

# 组合加入tushare数据
self.ts_data = Tsorg_Backend()

当然,大家消化代码之后可以把自己选股的数据替换到工具中。

5. 提示以下错误:

win7上“回测结果”显示为空

提示编码格式错误:

logtrade.txt文件编码变为ANSI。同时QTYX_SysFile.py 中 open 中把encoding 去掉。回测可以正常显示。

6. 提示以下错误:


如果界面显示比例有问题,需要设置下界面尺寸或者比例参数以适应你的屏幕。

## QTYX_MainGui.py相关代码:
class MainFrame(wx.Frame):def __init__(self):# hack to help on dual-screen, need something better XXX - idfahdisplaySize = wx.DisplaySize()  # (1920, 1080)displaySize = 0.85 * displaySize[0], 0.75 * displaySize[1]# call base class constructorwx.Frame.__init__(self, parent=None, title=u'量化软件', size=displaySize,style=wx.DEFAULT_FRAME_STYLE ^ wx.MAXIMIZE_BOX)  # size=(1000,600)
##QTYX_ElementGui.py相关代码:
class StockPanel(wx.Panel):def __init__(self, parent):wx.Panel.__init__(self, parent=parent, id=-1)# 分割子图实现代码self.figure = Figure(figsize=(8, 5)) ## figsize就是改它!!!

最最最重要的是 点击相应按钮才有图像出现!

搭建系统升级

我在知识星球《玩转股票量化交易》中又新增了回测框架的一些功能。感兴趣的读者可以加入星球获取。

【2-1 搭建系统|比Matplotlib更好用的pyecharts打造GUI股票行情分析界面】

【2-4 搭建系统|行情软件可没有!多股票投资组合用的GUI分析界面-附代码】

【2-5 搭建系统|多维度下不同股票|周期|除权|复权走势对比界面-附代码】

【2-17 搭建系统|升级选股工具,使用同花顺F10查看上市公司基本概况!-附代码】
【2-18 搭建系统|本地量化工具集成开源量化框架backtrader操作指南!-附代码】

【2-19 搭建系统|继承backtrader的本地量化回测平台如何玩转多股轮动策略!-附代码】

更多更高阶的量化学习内容可以查看这篇目录介绍:

书籍《Python股票量化交易从入门到实践》升级学习——《玩转股票量化交易》

参考资料

很多读者反馈wxPython相关的资料太匮乏了,这里分享两个链接。

wxpython官网使用文档
专栏-如何用wxPython搭建Python量化交易GUI

读者群动态

在移植回测框架的过程中所出现的问题,主要集中在搭建环境这个环节,比如第三方库的版本、Anaconda和Pycharm的安装等等,总体来说大伙的移植都算比较顺利,没什么难度的。






《Python股票量化交易从入门到实践》随书赠送“回测框架”的使用帮助相关推荐

  1. python股票量化交易接口是应用到股票上吗?

    python股票量化交易接口是应用到股票上吗?当然可以,而且是任何交易者都可以使用量化交易技术,股票交易数据是很容版易采集的,就是分析起来比权较麻烦,如果题主是职业散户,美股研究社更建议使用一些软件炒 ...

  2. python股票量化交易(1)---K线图、均线与成交量绘制

    远思扬祖宗之德,近思盖父母之愆:上思报国之恩,下思造家之福:外思济人之急,内思闲己之邪. 本文目录 前言 获取股票的数据 绘制K线图 均线图 成交量 前言 都说2020年是牛市的起点,很显然对于数据来 ...

  3. python股票量化交易(8)---K线图:锤头,射击之星,早晨之星

    人之有志,如树之有根,立定此志,须念念谦虚,尘尘方便,自然感动天地,而造福由我. 目录 锤头 倒锤头 射击之星 早晨之星 锤头 本篇接着上篇介绍K线形态. 首先,我们今天介绍的第一个K线形态是锤头,T ...

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

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

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

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

  6. python股票量化交易(7)---K线图:乌鸦、乌云压顶、十字星

    随缘济众,其类至繁,约言其纲,大约有十:第一,与人为善;第二,爱敬存心;第三,成人之美;第四,劝人为善;第五,救人危急;第六,兴建大利;第七,舍财作福;第八,护持正法;第九,敬重尊长;第十,爱惜物命. ...

  7. python股票量化交易(12)---使用pyqt5构建股票交易软件主页

    目录 实时股票数据 每笔交易详情数据 绘制股票走势图与买卖盘数据 实时股票数据 接着上篇博文的内容,今天我们来实现获取与绘制实时的股票行情数据.首先,我们需要通过akshare库获取某一天的实时交易数 ...

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

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

  9. python股票量化交易(6)---使用TA-Lib计算技术指标

    务要日日知非,日日改过:一日不知非,即一日安于自是:一日无过可改,即一日无步可进:天下聪明俊秀不少,所以德不加修.业不加广者,只为因循二字,耽搁一生. 目录 什么是TA-Lib SMA指标的计算 MA ...

最新文章

  1. 深度案例 | 神策数据如何助力房产企业数字化转型快速落地?
  2. 6.6 数据集的存储与表达
  3. VTK:可视化之PointDataSubdivision
  4. Vijos 1603 ----迷宫(矩阵乘法,矩阵快速幂)
  5. Jmeter使用笔记之断言
  6. Linux中要重启apache服务与在windows是有很大的区别,下面我们来介绍一下
  7. 用户增长 - BG/NBD概率模型预测用户生命周期LTV(二)
  8. MQTT Java 客户端
  9. 无线通信网络学习之LTE网络架构篇(20141208)
  10. Landsat遥感影像下载
  11. 密码机分类---服务器密码机
  12. 计算机服务无法启动,Win7系统下windows firewall服务无法启动怎么解决【图文】
  13. stc15w4k32s4芯片引脚图片_STC15W4K32S4系列
  14. 如何修改静态 IP 地址和动态 IP 地址
  15. #LeetCode15. 三数之和 @FDDLC
  16. 如何快速删除微博下拉词
  17. python期货基本面分析_用python对股票期货做时序分析
  18. STL库:stack和queue
  19. UnityHub 下载unity 卡在最后不动,已解决
  20. BZOJ 2121: 字符串游戏

热门文章

  1. BMC Eaglestream利用PECI计算CPU、Memory功耗
  2. 计算机论文的致谢部分写什么,毕业论文致谢部分怎么写
  3. 初入Shell编程,了解规范与变量
  4. Vue3中的setup前加上async后页面不显示
  5. RAC数据库实例之间的三种心跳机制
  6. 计算Fisher信息之基础矩阵(一)
  7. 交通期刊JCR(2020)
  8. Confluence使用教程
  9. keil5实现LED灯闪烁,简单延时函数不生效解决办法
  10. p牛java安全漫谈学习笔记(2)_反序列化与urldns链(基础)