赞
踩
点击: QTYX历史版本更新说明
为了帮助读者再建立一座从书本知识到实战应用之间的“桥梁”,赠送一个回测小工具。
由书中知识点组合而成,实现了包括选股、行情、回测三个功能。额外使用wxPython封装一层GUI便于操作。
提供给大家一种“量化交易”为我所用的思路。大家可以以此为基础去搭建适合自己的系统!
回测框架的功能,其实是我自己设定了一个炒股的场景。
我们根据上市公司的一些财务指标,去过滤出我们心仪的股票加入我们的股票池,然后查看股票的行情走势,选出走势较好的几只股,再制定一个择时策略,对这几只股票进行回测,评估择时策略的效果。
我们把全市场股票的部分财务数据(市盈率、市值、换手率之类的)整合成了一张表,然后通过条件选取过滤出符合要求的股票,点击保存结果后就可以更新到自选股票池中。大家也可以重构这张表,把平时关系的一些财务指标加进来。
我们可以点击股票池 显示行情走势,行情参数包括行情起始时间、周期、前复权、后复权、不复权。也可以4幅子图同时比较行情走势。
策略池中注册策略,选择回测参数,比如初始资金、交易规模、滑点、手续费、印花税之类,点击开始回测,主界面可视化回测指标,比如风险和收益,日志中会有更具体的回测结果,比如交易明细、回测幅度、收益率等。
我录制了一个操作视频,大家可以看一下:点击跳转哔哩哔哩
在群文件夹中下载一个名称“QuantTradeYx_System-v03”的压缩包。
【该版本为V1.0,是随书赠送的。目前有升级的V2.0:可以点击跳转查看】
token码是从tushare官网获取,使用tushare的接口有积分要求
必看本文“安装环境”和“常见问题解决”的内容,可以少走很多弯路。
移植程序前,按书中“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
注意事项:
需要额外安装GUI库wxPython(Win7环境下安装wxpython4.0.4,原因见“常见问题解决”)。
书中安装部署anaconda和pycharm过程是以macos为例,对于Windows用户可以结合这篇文章参考点击跳转链接。
安装完成后启动主文件QTYX_MainGui.py
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。
主要出现在windows环境下,原因是读写的文件要指定编码格式’utf-8’。我是在macos系统上调的,不需要指定编码格式,采用默认的即可。
已在QuantTradeYx_System-v02工程的QTYX_SysFile.py中更改。
with open(filename, 'r', encoding='utf-8') as load_f:
mpl_finance库用于画K线,可指定书中版本安装。
首先删除当前版本 pip uninstall mpl_finance 或者pip uninstall mplfinance
然后指定版本安装pip install mpl_finance==0.10.0,这样避免更多的问题排查。
当然,有能力的朋友可以移植成mplfinance,参考这篇内容:mpl_finance升级至mplfinance!基于股票量化分析工具V2.06的改动!。
在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)
原因为tushare的积分不足,程序中使用了pro.daily_basic()接口,大家可前往官网查看积分获取规则。
如不介意可使用org的一个接口作为选股数据(速度有点慢,也并不稳定),仅需在MainGui文件中更改一行代码即可:
# 组合加入tushare数据
self.ts_data = Tsorg_Backend()
当然,大家消化代码之后可以把自己选股的数据替换到工具中。
win7上“回测结果”显示为空
提示编码格式错误:
logtrade.txt文件编码变为ANSI。同时QTYX_SysFile.py 中 open 中把encoding 去掉。回测可以正常显示。
如果界面显示比例有问题,需要设置下界面尺寸或者比例参数以适应你的屏幕。
## QTYX_MainGui.py相关代码:
class MainFrame(wx.Frame):
def __init__(self):
# hack to help on dual-screen, need something better XXX - idfah
displaySize = wx.DisplaySize() # (1920, 1080)
displaySize = 0.85 * displaySize[0], 0.75 * displaySize[1]
# call base class constructor
wx.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的安装等等,总体来说大伙的移植都算比较顺利,没什么难度的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。