1、下载数据

​ 从恒生电子出品的恒有数金融数据社区,获取股票日行情数据。
下载2021年3月1号~2021年6月1号,恒生电子(600570.SH)的行情数据为例:

# 加载取数与绘图所需的函数包
import pandas as pd
import datetime
from hs_udata import set_token,stock_quote_daily
from mpl_finance import candlestick_ohlc
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题def GetData(stock_code,start,end):#stock_code:获取股票数据的股票代码#      start:开始日期#        end:结束日期date_start=datetime.datetime.strptime(start,'%Y-%m-%d')date_end  =datetime.datetime.strptime(end,'%Y-%m-%d')data = pd.DataFrame([])while date_start<date_end:# 获取日行情数据,接口说明见 https://udata.hs.net/datas/332/# adjust_way枚举值为:0-不复权,1-前复权,2-后复权,此处取前复权data_i = stock_quote_daily(en_prod_code=stock_code,trading_date=date_start.strftime('%Y%m%d'),adjust_way = 1)data=pd.concat([data,data_i],axis=0)      # 将行情数据按行拼接date_start+=datetime.timedelta(days=1)    # 日期变量自增# 返回行情数据return data#1、获取行情数据
stock_code = "600570.SH"                        # 恒生电子 股票代码是600570.SH
start='2021-03-01'
end  ='2021-06-01'
set_token(token = 'xxxxxxxxxxxxxxxxxxxxxxxx')   # 注册恒有数之后,获取并替换token
data = GetData(stock_code,start,end)#2、数据处理
data = data.loc[data.turnover_status=='交易']                            # 剔除非交易日
data_price = data[['trading_date','open_price','high_price','low_price','close_price','business_amount']]                    # 选取日期与高开低收价格
data_price.set_index('trading_date', inplace=True)                      # 将日期作为索引
data_price = data_price.astype(float)                                   # 将价格数据类型转为浮点数
# 将日期格式转为 candlestick_ohlc 可识别的数值
data_price['Date'] = list(map(lambda x:mdates.date2num(datetime.datetime.strptime(x,'%Y-%m-%d')),data_price.index.tolist()))data_price

执行结果如下:

2、移动均线的计算

#3、计算均值
data_price['MA5']=data_price['close_price'].rolling(window=5).mean()
data_price['MA10']=data_price['close_price'].rolling(window=10).mean()
data_price['MA20']=data_price['close_price'].rolling(window=20).mean()
data_price

3、绘制移动均线

#4、绘制图片
fig = plt.figure(figsize=(12,10))
grid = plt.GridSpec(12, 10, wspace=0.5, hspace=0.5)
#(1)绘制K线图
# K线数据
ohlc = data_price[['Date','open_price','high_price','low_price','close_price']]
ohlc.loc[:,'Date'] = range(len(ohlc))     # 重新赋值横轴数据,绘制K线图无间隔
# 绘制K线
ax1 = fig.add_subplot(grid[0:8,0:12])   # 设置K线图的尺寸
candlestick_ohlc(ax1, ohlc.values.tolist(), width=.7, colorup='red', colordown='green')
# (2)绘制均线
ax1.plot(range(len(data_price)), data_price['MA5'], color='red', lw=2, label='MA (5)')
ax1.plot(range(len(data_price)), data_price['MA10'], color='blue', lw=2, label='MA (10)')
ax1.plot(range(len(data_price)), data_price['MA20'], color='green', lw=2, label='MA (20)')
# 设置标注
plt.title(stock_code,fontsize = 14)       # 设置图片标题
plt.ylabel('价 格(元)',fontsize = 14)   # 设置纵轴标题
plt.legend(loc='best')                    # 绘制图例
ax1.set_xticks([])                        # 日期标注在成交量中,故清空此处x轴刻度
ax1.set_xticklabels([])                   # 日期标注在成交量中,故清空此处x轴 #(3)绘制成交量
# 成交量数据
data_volume = data_price[['Date','close_price','open_price','business_amount']]
data_volume['color'] = data_volume.apply(lambda row: 1 if row['close_price'] >= row['open_price'] else 0, axis=1)        # 计算成交量柱状图对应的颜色,使之与K线颜色一致
data_volume.Date = ohlc.Date
# 绘制成交量
ax2 = fig.add_subplot(grid[8:10,0:12])  # 设置成交量图形尺寸
ax2.bar(data_volume.query('color==1')['Date'], data_volume.query('color==1')['business_amount'], color='r')                    # 绘制红色柱状图
ax2.bar(data_volume.query('color==0')['Date'], data_volume.query('color==0')['business_amount'], color='g')                    # 绘制绿色柱状图
plt.xticks(rotation=30)
plt.xlabel('日 期',fontsize = 14)                               # 设置横轴标题
# 修改横轴日期标注
date_list = ohlc.index.tolist()           # 获取日期列表
xticks_len = round(len(date_list)/(len(ax2.get_xticks())-1))      # 获取默认横轴标注的间隔
xticks_num = range(0,len(date_list),xticks_len)                   # 生成横轴标注位置列表
xticks_str = list(map(lambda x:date_list[int(x)],xticks_num))     # 生成正在标注日期列表
ax2.set_xticks(xticks_num)                                        # 设置横轴标注位置
ax2.set_xticklabels(xticks_str)                                   # 设置横轴标注日期
plt.show()

执行结果如下:

使用Python绘制移动均线相关推荐

  1. python绘制动态k线及均线_Python绘制股票移动均线的实例

    1. 前沿 移动均线是股票最进本的指标,本文采用numpy.convolve计算股票的移动均线 2. numpy.convolve numpy.convolve(a, v, mode='full') ...

  2. Python绘制加强版K线图:增加均线及成交量

    在之前,我们讲解了如何用Python绘制K线图.当时就有人问能否加入均线元素,当然能啦!不光均线,今天我还要把成交量给加上去. 获取数据并加工 为了计算年线(250日均线),我们需要保证数据至少在一年 ...

  3. python均线选股_python选股模型均线,已知股票数据,如何用Python绘制k线日对应数据...

    Q1:已知股票数据,如何用Python绘制k线日对应数据 我没遇到过 只是自己写过 有点经验 先确定时间片 然后再把tick插入就行了 Q2:使用python实现ema(指数移动平均的计算) a =  ...

  4. python画k线_python画k线,python绘制动态k线及均线

    内容导航: Q1:k线图上怎么画线 一般你看K线软件都有画图功能,以同花顺为例,在上方菜单栏找到画图,点击,会在菜单栏下方一行或者屏幕最右边一列出现相应的画图工具. Q2:求教使用python绘制K线 ...

  5. Python绘制股票K线图

    目录 1 股票K线图知识了解 2 用Python绘制股票K线图 2.1 安装绘制K线图的mpl_finance库 2.2 引入相关库 2.3 用Tushare库获取股票基本数据 2.4 日期格式调整及 ...

  6. Python绘制简单版K线图

    不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典.很重要的工具.在K线图中,它会绘制每天的最高价.最低价.开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助. 一 ...

  7. Python绘制MACD指标图

    写在前面 MACD简介 用到的主要Python库 MACD详细介绍 Python代码 总结 参考文献 推荐阅读 2020.8.1更新 写在前面 最近正在研究算法交易,看了几本英文原版书.本文总结自Pa ...

  8. 用Python绘制专业的K线图【含源代码】

    使用Python绘制一幅专业的K线图,是量化投资和金融数据分析的必备功课. 下面我将从K线图简介.数据获取.K线图绘制及成交量绘制等方面,结合源代码,一步步实现专业K线图的绘制. K线图简介 K线图又 ...

  9. Python绘制RSI相对强弱指标图

    写在前面 相对强弱指标(RSI)简介 RSI公式详解 参数设置&公式 用到的主要Python库 Python代码&详解 参考文献 推荐阅读 写在前面 本文代码部分总结自Packt出版社 ...

最新文章

  1. CentOS 查看IP,端口 修改IP,打开端口生效
  2. 学生籍贯信息管理系统c语言,学生籍贯信息管理系统(c).doc
  3. html中选择样式,html中css三种常见的样式选择器 zz
  4. 换硬币c语言编程_为什么大多数程序员都会学C语言的5大原因!什么原因让你学不会?...
  5. C# 如何获取屏幕分辨率缩放比例
  6. 数学--数论--HDU1222 狼和兔子(最大公约数)
  7. .net core高并发_高并发下的Node.js与负载均衡
  8. flask返回数据类型
  9. 微信小程序傻瓜制作_傻瓜式教程:做一个带优惠券的微信小程序
  10. 计算机应用基础文字处理测试题,国家开放大学《计算机应用基础》考试与答案形考任务模块2Word2010文字处理系统—客观题测验答案.docx...
  11. [LeetCode] Merge Sorted Array
  12. 第二章、使用变量、操作符和表达式
  13. JDK16和JDK8共存与切换
  14. jQuery视频展示效果实例
  15. java验证码短信发送_java发送短信验证码
  16. word2003流程图变成图片_Microsoft Office 2003(word2003)制作流程图的操作方法介绍
  17. linux下安装xamp
  18. wps自动插入文献_WPS中怎样自动生成参考文献?方法超级简单!
  19. 算法提高 解二元一次方程组
  20. 全网最全开源工业缺陷数据集汇总

热门文章

  1. 不可不知的10款3dMax展UV插件
  2. PAT-B 1036. 跟奥巴马一起编程(15)(15 分) 画方型字符
  3. 如花搞笑图片集锦(转贴)
  4. Python计算分位点与逆运算:根据给定的值,计算在序列中的分位水平
  5. 计算机毕业设计选题建议
  6. iherb中文海淘攻略-- IHERB目前的优惠
  7. 浓淡相宜间,是灵魂的默契;
  8. 基于Pygame中Pygame模块的大战外星人
  9. 【征稿】第三届电子、信息与计算技术前沿国际会议(ICFEICT 2023)
  10. 自平衡自行车本质就是一个惯性飞轮,本质就是一样的!!!