接着上一篇用python对科大讯飞股票分析,利用MA5和Ma20的指标,对股票的买卖点做了了一个简单的分析。
下面,继续趁热打铁,结合前面的MA5和MA20来继续分析。最好一眼能看到买卖点。
如下图:
在这个图里,X是时间,Y是2--2的区间。然后橙色线是缩放后的股票收盘价,蓝色的是分析出来的买卖点曲线。
可以对比看下,股票低点时候,蓝线建议买入点。当股票高点,蓝线建议卖出。还是结合的比较好。
如果还要深入挖掘,可以把程序自动化,买卖点出现时候,可以自动提示我们,这样“一眼看到买卖点”了。
下面是源码:
其中要点是求出ma5和ma20的差,并求出其中的“趋势”。这样,按照变化趋势来标注买卖点。并且为了和实际做对比,将科大讯飞的收盘价按比例做缩小,标注出来。
代码第15、16行中,函数annotate()作用是在图形中添加注释,其中第一个参数是注释的内容,xy设置箭头及注释内容显示的位置,facecolor设置箭头的颜色,shrink设置标尺缩小的比例。
第23,24行代码中:
skiprows=0指定从第0行开始读取数据;
index_col:告诉pandas使用’date’列作为索引;
parse_dates:这是指定含有时间数据信息的列;
date_parser=dateparse1:指定将输入的字符串转换为可变的时间数据。
第25行代码中,index()函数用于从列表中找出某个值第一个匹配项的索引位置。
第27,28行代码中,函数np.sign()作用是返回数组中各元素的正负符号,用1和-1表示。
尽管运行代码后能得到结果,但是代码报错了:RuntimeWarning:invalidvalueencounteredinsign
报错的原因是在第28行代码中符号遇到无效值,可我一直弄不明白是哪里出错