【量化投资– Python、pandas技巧系列】历史数据告诉你:KDJ指标选股有效吗?
关键词:数据分析、量化投资 python、数据分析师
本系列帖子“量化小讲堂”,通过实际的案例让大家知道如何使用Python、pandas进行金融数据处理。帖子主要面向来自金融领域的入门学习者,大神请轻拍。希望能对大家有帮助。
之前的系列文章:
【量化小讲堂 – python & pandas技巧系列】使用python计算移动平均线
【量化小讲堂 – Python、pandas技巧系列】windows下如何安装Python、pandas
【量化小讲堂 – Python、pandas技巧系列】计算创业板平均市盈率
【量化小讲堂- Python、pandas技巧系列】极简方法将日线数据转为周线、月线或其他周期
注:很多小伙伴问我之前文章中用到的数据在哪里下载,是在这个地址,这里可以下载到所有股票、从上市日起的交易数据,财务数据。
【量化小讲堂- Python、pandas技巧系列】历史数据告诉你:KDJ指标选股有效吗?
KDJ指标是最常用的技术指标之一,它的作用是判断股票未来短期的走势。很多书店里卖的炒股类书籍都会推荐这个指标,并认为KDJ指标低位金叉是一个非常好的买点,还会给出几个很漂亮的K线图形来印证他们的观点。少数的几个例子不能让人信服,KDJ指标低位金叉选股效果到底好不好,一定要用大样本说话。
本篇文章将找出历史上所有股票的全部低位金叉情况,并且统计这些股票在金叉之后若干个交易日内的涨幅,看是否有显著的正收益。通过这个案例将着重向大家介绍pandas的如下功能:
- 使用pandas导入股票数据
- 如何计算KDJ指标
- 如何计算KDJ指标金叉
- shift()函数的用法
- append()函数的用法
下面开始正文:
需要找出历史上所有股票的全部低位金叉情况,那么首先必须要有股票的历史日线交易数据,从这个网站可以下载到所有股票的历史日线数据,可以作为我们计算的原始数据。数据下载下来是下图这个样子:
每个股票一个csv文件
每一行是每一天的数据
这个日线数据有以下的字段:
【code】 股票的代码,上证股票以sh开头,深证股票以sz开头
【date】 交易日期
【open】 开盘价
【high】 最高价
【low】 最低价
【close】 收盘价
【change】 涨跌幅,复权之后的真实涨跌幅,保证准确
【volume】 成交量
【money】 成交额
【traded_market_value】 流通市值
【market_value】 总市值
【turnover】 换手率,成交量/流通股本
【adjust_price】 后复权价,复权开始时间为股票上市日,精确到小数点后10位
【report_type】 最近一期财务报告的类型,3-31对应一季报,6-30对应半年报,9-30对应三季报,12-31对应年报
【report_date】 最近一期财务报告实际发布的日期
【PE_TTM】 最近12个月市盈率,股价 / 最近12个月归属母公司的每股收益TTM
【PS_TTM】 最近12个月市销率, 股价 / 最近12个月每股营业收入
【PC_TTM】 最近12个月市现率, 股价 / 最近12个月每股经营现金流
【PB】 市净率,股价 / 最近期财报每股净资产
有了原始数据之后就是代码,下面是代码的截图,里面有详细的注释,有问题可以留言,附件中是程序的源码,回复即可下载。
把数据下载下来,直接运行代码,就可以看到输出的结果了。这里就不贴出KDJ选股具体的效果了,这样大家可能更有动力钻研下程序吧~
反正总体选股效果不大好,在总过出现的51万次KDJ金叉状况下,接下来股票会上涨的概率是50%左右。
思考题:
本程序其实是挑出了所有KDJ金叉的股票,并不是低位KDJ金叉。有人认为低位KDJ金叉效果更好,例如D值小于20时的金叉。在现有程序上进行小小的改动就可以挑选出低位KDJ金叉的股票,大家感兴趣可以看看选股效果怎么样,说实话具体怎么样我也没有试过。
之后会讲的内容:
现在想到的之后几期会讲的内容:
【量化小讲堂 – python & pandas技巧系列】使用python计算MACD指标
【量化小讲堂 – 投资策略系列】KDJ、MACD指标双金叉选股效果
【量化小讲堂 – python & pandas技巧系列】如何处理逐笔数据
更多的内容还没想好,大家要是有什么想知道可以留言回复哈
附件中是Python程序文件,免费,回复可见:
本帖隐藏的内容
KDJ指标选股有效吗.zip (1.46 KB, 下载次数: 1090)
数据分析交流QQ群: 331864445 量化交流QQ群:438143420,欢迎加入。