点及财经,股票期货专业投机者。

前言
所谓"强势",就是力度大,势头猛!而"强势股",则是指最近一段时间内上涨幅度较大的股票。
由于股票不能做空,我们只统计上涨中的强势股,下跌中的强势股就不做统计。

说到"强势股",这不得不提众所周知的"动量效应"。
简单来说就是,当前上涨幅度较大的股票在未来一段时间,很可能会一直上涨。否则,很可能会一直保持强势下跌或处于弱势状态。
如下图所示:

未来上涨或下跌并不是必然的,但是具有较大的概率优势。
衡量动量强弱的方法有很多,每个人都有自己一套标准。有的用N日涨跌幅、波动率等等。

作者接下来,以N日涨跌幅大小作为评判"强势"的标准,借助Tushare和天勤量化实现强势股的定时跟踪。
Python 实现"动量选股"功能!
想要实现这一功能,首先需要用到Tushare,获取所有股票代码。然后使用天勤量化,获取数据并计算涨跌幅,进行排序后得到涨幅最大的前5只股票。
如下图:筛选出的5只强势股。

以下是具体实现过程:
1. 导入tushare、tqsdk等包。并获取股票代码。

2. 将股票代码标准化。我们获取到的股票代码,是tushare平台的有一定的区别,因此需要转换成天勤可识别的股票代码格式。

在Tushare中,股票代码格式为:股票代码+交易所。而天勤中的股票代码格式为:交易所+股票代码。
如下图所示:(天勤)

3.获取股票k线数据及N日涨跌幅的计算。
获得数据之后,还要对每个只股票进行N日涨跌幅的计算,分别存入代码、涨跌幅列表中。后面会用将其存入一个DataFrame中去进行降序排序,N = 10。
代码:

run:

4.开启多线程获取股票N日涨跌幅数据,并将股票代码和涨跌幅值一起存入df中进行排序。
1)由于股票数量有3902只股票,如果不采用多任务执行会使得整个功能执行效率非常慢。因此,作者采用多线程来对这几千只股票进行计算。
代码:

启动多线程:

run:

2)筛选“强势品种”,作者选取前5只强势股。
代码:

3)通过群机器人向企业微信群,定时推送消息。
首先,请保证你的电脑或手机已经*载下**了企业微信。
① 电脑端配置机器人。右键点击“添加群机器人”,

- 添加机器人。

- 复制你的Webhook地址,通过对这个地址发送post请求的方式,推送想要的信息。切勿泄露这个地址!

注:手机端的企业微信机器人配置,读者自行尝试,只需要得到这个地址即可。
② 向Webhook地址,发送post请求。将筛选出的强势股实时推送到企业微信群。

③ 定时推送信息。我们如果需要让程序在特定的时间推送股票的话,可以用一个时间来进行限制。
比如我只希望每天下午15:00,才开始推送。
代码:

这样的话,程序会一直保持运行状态并在15:00点筛选股票,完毕后通过企业微信群机器人进行推送。
run:

4)检验推送的股票是否是“强势股票”。
上图的前两只是新股,作者并没有对新股进行剔除。那么我们来看看其他3只股票。
- 京能置业

- 君正集团

- 首都在线

小结。
这就是整个选股及消息推送的功能实现。由于股票数量比较大,因此采用多线程进行计算,节省大量的时间。
最后
“强者恒强”的逻辑,并不只存在与股票市场中,期货等市场中也有它的用武之地!
当然了,文章仅仅实现这个简单的功能,选股因子较少,筛选的标准较单一。读者可根据自己的需求进行开发。
文章及策略代码仅供交流学习,切勿直接实盘。