滑动平均线的notebook画法
滑动平均线,本程序解决了如何在matplotlib中使用中文显示,环境python2.7 最好使用 anaconda 环境
使用sns似使得图片更加美观,不多说,上代码
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rc
rc('mathtext', default='regular')
from matplotlib import dates
import matplotlib as mpl
import seaborn as sns
sns.set_style('dark')
%matplotlib inline
font =mpl.font_manager.FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=14)
stock_data = ts.get_k_data("600600")
# 将数据按照交易日期从远到近排序
stock_data.sort_values('date', inplace=True)
# ========== 计算移动平均线
# 分别计算5日、20日、60日的移动平均线
# 计算简单算术移动平均线MA - 注意:stock_data['close']为股票每天的收盘价
ma_list = [5, 10, 20, 60]
for ma in ma_list:
stock_data['ma' + str(ma)] = stock_data.close.rolling(window=ma, center=False).mean()
# 计算指数平滑移动平均线EMA
for ma in ma_list:
stock_data['ema' + str(ma)] = stock_data.close.ewm(ignore_na=False,span=ma,min_periods=0,adjust=True).mean()
bar_data = stock_data[['date','volume','close','ma5','ma10','ma20','ma60','ema5','ema10','ema20','ema60']]
bar_data = bar_data[60:60+340]
bar_data.index = range(len(bar_data))
fig = plt.figure(figsize=(14,10))
fig.set_tight_layout(True)
ax1 = fig.add_subplot(211)
ax1.bar(bar_data.index, bar_data.volume, align='center', width=0.4)
ax2 = ax1.twinx()
ax2.plot(bar_data.index, bar_data.close, '-', color='r')
ax2.plot(bar_data.index, bar_data.ma5, '-', color='w')
ax2.plot(bar_data.index, bar_data.ma10, '-', color='y')
ax2.plot(bar_data.index, bar_data.ma20, '-', color='m')
ax2.plot(bar_data.index, bar_data.ma60, '-', color='g')
ax1.set_ylabel(u"成交量(万)",fontproperties=font, fontsize=16)
ax2.set_ylabel(u"均线 ",fontproperties=font, fontsize=16)
ax1.set_title(u"蓝色柱子(左轴)为成交量,曲线为均线",fontproperties=font,fontsize=16)
# plt.xticks(bar_data.index.values, bar_data.barNo.values)
ax1.set_xlabel(u"平均线",fontproperties=font, fontsize=16)
ax1.set_xlim(left=-1, right=len(bar_data))
ax2.set_ylim(bottom=-0.5*max(bar_data.close))
ax1.grid()
ax1 = fig.add_subplot(212)
ax1.bar(bar_data.index, bar_data.volume, align='center', width=0.4)
ax2 = ax1.twinx()
ax2.plot(bar_data.index, bar_data.ema5, '--', color='w')
ax2.plot(bar_data.index, bar_data.ema10, '--', color='y')
ax2.plot(bar_data.index, bar_data.ema20, '--', color='m')
ax2.plot(bar_data.index, bar_data.ema60, '--', color='g')
ax1.set_ylabel(u"成交量(万)",fontproperties=font, fontsize=16)
ax2.set_ylabel(u"滑动平均线",fontproperties=font, fontsize=16)
ax1.set_title(u"蓝色柱子(左轴)为成交量,曲线为滑动平均线",fontproperties=font, fontsize=16)
# plt.xticks(bar_data.index.values, bar_data.barNo.values)
ax1.set_xlabel(u"滑动平均线",fontproperties=font,fontsize=16)
ax1.set_xlim(left=-1,right=len(bar_data))
# ax2.set_ylim(bottom=-0.5*max(bar_data.smartS))
ax1.grid()
运行结果如下
作者:readilen
链接:http://www.jianshu.com/p/2050d6c54d59
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
滑动平均线的notebook画法的更多相关文章
- SSRS----关于图表参考线(平均线)的添加
在开发报表的时候,遇到了一个问题,客户需要在气泡图上添加水平和竖直两条平均线(结果参考如下图). 个人知识背景 一般添加参考线本身是有一个相关的设置的,但一般都是相对于Y值,即平行于X轴的.用类似的方 ...
- echarts彩虹柱状图 每个bar显示不同颜色, 标题在不同位置 ,工具中有可以直接保存为图片下载,平均线的添加
可以参考: https://echarts.baidu.com/echarts2/doc/example.html https://echarts.baidu.com/echarts2/doc/doc ...
- EchartJS平均线、最大值、最小值
1.先来看一个没有平均线.最大值.最小值的简单实例 option = { title: { text: '未来一周气温变化', subtext: '纯属虚构' }, tooltip: { trigge ...
- Excel技巧--图表添加平均线为指标
如上图,如果在柱状图有一平均指标线,就能很直观地显示各柱状值是否高于或低于平均值这个指标. 添加方法: (1)为表格制作一个柱状图: 2.对图表点右键,菜单选择“更改图表类型”.对话框如下选择: 3. ...
- echarts分组柱状图的前后台处理 带平均线显示
原生的echarts使用: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /&g ...
- WeQuant交易策略—简单均线
简单双均线策略(Simple Moving Average) 策略介绍简单双均线策略,通过一短一长(一快一慢)两个回看时间窗口收盘价的简单移动平均绘制两条均线,利用均线的交叉来跟踪价格的趋势.这里说的 ...
- 5日均线MACD
1.5日均线: 5日均线是股市术语,就是股票5天的成交价格或指数的平均值,所对应的是股价的5日均线和指数的5日均线(5MA).均线指标实际上是移动平均线指标的简称. 一般在K 线图中会有3 条或4 条 ...
- R与金钱游戏:均线黄金交叉1
双11临近的我发现自己真的很穷很穷很穷(重要的问题说三遍)-- 贫穷催人上进.于是我就寻思着在空闲时间自己捣鼓一下钱生钱的游戏是怎么玩的,毕竟就算注定做韭菜也要做一根有知识有理想的韭菜. 第一个要玩的 ...
- 数据分析04 /基于pandas的DateFrame进行股票分析、双均线策略制定
数据分析04 /基于pandas的DateFrame进行股票分析.双均线策略制定 目录 数据分析04 /基于pandas的DateFrame进行股票分析.双均线策略制定 需求1:对茅台股票分析 需求2 ...
随机推荐
- Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class
在使用spark sql时一直运行报这个错误,最后仔细排查竟然是引入了两个scala library .去除其中一个scala的编译器即可 Exception in thread "main ...
- Django Rest Framework(3)-----APIView与Viewsets
REST framework提供了一个APIView类,它是Django的View类的子类. REST framework主要的几种view以及他们之间的关系: mixins 到目前为止,我们使用的创 ...
- kernel内核配置说明
内核过程中的配置这一步做详细的说明吧,总结一下,多数内容源于网上的多篇文章. 首先,配置时可能出现的选项,对其选择先来个说明吧. Typically, your choices for each op ...
- Windows Server 2008 R2(X64) MSDN镜像简体中文版与英文版ISO下载及Key激活码
Windows Server 2008 R2 MSDN ISO镜像简体中文版 文件名:cn_windows_server_2008_r2_standard_enterprise_datacenter_ ...
- java基础语法 数组
数组是相同数据类型元素的集合 数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型. 在java中如果想要保存一组基本类型的数据,使用数组:如果想保存一组对象或者其 ...
- open-falcon设置报警邮件
下载编译好的二进制包并解压: https://files.cnblogs.com/files/dylan-wu/mail-provider.tar.gz [root@localhost work]# ...
- BNUOJ 26474 Bread Sorting
/*给出n个原始顺序的数,再给出要排成目标状态顺序,每次从第一个数列中选择三个,把这三个数中最右边的数放在最左边,然后其他两个数右 移一个单位,为你从原始状态能不能排序成目标状态. 本人YY的结论,从 ...
- 微信小程序:页面配置 page.json
微信小程序:页面配置 page.json 一.页面配置 page.json 如果整个小程序的风格是蓝色调,那么可以在 app.json 里边声明顶部颜色是蓝色即可. 实际情况可能不是这样,可能你小程序 ...
- 20155201 2016-2017-2 《Java程序设计》第九周学习总结
20155201 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC全名JavaDataBaseConnecticity,是Jav ...
- Spring Boot与数据
SpringBoot 着眼于JavaEE! 不仅仅局限于 Mybatis .JDBC. Spring Data JPA Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数 ...