用python一天计算一个量化因子--第一期,本期教各位计算一个情绪类因子---心理线指标,我们直接来看聚宽上面该因子的计算公式:n日内连续上涨的天数除以n*100,公式非常简单,不难看出该因子讲的就是一个标的在n日内连续上涨的天数在总天数n中的占比,如果计算出来的结果接近100,就说明该标的在n天中有大部分时间是在上涨的。反之亦然。

好,我们直接进入代码实操:这段代码的作用就是计算全市场沪深A股的心理线指标因子以及筛选出因子值最大的几只股票。首先是设置两个全局变量,这个preferrence_period就是总天数也就是n,这里我们设置12,然后这个topn我们写20就是要筛选因子值最大的20只。

然后定义一个计算因子的主函数,做封装处理,这里要着重说明:要计算股票量化因子,肯定需要用python接入股市行情数据,这里我用的是迅投QMT的接口,直接先获取股票的收盘价数据,再编写一个逻辑:如果当天收盘价大于前一天收盘价,连续上涨天数加1。第30行这里就是用代码编写的因子公式,这样计算连涨天数因子的主函数就写好了。

再然后用一个for循环计算沪深A股5000多只股票的连长天数和因子值,并输出最大的20只。

依旧运行看下效果:可以看到程序已经输出了因子值最大的20只标的,由于某些原因结果就不做展示,

好了本期结束,关注我,带你了解更多量化知识。