前言
随着知识星球《玩转股票量化交易》的小伙伴的增多,新加入的小伙伴急需一份关于股票量化分析QTYX的使用说明文档!!!
由于最新版的QTYX是以V2.0版本为基础,采用逐步优化和添加功能的方式迭代更新而成,所以有一份使用攻略能够帮助小伙伴们快速地掌握最新版的量化分析工具QTYX的操作。
需要说明下,购书读者赠送的股票量化分析工具为V1.0学习版,包含了选股、行情、回测三个基础功能,使用wxPython封装一层GUI便于大家操作。主要目的是为了帮助读者建立一座从书本知识到实战应用之间的“桥梁”。
V2.0版本相比于随书赠送的V1.0版本,除了增加了部分功能外,还对代码结构做了很大的优化,便于读者们更好地二次更改!同时我和异步社区推出了视频课程《理性投资!2天入门量化思维炒股!定制自己的股票分析工具》,配套着为读者捋一捋这个工具,同时也能完备书籍的知识点。
V2.0之后的版本,侧重于实战的股票量化分析,是为一小部分志同道合的量化爱好者打造的量化分析工具。我们开设了知识星球《玩转股票量化交易》,加入星球后可以持续获取更新的版本,也可以提出自己的需求,我会作为功能添加到QTYX中。
主界面工具栏
启动量化分析工具QTYX后出现工具栏控件。
我们以工具栏的方式将量化分析界面、配置界面、行情数据界面等集成起来。
使用方法上,点击对应的工具图标则跳转到子页面上,然后像正常操作该页面一样,当需要切换时点击子页面顶部菜单栏的“主菜单”按钮,即可返回工具栏。
量化界面:包含了大部分QTYX中的功能,可以进行行情、回测、选股等功能,返回时候仍然点击“主菜单”。在功能介绍章节中会详细展开说明。
配置界面:用于设置QTYX的一些通用参数,比如选择操作系统、界面大小设置
行情界面:主要是为了加快A股股票数据的下载进度,用多线程爬虫的方式获取股票历史数据,然后保存在本地使用。
交易界面:为后续实盘功能而预留。
系统参数配置
点击【配置】控件会进入配置页面,选择当前操作系统为“windows”,然后保存参数即可,返回时点击“主菜单”。
注意:需要在进入量化分析页面之前配置才会有效。
当需要切换回工具栏时,点击配置页面顶部菜单栏的“主菜单”按钮,即可返回工具栏。
关于显示器尺寸不同而引起的图形显示不完整问题,我们在配置界面开放了接口,大家可以根据自己情况进行调整。更改之后记得要按下回车键,会有“存储完成”提示!
行情数据源-新浪财经
股票数据的获取是从事股票分析的第一步。数据获取的途径有很多,对大家来说除了数据的质量以外,获取的效率是第二敏感的点。
当我们的策略涉及到全市场的回测时,如果是调用baostock的接口,一下子下载4000多只股票耗时就非常久。
本质上调用接口时候是连接到这些平台的服务器上,所以获取数据时会有一些限制,比如tushare的积分限制,每次调用的频次和数据量都有一定的限制。
为了解决这个问题,我们扩展一个数据源——网易财经!
为了加快A股股票数据的下载进度,我们用了多线程爬虫的方式,然后保存在本地使用。
点击状态条的“行情”控件,即可启动行情界面!只要简单的操作就能下载到股票数据。
这个功能非常关键,为后续全市场的选股比如RPS强势个股、走势线性回归等打下基础!
如果stock_history目录下已经存在csv格式的股票数据,那么工具会自动加载到界面中。双击股票文件名称后,股票数据就会在界面右边表格中显示。
数据内容包含收盘价、开盘价、最高价、最低价、成交量外,还包含了涨跌幅、换手率、总市值等等,还是比较丰富的。
三个按钮的功能如下:
“开始下载”:工具开始增量下载股票从上市至最新交易日的全部数据
“刷新文件”:目前预留,个人觉得是景上添花的功能,后续有需要再增加
“补全下载”:在使用过程中如果触及了网站反扒机制,可以把未下载成功的股票名单记录下来,手动方式二次下载。
下载过程中会有“进度条”提供进度:
下载完成后在“日志区”会统计下载的情况。
因为我本地已经有历史数据了,所以只更新了最近的三天数据。如果是第一次使用本工具,则会下载全部的股票数据。
日志上显示:共更新4368支股票,4368支股票增加数据,0支股票更新失败。共耗时515秒(每天花10分钟左右更新下数据,非常能接受了!)
如果有股票下载失败,我们可以等待一会再点击“补全下载”按钮进行二次下载。
存储了全市场的股票数据之后,针对于全市场的选股和回测就可以展开了!
选股数据源-每日指标
不少小伙伴在使用股票量化分析工具(QTYX)时候,反馈自己的tushare积分不足。
因为在选股功能中,我使用了tushare pro的每日指标daily_basic接口。这个接口可以获取全部股票每日重要的基本面指标,用于选股分析。
不过用户需要至少600积分才可以调取。于是我用爬虫的方式找了一个替代的接口。
先来看下原来daily_basic接口提供了哪些基本面的内容:
股票代码、交易日期、当日收盘价、换手率(%)、换手率(自由流通股)、量比、市盈率(总市值/净利润, 亏损的PE为空)、市盈率(TTM,亏损的PE为空)、市净率(总市值/净资产)、市销率、市销率(TTM)、股息率 (%)、股息率(TTM)(%)、总股本 (万股)、流通股本 (万股)、自由流通股本 (万)、总市值 (万元)、流通市值(万元)
我们找到的是替换数据源是【东方财富网 > 行情中心 > 沪深个股】页面,它包含了各个股票的行情信息, 有沪深A股、新股、中小板、创业板、科创板、风险警示板、两网及退市等,数据类型有最新价、最高、最低、涨跌幅、成交量、成交额、换手率、市盈率……而且是实时更新的哦!用于后期实盘做在线监测,也比较合适。
当我们积分不足600时,【条件选股-选股数据源选取】使用“tushare每日指标”项,点击【刷新数据】后,仅仅只返回个股基本的信息,并无更多的基本面数据。
然后我们使用“爬虫每日指标”项,点击【刷新数据】后,就能返回到个股基本面的信息。
拿到数据之后,就可以使用【条件表达式选股】了,比如在剔除ST股票中筛选出“换手率”大于30的个股,并升序排列。
另外,我们也开放了一个小功能,点击个股的股票代码,会自动加入投资组合池中。
选股数据源-北上资金
由于我国的外汇和资本市场仍然存在较为严格的管制,外国资金不能直接投资A股,需要进行一定的转换。
于是国家就为它们提供了两条路。
第一条路,成为QFII或者RFII,申请配额。
第二条路,从香港证券交易所的沪深港通直接买入股票
2014年底,香港交易所开放了沪深港通。
由于QFII的配额审批通常需要花费两年,甚至是更长的时间。但通过港股却可以当天进出,越来越多的外资选择成为北向资金。
随着北上的外资越来越多,数额越来越大,逐渐成为了外资机构投资的主力军。
北上资金被市场认为是“聪明的资金”,对市场的短期走势有一定的指示作用。
基于获取到的北上资金数据,我们可以进一步观察有价值的信息!
于是我们升级了股票量化分析工具(QTYX),增加了获取北上资金数据的功能。
这份数据内容中分别包含了个股在今日/3日/5日/10日/1月/1季/1年期间北上资金的持仓情况,比如:
当期增持股数(股)、当期增持市值(元)、当期市值增减幅、当期流通股占比变动、当期总占比变动。
同时也提示了个股所属的行业板块、地区板块、当日收盘价(元)、当日涨跌幅(%)、当日持股数(股)、当日持股市值(元)、当日持股总占比、当日流通市值(元)、当日总市值(元)。
我们认为是非常具有参考价值的。
第一步获取数据。【当前日期】选择我们要查看的交易日。【条件选股—>选股数据源选取】,选择“爬虫北向资金”,点击“刷新数据”。
如果是当前交易日,工具用爬虫方式下载最新的北上资金数据。如果是之前的交易日,并且本地的路径"./DataFiles/NorthData/"存在历史数据,则直接从本地加载。
【系统日志】提示信息如下:
2021-05-15 15:54:07:历史数据已经存在该日北上资金数据…
2021-05-15 15:54:07:爬虫北上资金数据获取成功!
获取到数据是我们分析北上资金动向的第一步,结合股票分析工具原有的功能还可以进一步挖掘出有用的信息。
比如【条件表达式选股】选择“所属行业板块”“等于”“医药制造”,点击“条件选股”。如下所示:
然后【条件表达式选股】选择“当日持股总占比”“大于”“0.05”,“降序”,点击“条件选股”。如下所示:
双击“股票代码”,选择老百姓、迪安诊断、益丰药房,三个股票
常规行情、回测、选股使用
量化界面基本的三个子页面分别是行情走势、策略回测及条件选股。
在行情页面,我们可以查看股票的行情走势,观察是否出现买入或者卖出的信号。
我们可以点击股票池的个股来查看行情走势,也可以手动输入个股代码来查看行情走势。
行情参数包括行情起始时间、周期、前复权、后复权、不复权。
也可以4幅子图同时比较行情走势。
新增了一些指示功能。我把书上衍生技术指标——均线金叉死叉、跳空缺口、黄金分割线,各种K线形态识别,都加到回测工具中了。
另外为了支持读者用这个工具分析其他的标的,比如基金、比特币等等,增加了导入离线数据的功能。
当我们想到一些天马星空的策略的时候,我们不需要用真金白银去试验, 可以在回测页面,用历史数据来评估策略的效果。
策略池中是书上介绍过的策略,注册到策略池中。
选择回测参数,比如初始资金、交易规模、滑点、手续费、印花税之类,点击开始回测,主界面可视化回测指标,比如风险和收益。
我们对日志也有优化。交易日志中会有更具体的回测结果,比如交易明细、回测幅度、收益率等。
在选股页面,我们根据上市公司的一些财务指标,去过滤出我们心仪的股票,然后加入我们的股票池。
我们把全市场股票的部分财务数据(市盈率、市值、换手率之类的)整合成了一张表,然后通过条件选取过滤出符合要求的股票,点击保存结果后就可以更新到自选股票池中。
新增了导入功能。大家可以重构这张表,把平时关心的一些财务指标加进来。比如有些读者平时是下载通达信的个股基本面数据来选股,就可以导入进来。
添加自选股票池
如何把自己心仪的股票加到QTYX中,从而展开进一步的实战分析,是至关重要的一步。
一种添加方法是使用“选股功能”筛选出股票后,生成“自选股票池”。
选股功能指的是通过量化界面的“条件选股”,筛选出符合我们选股逻辑的股票。
条件选股的数据源包括“每日指标”、“基金持仓”、“基金持仓”、“业绩预增”等。通过条件表达式过滤选股指标,从而得到符合条件的股票。
筛选出股票后点击【保存股票】按钮执行批量更新功能,工具提供了“增量更新”和“替换更新”两种选择。
当然也可以双击“股票代码”进行单个股票的添加。对于单个股票的添加,为了防止自己主观判断时存在偏差,增加了“经营现金流避雷”分析。
对于已经进入在自选股票池的股票,如果我们在进行了二级的精心筛选之后,决定从自选股票池中删除时,可以点击自选股票池的股票,此时会出现“查看行情走势”、“从股票池中删除”、“加入组合分析池”等选项,我们选择“从股票池中删除”即可。
QTYX 也支持批量导入csv格式股票清单功能。csv文件的关键点是要有“股票代码”和“股票名称”这两列。股票代码的格式可以是sh.xxxxx或sz.xxxxxx,也可以是xxxxxx.SH或xxxxxx.SZ。
运行QTYX工具之后,选择菜单栏的“股票池管理”,分为“增量更新”和“完全替换”两种更新方式。
比如我们选择“完全替换”方式,然后选择“双底形态分析结果.csv”,点击确认后即可将csv文件中的自选股完全替换至QTYX中的自选股票池中。
完善了股票批量的加载功能,使得股票池的维护和管理更加合理、便捷。
每次添加或者删除股票后系统会自动更新显示股票池中的股票,并更新本地的json文件。
行情走势叠加分析
当我们在选股的时候,应该要有宏观分析的视角。
比如先从行业层面选择更有发展潜力的板块,然后在行业内选择更有发展潜力的个股。
那么如何更直观地去对比行业趋势呢?又如何更直观地去对比同一行业下个股的趋势呢?
其实可以把不同的行业指数、不同的公司行情走势放在一个坐标轴上进行比对。
一般的行情软件上虽然有K线的叠加分析,但是能够支持的对比数量有限,当我们想要更多个标的去叠加分析时,行情软件就无法太好支持了,于是我们就自己来个性化实现下!
我们把这个功能增加到了量化分析工具QTYX中!
为了更好地比较行业,以及个股之间的趋势,我们把趋势的起点设定为相同,从而可以看出在一段时间内,哪个行业发展地更好,哪个公司发展地更好。
关于这个功能的使用,先输入自己要分析的行业指数、个股走势,选择行情数据的时间段,然后在“投资组合分析”下拉框中选择“走势叠加分析”即可。
先以行业板块为例。
我们可以选取指数,包括综合指数、规模指数、一级行业指数、二级行业指数等的K线数据进行对比分析。
综合指数,例如:sh.000001 上证指数,sz.399106 深证综指 等;
规模指数,例如:sh.000016 上证50,sh.000300 沪深300,sh.000905 中证500,sz.399001 深证成指等;
一级行业指数,例如:sh.000037 上证医药,sz.399433 国证交运 等;
二级行业指数,例如:sh.000952 300地产,sz.399951 300银行 等;
然后再结合这些行业在这段时期的相关政策背景和事件,就能更好地分析出内在的逻辑,判断行业未来的发展前景。
再以个股为例,找几家半导体行业的个股进行对比分析,比如
sz.002185华天科技、sz.002156通富微电、sh.603005晶方科技、sh.600584长电科技等等。
这几家半导体企业在2020年疫情之前表现的较为接近,而在2020年之后明显晶方科技的走势更客观些。
多股票波动率vs收益率
我们都知道“不要把鸡蛋放在一个篮子”的道理,对于理性投资者来说,在做股票交易时不会就只买一只股票,而是把各个类型的股票做一个组合。
因此,我们在股票组合分析时常常要把多只股票结合起来做一个整体的对比分析。
通常我们认为考量一个股票是否值得投资的依据是收益/风险两方面的对比。
于是我们在股票量化分析工具QTYX上实现了一个可以进行股票组合分析的功能
此处我们分别使用涨跌幅的均值和标准差刻画股票的收益率和波动率,从而对比分析不同股票的收益/风险情况。
比如两只股票的涨跌幅的均值相同的时候,我们可以对比标准差,标准差越小说明该股的波动程度越小。
可以看到工具的界面增加了这几部分控件:
多股票分析池。
投资组合分析选项。
多股票涨跌幅均值标准差组合分析图。
点击自选股名称或者在股票代码框输入代码后,除了显示股票行情走势之外,还会把股票代码添加至“多股票分析池”。
如果要从“多股票分析池”中剔除股票,只需要双击该股票即可。
然后通过wx.ComboBox下拉选项来选择投资组合的方法。
选择后会获取“多股票分析池”中列举股票的涨跌幅数据,数据的起始时间是由行情参数面板上设定的。
进一步得到个股涨跌幅数据后,计算均值及标准差,再通过散点图显示出来。
现金流指标A股排雷
上市公司的财务报表分析主要是分析三大表:资产负债表、利润表及现金流量表。
资产负债表和利润表更多地体现的是投资者投资这家公司未来的收益。
现金流量表则主要反映的是这家公司经营的风险。
客观地说,作为普通投资者来说要从资产负债表和利润表中搞清一家上市公司的未来发展预期是非常难的。
但是从现金流量表的视角去分析一家公司的经营风险,也就是能不能生存下去的问题,相对来说容易些。
所以从投入的时间和产出来看,我建议普通投资者侧重于“排雷”的目的去做财务报表分析会更有价值。
如何排雷呢?我们主要看“现金流量表”!
现金流量表是将现金的流入和流出按照公司从事的经营、融资、投资三项活动进行分类描述。告诉我们,现金增减变化是如何发生的,描述了现金的来龙去脉,更确切的说,描述了企业的风险状况。
比如我们看600387这只股票的现金流量表,他的经营活动产生的现金流量净额和投资活动产生的现金流量净额都是负的。
近一年的股价走势同样十分惨淡,如果投资者买了这支股票,亏损会非常严重。
根据2019年报数据,A股经营现金流为负的公司608家。在2020.1.1至2020.12.31,其中462支股票跑输大盘,占比75.98。
经营现金流为负的公司“暴雷”的概率极高。
为了帮助大家更高效地“排雷”,我们升级股票量化分析工具(QTYX),增加了关于经营性现金净流量的风险提示。
在【条件选股】界面,当从【选股数据源】中获取到选股数据后,双击“股票代码”列的个股代码即可。此时会弹出风险提示对话框。
比如我们点击“000016”,提示信息如下:
发布日期:2020-04-29
统计截止日:2021-03-31
经营活动产生的现金流量净额除以营业收入:-0.053882
经营性现金净流量除以净利润:-28.248519
经营性现金净流量除以营业总收入:-0.053882
公司现金流量存在较大风险!
是否还添加股票到组合分析池?
比如我们点击“000061”,由于这家公司经营性现金流还可以,那么也会提示经营性现金流正常。
由于A股每家上市公司都会发布公告,但是发布的时间是不同的,我们优先获取当前季度最新的财务数据,如果该公司本季度未发布,则退而求其次获取上一季度的财务数据作为参考。
经过“经营性现金流”指标的“排雷”筛查后,添加至“组合分析股票池”。这样风险系数会大幅降低。
再回到【行情参数】,【投资组合分析】中可以选择“收益率/波动率”、“走势叠加分析”等项目进行综合分析。
说明
1. 由于篇幅有限,完整的使用文档可点击【阅读原文】查看,链接过去的地址建议大家收藏保存,后续会持续更新该链接的文档。
2. 想要加入知识星球《玩转股票量化交易》的小伙伴记得先微信call我获取福利!
元宵大师的量化交易书籍开售!!
京东、当当、天猫有售!!