Python量化炒股记|只用一分钟选出底部放量跳空上扬的强势股

欢迎你们订阅《Python数据分析实战:构建股票量化交易系统》小册子,学完小册上的知识点后,必定要学以至用的方式来辅助咱们分析股票!算法

前言

最近A股市场行情火爆,对股民们来讲,选到一只强势股是求之不得的事情,由于只有强势股才能让本身的收益跑赢大盘,否则只能眼巴巴看着指数不断上涨,而手上的股票却不动声色,懊恼不已!bash

相信你们都据说了量化交易这个东西了吧!不过目前国内外介绍量化的书籍、课程之类的,大可能是金融背景的人编写的,因此他们的角度和咱们普通股民会有些不一样。偏研究分析的模型算法可能咱们看不懂、用不到,有些量化系统针对于机构操盘搭建的,也不适合小资金的普通股民。微信

那么,什么才是普通股民所适合的量化交易打开方式呢?本文就用一个接地气的选股场景来和你们分享一下,普通股民如何去使用量化交易!app

什么是跳空缺口

K线形态中有一种威力很大的形态——跳空缺口。跳空缺口指相邻的两根K线之间出现了没有交易的空白区间,当今日最低价与昨日最高价之间没有重合部分,称为向上缺口,当今日最高价与昨日最低价之间没有重叠部分,称为向下缺口。工具

股价留下缺口,不只仅是当日投资者激烈情绪的反映,在不少状况下,这种缺口对于判断后市是具备必定意义的。spa

因而咱们结合量化交易这个工具来过滤下近期出现向上跳空缺口的股票,由于这类股票相对来讲后市的走势会更强劲。设计

如何实现

第一步,咱们要获取A市场中目标板块的个股数据,咱们以证券、地产、水泥、银行、医疗保健、保险、半导体、元器件这几个板块为分析标的。日志

获取股票数据的方式有不少,好比Baostock、Tushare、聚宽、通达信……均可以。此处咱们以Tushare为例,先获取股票清单,代码以下所示:code

df_basic = pro.stock_basic(exchange='', list_status='L')
# 剔除2017年之后上市的新股次新股
df_basic = df_basic[df_basic['list_date'].apply(int).values < 20170101]

# 剔除st股
df_basic = df_basic[df_basic['name'].apply(lambda x: x.find('*ST') < 0)]

df_basic = df_basic[(df_basic["industry"] == u"证券") | (df_basic["industry"] == u"全国地产")
                    | (df_basic["industry"] == u"银行") | (df_basic["industry"] == u"水泥")
                    | (df_basic["industry"] == u"保险") | (df_basic["industry"] == u"医疗保健")
                    | (df_basic["industry"] == u"半导体") | (df_basic["industry"] == u"元器件")]
get_codes = dict(zip(df_basic.ts_code.values, df_basic.industry.values]))                   
复制代码

而后就经过一个循环,用pro.daily(ts_code=code_val, start_date=start_val, end_date=end_val) 这个接口获取个股近一个月的数据。cdn

到这一步,咱们的数据环节就解决了。

第二步,咱们应该设计一个策略去判断跳空缺口,这里咱们的算法思路以下:

  • 若是今日是上涨趋势,今日的最低价大于昨日的最高价,而且达到设定的阈值时为向上跳空缺口;

  • 若是今日是下跌趋势,昨天最低价大于今日最高价,而且达到设定的阈值时为向下跳空缺口。

咱们以此为目的编写一个策略,关键代码以下所示:

for kl_index in np.arange(0, self.stock_dat.shape[0]):
    today = self.stock_dat.iloc[kl_index]  # 若版本提示已经弃用 可以使用loc或iloc替换
    today = today.copy()
    if (today['changeRatio'] > 0) and ((today.Low - today.preClose) > jump_threshold):
        # 向上跳空 (今最低-昨收)/阈值
        today['jump_power'] = (today.Low - today.preClose) / jump_threshold
        self.jump_pd = self.jump_pd.append(today)
    elif (today['changeRatio'] < 0) and ((today.preClose - today.High) > jump_threshold):
        # 向下跳空 (昨收-今最高)/阈值
        today['jump_power'] = (today.High - today.preClose) / jump_threshold
        self.jump_pd = self.jump_pd.append(today)
复制代码

光是跳空幅度大于阈值还不够,咱们能够结合成交量去叠加判断,毕竟底部出现放量跳空上涨时,说明该股更增强势。

说了这么多,最后让咱们结合数据去进行分析,运行下程序看看能不能选出强势股。

咱们摘取其中的一些日志来分析下看看!

changeRatio表示涨跌幅;preClose表示昨日收盘价;jump_power表示跳空能量。

叠加的选择条件是:成交量大于近期平均值*0.5;涨幅大于2%。

好比检测000783时,咱们发现了6月15日和7月6日分别出现了符合条件的跳空缺口。尤为是6月15日出现跳空缺口后出现了几个交易的调整,为下一次拉升蓄势。若是咱们在6月15的时候可以关注到这个跳空缺口,是颇有指导意义的!

总结

经过这个简单而又实用的股票量化场景,但愿可以给广大朋友对于量化交易有一个直观的感觉。

而后,咱们应该升级本身的炒股方式了,把本身之前炒股的那套方法,抽象成策略模型,用量化的方法去全市场回测评估,而后让程序帮助咱们监测行情的走势。这个才是普通股民所适合的量化交易打开方式!

————————————————————————————————————————————————

你们若是想对涉及到的知识点进行更全面、更体系的从0-1方式的介绍,这里推荐给你们个人书籍《Python股票量化交易从入门到实践》!天猫、京东、当当全面开售!

同时也欢迎你们关注个人微信公众号【元宵大师带你用Python量化交易】了解更多Python量化交易相关内容

相关文章
相关标签/搜索