十战九胜的“久跌必涨”策略

    xiaoxiao2021-03-26  39

    阅读原文:京东量化平台-为投资者提供数据支持、策略开发到策略输出的量化生态服务

    京东金融官方资讯QQ:3414182370 有什么想问的想说的都可以来参与!还有机会获取奖品!

    命题:找出连续下跌的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根阴线,这完全没有问题,这种方法的结果很正确。

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

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

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

    阅读原文:club.jr.jd.com/quant/to

    关注京东量化学院!获取更多最新最全面的量化交易知识!

    quant.jd.com/college/in

    转载请注明原文地址: https://ju.6miu.com/read-658381.html

    最新回复(0)