「qstock」几行代码实现数据获取、可视化到量化选股实战

liftword5个月前 (02-11)技术文章81

引言


不知不觉,公众号“Python金融量化”已走过四个春夏秋冬,发布了78篇原创文章,知识星球会员1370+,感谢大家的一路支持!为回馈广大知识星球会员公众号读者,Python金融量化将之前涵盖量化入门、金融数据、量化分析、策略回测的内容进行整合和系统化,打造更便于个人量化投研分析的框架——qstock。qstock目前处于测试阶段,只面向知识星球会员开放,数据源主要来自tushare pro,之后将会不断增加各种免费的数据源api(包括akshare、efinance、baostock等等)以及数据爬虫,等功能完善后再向所有读者进行开源。

qstock致力于打造个人量化投研分析框架,侧重点在于量化分析、可视化、量化选股和策略回测,其中数据获取部分download_data:整合tushare、akshare、efinance统一接口获取数据,将数据规整化和本地数据库操作。目前实现指数和个股分析(技术指标、量价形态、动量排名、资金流、涨停板、龙虎榜、股东、公司基本面),计划添加包括宏观环境分析(GDP、利率、通货膨胀、失业率、流动性)和市场分析(大盘指数、国债指数、企业债指数、中期票据价格、商品期货、美元人民币、美元指数)、、多因子分析、投资组合与套利、机器学习、深度学习模型、策略回测(pandas向量化回测、backtrader)。

数据获取

如果tushare pro上有超过5000积分,可以使用qstock的TushareData类获取数据。TushareData类专门用来获取tushare pro上的数据并进行规整处理,需要先设置token,如果需要将数据保存本地数据库(系统自带的sqlite3),还需要设置参数my_path(数据库存放路径),无此名称会自动创建文件夹。

如果tushare pro上没有足够的积分token,则使用其他免费的在线数据包获取数据,如akshare,efinance,baostock等,在qstock上使用online_data进行封装。

导入数据下载模块

获取指数数据

更新数据库

获取数据

一行代码获取指数数据


获取全球主要指数价格数据

获取个股数据(默认前复权数据)


包含了25个特征值

获取全部个股行情面板数据(回测+选股)


北向资金数据

个股资金流数据


02数据可视化


整合pyecharts1.x版本的常用画图功能,包括K线图、折线、饼图、热力图、地图、词云图等等。












北向资金流向


个股资金流向可视化


03事件提醒

通过python给个人发送提醒信息,该功能在qstock.common.send_wechat中实现,包括后面的量化选股的提醒。


04量化选股

选股涉及两个方面,一是公司分析,包括财务状况、发展潜力和成长性等,这方面是俗称的基本面分析,可以参考的资料已经汗牛充栋;二是股票分析(包括股价技术形态分析)。 多角度保证在市场大方向上看对的正确率尽可能增加,多层次可以和多角度相互验证,获取超额收益。通过自上而下的分析框架确定投资方向,选择符合投资方向的最优标的。

板块热点

热点板块概念指数




热点板块成分股



涨停板

涨跌停面板数据

获取2017年以来所有涨停板数据(跌停板只需将参数tp设置为'D')

每日连板个股


RPS选股

RPS(欧奈尔中文书是RS),即股票股价走势横截面(与市场其他个股对比)相对强弱,本质是动量策略。一般建议将RPS价格动量结合公司基本面进行选股。

股价相对强度RPS评级:衡量某一股票在过去n日内(如120、250)内相对股市中其他股票的表现(收益率)。市场上的每一只股票都被指定了1-99范围内的某一数值,99代表相对强度最高,RS值为99,说明该股票在收益率表现方面比其他99%的公司更为优秀。寻找真正的领军股,避免上涨滞后和跟风股。欧奈尔建议选择RPS值80或90以上(二八法则),价格形态合适的股票。一旦大盘下跌彻底结束,最先反弹到价格新高的股票基本上就是要寻找的真正领军股。普通股票的突破行为会持续约13周,而最优秀的股票通常在前3周或前4周就突破出来。注意,根据价格形态选股有失败的可能,一旦股价低于买入价的10%,立即卖出止损。

执行选股

MM趋势选股

  • 股票价格高于150天均线和200天均线
  • 150日均线高于200日均线
  • 200日均线上升至少1个月
  • 50日均线高于150日均线和200日均线
  • 股票价格高于50日均线
  • 股票价格比52周低点高30%
  • 股票价格在52周高点的25%以内
  • 相对强弱指数(RS)大于等于70,这里的相对强弱指的是股票与大盘对比,RS = 股票1年收益率 / 基准指数1年收益率 将最后一条去掉,改成结合RPS的相对强弱选股,选择rps_120大于90的个股。


  • MM趋势选股池


MM趋势+120日RPS>90


资金流选股

资金流选股池

此处设置时间周期为3、5、10、20、60日,参数可根据市场情况和自身经验不断调整。


MM趋势+RPS+资金流


每日指标选股


财务指标打分系统

各项指标原来和计算见推文:https://mp.weixin.qq.com/s/3QWoNBOLh-cRyB1YPVtCZA


量价形态选股

参考资料

1、tushare pro、efinance、akshare使用文档

2、
https://blog.csdn.net/m0_63171455/article/details/122252272

相关文章

5分钟教会你:如何用python写一个量化交易程序

在量化交易领域,Python凭借其丰富的库和简洁的语法成为众多开发者的首选语言。下面这篇文章将为你详细介绍如何用Python编写一个简单的交易量化程序,适合有一定编程基础且对量化交易感兴趣的读者。用P...

手把手教你用Python搭建自己的量化回测框架「均值回归策略」

引言大部分量化策略都可以归类为均值回归与动量策略。事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利。否则,价格是随机游走的,交易将无利可图。均值回归是金融学的一个重要概念,指股票价格无论高于...

量化炒股第一步,安装Python_python 量化炒股

很多人的电脑系统是win7,安装的时候会遇到一个问题。就是安装的版本太高,结果电脑系统不兼容。那么就只能降低版本。比如我们一个学员安装的版本太高,就出现了这样的情况:翻译一下就是:这个时候,就只能下载...

1.量化Python基础_量化python怎么学

千里之行,始于足下,如果我们要开发基于Python的量化交易系统,那么首先要学习Python这门语言,关注我们头条号,教您零基础Python量化入门。1.1 Python的历史与特点历史:Python...