python閲忓寲鑲$エ鎸囨爣 (python閲忓寲浜ゆ槗鑲$エ閫夎偂绛栫暐浠g爜)

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

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

前言

所谓"强势",就是力度大,势头猛!而"强势股",则是指最近一段时间内上涨幅度较大的股票。

由于股票不能做空,我们只统计上涨中的强势股,下跌中的强势股就不做统计。

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

说到"强势股",这不得不提众所周知的"动量效应"。

简单来说就是,当前上涨幅度较大的股票在未来一段时间,很可能会一直上涨。否则,很可能会一直保持强势下跌或处于弱势状态。

如下图所示:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

未来上涨或下跌并不是必然的,但是具有较大的概率优势。

衡量动量强弱的方法有很多,每个人都有自己一套标准。有的用N日涨跌幅、波动率等等。

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

作者接下来,以N日涨跌幅大小作为评判"强势"的标准,借助Tushare和天勤量化实现强势股的定时跟踪。

Python 实现"动量选股"功能!

想要实现这一功能,首先需要用到Tushare,获取所有股票代码。然后使用天勤量化,获取数据并计算涨跌幅,进行排序后得到涨幅最大的前5只股票。

如下图:筛选出的5只强势股。

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

以下是具体实现过程:

1. 导入tushare、tqsdk等包。并获取股票代码。

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

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

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

在Tushare中,股票代码格式为:股票代码+交易所。而天勤中的股票代码格式为:交易所+股票代码。

如下图所示:(天勤)

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

3.获取股票k线数据及N日涨跌幅的计算。

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

代码:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

run:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

4.开启多线程获取股票N日涨跌幅数据,并将股票代码和涨跌幅值一起存入df中进行排序。

1)由于股票数量有3902只股票,如果不采用多任务执行会使得整个功能执行效率非常慢。因此,作者采用多线程来对这几千只股票进行计算。

代码:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

启动多线程:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

run:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

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

代码:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

3)通过群机器人向企业微信群,定时推送消息。

首先,请保证你的电脑或手机已经*载下**了企业微信。

① 电脑端配置机器人。右键点击“添加群机器人”,

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

  • 添加机器人。

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

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

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

注:手机端的企业微信机器人配置,读者自行尝试,只需要得到这个地址即可。

② 向Webhook地址,发送post请求。将筛选出的强势股实时推送到企业微信群。

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

③ 定时推送信息。我们如果需要让程序在特定的时间推送股票的话,可以用一个时间来进行限制。

比如我只希望每天下午15:00,才开始推送。

代码:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

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

run:

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

4)检验推送的股票是否是“强势股票”。

上图的前两只是新股,作者并没有对新股进行剔除。那么我们来看看其他3只股票。

  • 京能置业

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

  • 君正集团

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

  • 首都在线

python鑲$エ閲忓寲鍐崇瓥,python閲忓寲閫夎偂杞欢

小结。

这就是整个选股及消息推送的功能实现。由于股票数量比较大,因此采用多线程进行计算,节省大量的时间。

最后

“强者恒强”的逻辑,并不只存在与股票市场中,期货等市场中也有它的用武之地!

当然了,文章仅仅实现这个简单的功能,选股因子较少,筛选的标准较单一。读者可根据自己的需求进行开发。

文章及策略代码仅供交流学习,切勿直接实盘。