社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python说:这个炒股指标是我见过最废的,没有之一

经管之家 • 1 年前 • 147 次点击  


现在随便打开一个炒股APP,发现在股票K线图的下面,都会默认显示一些奇怪的指标。


比如下图这个看上去很高级的KDJ指标:



网上搜索下,发现这个KDJ指标好像都很厉害的样子。如下图所示,它由三根缠绵在一起的折线组成,这3根线的名字分别叫K、D、J



网上说,KDJ指标又叫随机指标,由美国人某某某发明,据说它综合了动量观念强弱指标移动平均线的优点,运用了先进的......


你能不能直接点?


说人话就是,KDJ号称可以预测股票的涨跌


例如,当KDJ中的K线,从下往上穿过D线时,形成"黄金交叉",俗称金叉,这个时候就预示着股价会上涨,应该买入股票。


下图中,某股票在7月21日的金叉之后,股价果真一路上涨:



当K线,从上往下穿过D线时,形成"死亡交叉",俗称死叉,预示着股价会下跌,这个时候就应该卖出股票。


例如在下图中,特锐德这个股票,在03月9日的“死叉”过后,股票确实一直下跌:



看到这里有的朋友可能会觉得,这是炒股秘籍啊!买了就涨、卖了就跌,赶紧投钱,从此走上人生巅峰!


然而我们是熟练使用Python的人!怎么可以随便相信别人说的,而自己不去实证一下呢?


我们接下来就来做一件疯狂的事情。


我们准备通过Python,将一个股票历史上所有的金叉、死叉情况都找出来,并且统计之后的涨跌情况,看看KDJ指标金叉、死叉的买卖点是否真的有效。


如果看完本文后,你仍有相关的疑问,可以扫描下方二维码或加我微信xbx783,和我交流。




01

一只股票


我们先选择万科这个股票,找到它从1990年上市到最近的股价数据,如下图所示:



然后用以下的Python代码计算出万科股票每天的KDJ指标:



就是这么简单,复杂的指标只需要6行代码,Python大法好!


如果你需要相关代码和股票数据的话,可以扫描下方二维码或加我微信xbx783,都是可以直接发给你的。



接下来找出万科历史上所有金叉死叉交易日期,如下图所示:



根据图中数据,截止到最近万科股票历史上总共出现过1444次金叉或死叉,其中金叉、死叉各572次。


我们先统计在这572次金叉后,股票的涨跌情况:



总共出现过572次金叉,在这572次金叉之后的1天后,股票上涨的比例是49%;3天后,上涨比例是51%;5天后上涨的是51%;10天后,上涨比例是50%


上涨的比例居然普遍是50%???!!!


不是说好了金叉之后股票就会上涨的吗?怎么还有一半的情况是下跌的?


这样的话,和抛硬币买卖股票又有什么区别?


那既然金叉不行,我们再来看下死叉。死叉之后股票下跌的概率是否会显著大于50%呢?


下面是数据:



......这是在搞笑吗?


死叉后下跌的比例居然还经常不到50%??难道死叉还成看涨信号了?




02

全部股票


金叉、死叉买入法失效,会不会是万科这个股票不行呢?换个其它股票是不是就行了?或者是因为数据量太少?


为了消除以上的顾虑,那我们索性就把所有股票的金叉、死叉的都找出来看看。


反正对于Python来说就是写个循环遍历下所有股票而已,小事一桩。


很快的跑完程序后发现,历史上所有股票总共出现过170万次金叉和死叉。170万次,这次数据量肯定够大了。


如果你需要相关数据和代码的话,可以扫描下方二维码或加我微信xbx783,都是可以直接发给你的。



下图显示出现金叉和死叉之后股价涨跌图:




在85万次金叉后,股票上涨的概率是50%左右......


在85万次死叉后,股票下涨的概率是50%左右......


怎么还是50%啊!!!




03

低位金叉/高位死叉


某些有一定经验的炒股朋友会说,不能简单的看见金叉就买进、看见死叉就卖出,还有更高级的用法。


比如只有当KDJ三条线处于底部低位的时候,此时金叉买入的成功率更高;或者当KDJ三条线处于顶部高位时,死叉卖出也会更有可能盈利。


那我们就修改下Python程序,根据以下条件进行筛选:


     1 低位金叉:D值小于20且形成金叉

     2 高位死叉:D值大于80且形成死叉


根据程序结果,金叉死叉次数由原来的170万降低为24万


以下是低位金叉和高位死叉之后股价涨跌比例:




结果是,所谓低位、高位,并没有什么用...


稍微有所安慰但又有点讽刺的是:意外发现高位死叉,这个理论上的卖出指标,反而是个很好的买入指标,大约有55%的胜率。


如果你也想和我一样,根据自己的想法修改指标并进行回测的话,可以扫描下方二维码或加我微信xbx783,拿了代码以后亲自尝试。




04

量化投资


以上的数据表明,KDJ这个看上去高大上的指标,其实真的和抛硬币来买卖股票没啥区别。


所以我也不知道为什么,众多的炒股软件会把它当做默认选项来展示。建议将本文转发给正在炒股的朋友,免得被继续误导。


并且,我们刚刚使用Python和数据来验证指标的有效性,并且尝试去优化,整个过程其实就是量化投资当中的回测。


任何客观的投资方法都可以使用Python代码实现,然后利用历史股票数据验证其有效性。在验证赚钱之后再投入实战,而不是盲目的尝试,这就是量化投资最大的优势。



05

后记


文章的最后,和大家分享一点量化投资的心得


很多人问我小白如何开始学习量化投资,有什么可以书单推荐


我的建议是千万不要直接找本书来看。


你找本编程书看,那跟着敲完“Hello World”就结束了;你找本数学书看,那看到第七页的公式就睡着了。



更好的学习方式是做实际的项目,在实践中学习量化策略。


研报就是很好的量化实践项目。


一篇研报就是一个策略,作者都是年薪百万的高学历券商分析师,你要做的就是读懂策略研报,并用代码实现。


在此期间什么不会学什么,哪里不会点哪里,抱着解决问题的心态去学习,事半功倍。


熟读唐诗三百首,不会作诗也会吟。


那么哪里可以获取研报呢?


你可以扫描下方二维码或加我的微信xbx783,我这里有分门别类几万份研报,还会实时更新



我会区分难度,精选之后发给你。



加我微信xbx783后,也可以交流量化投资相关问题,我比较忙,回复的比较慢,但是看到的都会回复。


聊的开心,聊得有缘,很多量化的数据、资料都是可以送给你的。


也可以翻翻我朋友圈的内容,很多量化干货。一些不会公开发的内容,都会在朋友圈说。




联系作者



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/136294
 
147 次点击