命题:找出连续下跌的K线

实现平台:京东量化

语言:python


        今天有个朋友问我,能不能找到那些连续下跌6天以上的个股,对这样的个股进行买入,概率上说应该风险较小,听起来蛮不错。

        果真是如此吗?让事实说话,下面我们一起编码,把连续下跌的股票找出来。

        在写代码前,我们要想清楚实现思路:

        第一步:如何定义连续下跌:一般来说,可以取得近20天的收盘数据,然后循环去判断。

这并不是个好方法,因为运算量很大,且需要编写的代码也多。下面我想到一个方法,就是用groupby模块的分组功能,然后构造一个迭代器这样,几乎不需要用到一次循环就可以得到需要的数值。

        

        我们先来了解一下itertools.groupby

 

        假设一个lst是[1,1,1,-1,-1]我们用分组得到

Out=[(key,len(list(group))) for key,group in itertools.groupby(lst)]

        就会得到:

        [(1,3),(-1,2)]

这里1代表上涨,-1代表下跌,那么得到连续下跌的K线数就是判断lst[-1][0]是不是等于-1,如果是,返回lst[-1][1]就是连续下跌的K线数值。看下图是不是:

                科普了相关知识后,第二步,我们到[研究]里去实践一下:


上面返回的数组已经把当天的涨幅情况列出来了,但这个数值我们要把它变成1或者是-1。怎么办?

用自己除自己就可以了,把上面的代码一并加入,看下面。



            创业板指数在元月1号至20号间产生了连续下跌的8根阴线,这完全没有问题,这种方法的结果很正确。

最后,我们只需要完善一下代码,那么找出一段时间内最大的连续阴线数就出来了,完整代码在下面。

我们只把算法应用到策略中就行了。代码中没有用到循环,所以速度很快。

说了这么多,最后策略回测结果怎么样呢?我还是分享一下吧。

3条回复 添加回复
剑_雪

策略有生命期,在单边下跌趋势中,此策略无效,特别是股灾。


2017-01-25 10:33:12
0527bless

交易软件上都有智能选股,条件选股. 红三兵,三连跌,蜻蜓点水等等


2017-12-27 17:57:42
0527bless

限制条件少了选出的股票不准确;限制的条件多了查无此股.量化交易好像是捕鱼的工具用好 了捕鱼快.但是如何捕鱼如何交易还得靠人.


2017-12-27 18:04:46
1
提交
Copyright © 2004-2017 京东JD.com 版权所有 | 投资有风险,购买需谨慎