搭建自己的量化系统

如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统。否则,赚钱或者亏钱我们很难归纳总结,往往是凭借运气赚钱,而不是合理的系统模型,一时凭借运气赚的钱长期来看会因为实力还回去。

如何学会搭建自己的量化交易系统?

边学习边实战,在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习,也可以用于实战炒股分析的量化系统——QTYX。

我们分享QTYX系统目的是提供给大家一个搭建量化系统的模版,最终帮助大家搭建属于自己的系统。因此我们提供源码,可以根据自己的风格二次开发。

自己搭建量化系统的好处如下所示:

QTYX系统结构如下所示:

由于QTYX一直迭代更新,当前介绍对应于版本V2.5.4。后续升级版本会同步更新文档内容。

功能概览

股票数据的获取是从事股票分析的第一步。数据获取的途径有很多,对大家来说除了数据的质量以外,获取的效率是第二敏感的点。

市面上有一些股票数据服务平台提供了Python接口来获取数据,比如tushare、baostock等。

总的来说,用于单个股票获取时候还是挺方便的,但是当我们的策略涉及到全市场的回测时,一下子下载4000多只股票非常耗时,每天全市场选股需要花1-2个小时。

因为调用接口时,本质上是连接到这些平台的服务器上,所以获取数据时服务器会有一些限制,比如tushare的积分限制,每次调用的频次和数据量都有一定的限制。

为了加速数据获取的过程,股票量化分析工具QTYX使用本地数据源加速全市场选股的过程,仅仅需要十几分钟即可。

下载本地数据

我们使用的数据源来自于网易财经!

关于网易财经获取数据的URL分析可参考知识星球《玩转股票量化交易》【1-19】主题。

为了加快A股股票数据的下载进度,我们用了多线程爬虫的方式,然后保存在本地使用。

我们对核心代码封装了一层GUI,提供给大家直接可用的“股票数据下载”工具,只要简单的操作就能下载到股票数据。

这个功能非常关键,为全市场的选股比如双底形态、均线粘合突破、RPS强势个股、走势线性回归等打下基础!

接下来说说怎么使用吧!

首先要在QTYX\DatazFiles路径下创建一个文件夹,用于存储股票数据文件,每个股票一个csv文件。代码中变量data_path默认的是stock_history/,当然大家可以随意更改。

如果stock_history目录下已经存在csv格式的股票数据,那么工具会自动加载到界面中。双击股票文件名称后,股票数据就会在界面右边表格中显示。

数据内容包含收盘价、开盘价、最高价、最低价、成交量外,还包含了涨跌

幅、换手率、总市值等等,还是比较丰富的。

在工具顶部菜单栏三个按钮的功能如下:

  • “开始下载”:工具开始增量下载股票从上市至最新交易日的全部数据

  • “刷新文件”:重新加载stock_history目录下存在的股票数据文件

  • “补全下载”:在使用过程中如果触及了网站反扒机制,可以把未下载成功的股票名单记录下来,手动方式二次下载。

  • “停止下载”:下载过程中停止下载任务。

下载过程中会有“进度条”提供进度:

下载完成后在“日志区”会统计下载的情况。

因为我本地已经有历史数据了,所以只更新了最近的一天数据。如果是第一次使用本工具,则会下载全部的股票数据。

日志上显示:共更新4773支股票,4773支股票增加数据,0支股票更新失败。共耗时526秒(每天花10分钟左右更新下数据,非常能接受了!)

如果有股票下载失败,我们等待一会再点击“补全下载”按钮进行二次下载。

存储了全市场的股票数据之后,针对于全市场的选股和回测就可以展开了!

数据复权处理

我们获取到的数据是除权的数据,对于像双底形态识别、跳空缺口识别这类的形态分析方法,如果使用除权的股票价格,那么会对选股的结果产生一些影响。

什么是除权和复权?除权通常是除权除息的简称。除权除息前后的股价是需要等价换算的,换算是根据“除权前后流通股股东价值不变”原理来确定的。因此除息要去除股价分红的影响。除权要去除股票数量增加的影响。

假如一只股票除息前股价5元,通告今天是股权登记日,当日每10股分红5元。那么明天为除息日,除息后的股价变为4.5元。

假如一只股票除权前股价20元,通告今天是股权登记日,公司决定每10股送10股。那么明天为除权日,股价变为10块,股本增加1倍,原来持有100股在除权日就变为200股。

这两种情况会在走势图上出现不同程度的下跌缺口,我们称为除权缺口。

除权除息会使投资者误认为是一个向下跳空缺口,如下所示:

如果根据除权的股价去计算股票涨跌幅显然是不对的,同花顺软件里面显示的是-52.49%。同样计算得到的各类指标也是毫无参考价值的。

为了使得走势图能真实反映各股价趋势,让投资者更好做出判断,除权除息后的价格就不能直接和以前的价格比,而是要经过复权处理后才有可比性。

复权处理是根据“除权前后流通股股东价值不变”原理。保持现有股价不变,调整以前的价格,就叫做前复权。

同样,保持以前的股价不变,调整除权后的股价,就叫做后复权。

如何得到复权后的股价呢?其实非常简单,无论前复权还是后复权数据,都是可以通过复权涨跌幅转换得到的。复权涨跌幅即是股票的真实涨跌幅。

比如得到了股票第一天的价格之后,通过简单的连乘计算,自然就可以计算出之后每一天的复权价,这个叫做后复权价。

同样的,知道了股票最后一天的价格,那么反向处理也就可以计算出之前每一天的价格,这个叫做前复权价。行情软件中的前后复权价格,其实也是这么算出来的。

QTYX的高速行情数据源支持股票数据的复权处理。

使用方法非常简单。点击 【选股流程】->【开始选股】->【形态驱动型选股】,会出现选股数据参数对话框,包含了【股票周期】、【股票复权】、【选股模型】等栏目。

我们根据需求在【股票复权】下拉选项中选择【不复权】、【前复权】和【后复权】中的一个即可。

注:默认只有在选择了扫描“全市场股票”时,才会使用本地高速行情数据源。

想要了解代码是如何实现复权的话,可以查看QTYX/ApiData/Csvdata.py文件的load_history_st_data()函数。

不少星友会留意到有时候同一只股票,在不同的行情软件里面显示的复权价格是不一样的。这里需要和星友们说明下关于复权后股价数据不一致的原因。

数据不一致的主要原因是不同系统间采用复权方式可能不一致。比如QTYX使用的是“涨跌幅复权法”进行复权,而同花顺或者通达信等软件可能是不同的。

其实复权是非常复杂的处理,真实的情况下有分红、转增、增发、配股、可转债等非常复杂的情况。即使是专业的数据库,也都会在复权计算中出现错误。

所以大家更多还是结合自身使用的情况,去考虑复权数据的影响。比如对于形态选股而言,只要把除权缺口弥补即可,对价格的微小误差并不敏感。

如果是在回测中,则应该使用真实价格的回测模式。

比如当回测到“历史时刻1”时,使用“历史时刻1”的复权因子对之前的价格进行前复权,如果出现成交,就和真实价格撮合成交;当回测到“历史时刻2”时,“对“历史时刻2"之前的价格进行前复权。

代码中函数说明

我们对功能相关的函数进行列举说明,大家可以找到源码进行调试和学习。

UserFrame.py
_ev_click_menu_start:菜单栏->开始下载->事件触发
_ev_click_menu_fresh:菜单栏->刷新文件->事件触发
_ev_click_menu_compt:菜单栏->补全下载->事件触发
_ev_click_menu_stop:菜单栏->停止下载->事件触发
CrawlerThread:多线程回调爬虫行情数据接口
DefProgress.py
ProgressBarDialog:操作进度条元素
DownloadDataThread:多线程更新进度条
HistoryOCHLV.py:爬虫获取网易财经数据驱动
DatHandle.py
day_to_qfq:前复权处理day_to_hfq:后复权处理

说明

1. 我们会把完整的源码上传到知识星球《玩转股票量化交易》中,帮助小伙伴们更好地掌握这个方法。

2. 想要加入知识星球《玩转股票量化交易》的小伙伴记得先微信call我获取福利!

知识星球介绍点击:知识星球《玩转股票量化交易》精华内容概览

股票量化分析工具QTYX使用攻略——高速版本地行情源(更新v2.5.4)相关推荐

  1. 股票量化分析工具QTYX使用攻略——形态选股结果回测(更新v2.5.6)

    搭建自己的量化系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统.否则,赚钱或者亏钱我们很难归纳总结,往往是凭借运气赚钱,而不是合理的系统模型,一时凭借运气赚的钱长期来看会因为实力还回 ...

  2. 股票量化分析工具QTYX使用攻略——均线系统多头排列选股(更新2.5.7)

    搭建自己的量化系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统. 如何学会搭建自己的量化交易系统? 边学习边实战,在实战中学习才是最有效地方式.于是我们分享一个即可以用于学习,也可以 ...

  3. 股票量化分析工具QTYX使用攻略——页面控件功能导览v2.5.1

    搭建自己的量化系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统.否则,赚钱或者亏钱我们很难归纳总结,往往是凭借运气赚钱,而不是合理的系统模型,一时凭借运气赚的钱长期来看会因为实力还回 ...

  4. 股票量化分析工具QTYX使用攻略——挖掘主升浪中的人气个股(更新2.6.5)

    搭建自己的量化系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统. 行情不等人!边学习边实战,在实战中学习才是最有效地方式.于是我们分享一个即可以用于学习,也可以用于实战炒股分析的量化 ...

  5. 股票量化分析工具QTYX使用攻略——小市值轮动选股策略(更新2.5.9)

    搭建自己的量化交易系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统. 如何学会搭建自己的量化交易系统? 边学习边实战,在实战中学习才是最有效地方式.于是我们分享一个即可以用于学习,也 ...

  6. 股票量化分析工具QTYX使用攻略——RPS指标选取强势股(更新2.6.3)

    搭建自己的量化交易系统‍ 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统. 行情不等人!边学习边实战,在实战中学习才是最有效地方式.于是我们分享一个即可以用于学习,也可以用于实战炒股分析 ...

  7. 股票量化分析工具QTYX使用攻略——箱体形态突破选股v2.5.3

    搭建自己的量化系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统.否则,赚钱或者亏钱我们很难归纳总结,往往是凭借运气赚钱,而不是合理的系统模型,一时凭借运气赚的钱长期来看会因为实力还回 ...

  8. 股票量化分析工具QTYX使用攻略系列——双底形态选股

    前言 自从股票量化分析工具QTYX新增双底形态选股功能以来,大家的反响一直很热烈.很多星球会员利用这个功能帮助自己抓到了大牛股. 确实,双底形态是由市场力量形成的,我们只需顺势而为即可,特别是大周期. ...

  9. 股票量化分析工具QTYX使用攻略——盘中选取强势股v2.5.2

    搭建自己的量化系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统.否则,赚钱或者亏钱我们很难归纳总结,往往是凭借运气赚钱,而不是合理的系统模型,一时凭借运气赚的钱长期来看会因为实力还回 ...

最新文章

  1. C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
  2. 使用 Acegi 保护 Java 应用程序
  3. [前端随笔][css] 弹性布局
  4. 金融行业怎么用AI?蚂蚁金服是这么做的
  5. 【Golang 接口自动化05】使用yml管理自动化用例
  6. Cmake-add_library()
  7. pythoninformation leakage_GitHub - MrFk/GSIL: Github Sensitive Information Leakage(Github敏感信息泄露)...
  8. ubuntu 中安装 Redis
  9. Unity3D_(插件)小地图自刷新制作Minimap小地图
  10. 2021年上半年系统分析师下午真题和答案解析
  11. 【消息轰炸】Python消息轰炸
  12. arcmap 坡降工具_ArcHydro_Toolbar_In_Arcmap Arcgis水文分析工具具体的操作 - 下载 - 搜珍网...
  13. linux命令五十七之tar命令;linux多个文件压缩打包到一个压缩文件
  14. 2021东北四省赛J. Transform(空间几何)
  15. G - A Question of Ingestion Gym - 101673G
  16. (十四)商品详情页实现
  17. 匿名游走 Anonymous Walk
  18. js 简易的筋斗云,图片动画
  19. Android Studio飘红错误
  20. 【Kafka笔记】4.Kafka API详细解析 Java版本(Producer API,Consumer API,拦截器等)

热门文章

  1. python少儿趣味编程视频教程全套-Python少儿趣味编程
  2. Python学习笔记——数据分析之数据可视化工具实战案例:世界高峰数据可视化
  3. SAP MM批次管理(6)批次确定--大海
  4. 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
  5. go每日新闻(2021-02-02)——Go1.16 新特性:一文快速上手 Go embed
  6. 测试需求分析与测试用例设计
  7. ssm毕设项目贵工程线上拍卖平台的设计与实现c1jil(java+VUE+Mybatis+Maven+Mysql+sprnig)
  8. json-server Error: EPERM: operation not permitted, mkdir ‘C:\Progra m Files\nodejs\node_
  9. opentelemetry+python+jaeger链路追踪相关使用备注
  10. android获取当前系统语言