import tushare as ts
import numpy as np
import pandas as pd
import datetime as dt
import matplotlib.pyplot as mp
import matplotlib.dates as md
#引入自己的api,把股票数据引入放到df里面
pro = ts.pro_api('ee5e027680ee512ab9783ae3e78d766ada5b959b441f4b2bba7db241')
df = pro.daily(ts_code='000001.SZ', start_date='20210401', end_date='20210601')
#print(df)#记录第一步预处理的数据,计算9日内的最大最小值
KdjData = {"trade_date":[],"max_value":[],"min_value":[],"close":[]}
#Rsv数据
RsvData = {"trade_date":[],"Rsv_value":[]}
#K值数据
KData = {"trade_date":[],"K_value":[]}
#D值数据
DData = {"trade_date":[],"D_value":[]}
#J值数据
JData = {"trade_date":[],"J_value":[]}#初步整理数据  其中 N=9 不包含当日    即包含当日的话有10天
for i in (range(0,df.trade_date.size - 9)):KdjData.setdefault("max_value",[]).append(df.pre_close[i]) #设置初始值为前一天的close值KdjData.setdefault("min_value",[]).append(df.pre_close[i])KdjData.setdefault("close",[]).append(df.close[i])KdjData.setdefault("trade_date",[]).append(df.trade_date[i])for j in (range(i + 1,i + 10)):if df.close[j] > KdjData["max_value"][i]:   #找出前九天内的最大最小值KdjData["max_value"][i] = df.close[j]if df.close[j] < KdjData["min_value"][i]:KdjData["min_value"][i] = df.close[j]
myKdjData = pd.DataFrame(KdjData)
#print(myKdjData)#计算RSV值
for i in (range(0,myKdjData.trade_date.size)):RsvData.setdefault("trade_date",[]).append(myKdjData.trade_date[i])rsv = (myKdjData.close[i] - myKdjData.min_value[i])/(myKdjData.max_value[i] - myKdjData.min_value[i])*100RsvData.setdefault("Rsv_value",[]).append(rsv)
MyRsvData = pd.DataFrame(RsvData)
#print(MyRsvData)#定义计算K值的函数
def Compute1(i,data):if i == data.trade_date.size - 1:return 50else:return 2/3*Compute1(i + 1,data) + 1/3*data.Rsv_value[i]
#print(Compute1(2,MyRsvData))#定义计算D值的函数
def Compute2(i,data):if i == data.trade_date.size - 1:return 50else:return 2/3*Compute2(i + 1,data) + 1/3*data.K_value[i]#计算K值
for i in (range(0,MyRsvData.trade_date.size)):KData.setdefault("trade_date",[]).append(MyRsvData.trade_date[i])KData.setdefault("K_value",[]).append(Compute1(i,MyRsvData))
MyKData = pd.DataFrame(KData)
#print(MyKData)#计算D值
for i in (range(0,MyKData.trade_date.size)):DData.setdefault("trade_date",[]).append(MyKData.trade_date[i])DData.setdefault("D_value",[]).append(Compute2(i,MyKData))
MyDData = pd.DataFrame(DData)
#print(MyDData)#计算J值
for i in(range(0,MyKData.trade_date.size)):JData.setdefault("trade_date",[]).append(MyKData.trade_date[i])JData.setdefault("J_value",[]).append(3*MyKData.K_value[i] - 2*MyDData.D_value[i])
MyJData = pd.DataFrame(JData)#创建图形实例,设置xy轴
mp.figure("KDJ Line", figsize=(15, 5),facecolor="lightgray")
mp.title("KDJ Line", fontsize=18)
mp.xlabel("Date", fontsize=15)
mp.ylabel("KDJ", fontsize=15)mp.tick_params(labelsize=5) #设置刻度标签的字体大小
mp.grid(linestyle=":")   #显示网格#绘制K线
mp.plot(MyKData.trade_date,MyKData.K_value, color="blue", linestyle="-",linewidth=2, label="KValue", alpha=0.3)#绘制D线
mp.plot(MyDData.trade_date,MyDData.D_value,color="green",linestyle= "-",linewidth=2, label="DValue", alpha=0.3)#绘制J线
mp.plot(MyJData.trade_date,MyJData.J_value,color="purple",linestyle= "-",linewidth=2, label="JValue", alpha=0.3)#最终展示
mp.legend() #图例
mp.gcf().autofmt_xdate() #使X轴坐标斜着显示
mp.show()

结果展示:

通过tushare的股票数据绘制股票各曲线图——KDJ指标曲线相关推荐

  1. 通过tushare的股票数据绘制股票各曲线图——日K线

    import tushare as ts import numpy as np import datetime as dt import matplotlib.pyplot as mp import ...

  2. 通过tushare的股票数据绘制股票各曲线图——周K线

    #给每天打上标记,标记为第几周 Mark_Data = {"date":[],"value":[]} #中间数据 Temp_Data = {"trad ...

  3. plotly基于dataframe数据绘制股票OHLC图

    plotly基于dataframe数据绘制股票OHLC图 # plotly绘制ohlc曲线 import plotly as py # 导入plotly库并命名为py import plotly.gr ...

  4. plotly基于dataframe数据绘制股票K线图并过滤非交易时间

    plotly基于dataframe数据绘制股票K线图并过滤非交易时间 #ohlc过滤非交易时间: import plotly as py # 导入plotly库并命名为py import plotly ...

  5. cufflinks基于dataframe数据绘制股票数据:直方图、时序图

    cufflinks基于dataframe数据绘制股票数据:直方图.时序图 # 直方图: import cufflinks as cf from chart_studio import plotly a ...

  6. plotly基于dataframe数据绘制股票自定义K线图

    plotly基于dataframe数据绘制股票自定义K线图 #  绘制蜡烛图并自定义可视化形式: import plotly as py import plotly.graph_objs as go ...

  7. plotly基于dataframe数据绘制股票蜡烛图(Candlestick)

    plotly基于dataframe数据绘制股票蜡烛图(Candlestick) # 股票蜡烛图(Candlestick) import plotly as py # 导入plotly库并命名为py i ...

  8. android开发股票数据接口,股票数据接口-股票数据接口api

    原标题:股票数据接口-股票数据接口api 量亿数据专注金融领域API数据接口,其中包括期货.股票.期权.外汇等,只需要注册即可申请使用. 免费申请网址:http://www.liangyee.com/ ...

  9. 股票数据:股票数据查询网站

    股票数据:股票数据查询网站可以查询股票历史数据,从股票上市日到最近一个交易日所有的交易数据,当然能查询也就能下载啦,也可以下载股票历史数据Excel,皆免费 只要两步就能下载: 填股票代码.邮箱 5分 ...

  10. 获取深户股市列表api_利用Tushare获取沪深股票数据与股票数据分析

    1. 简介 近期因为新型肺炎疫情的缘故, 呆在家里想着学习一点Python数据采集与分析相关的内容,于是决定从股票数据入手,做一些简单的数据采集与分析的实战工作.在网上看了一点资料,决定使用Tusha ...

最新文章

  1. 如何防止博客文章被窃取
  2. JS验证框架的使用方法
  3. Re:CMM和RUP、XP的关系是什么?
  4. ateq测漏仪f620中文说明书_Yaman雅萌美容仪详细介绍及2019年韩国免税店最新报价...
  5. 2018最火机器学习项目盘点—CV项目领冠榜单
  6. ROS笔记(20) Kinect仿真
  7. 稳坐开发领域霸主之位,揭秘C语言无可取代的几大原因!
  8. pandas使用字典格式修改columns列名
  9. Opencv中的图像深、浅拷贝
  10. Spark 广播变量BroadCast
  11. Hibernate 中Property中的formula属性的使用
  12. AAtitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型titi
  13. mysql 0000-00-00无效_mysql0000-00-00日期异常及解决方法
  14. linux下RRDTool安装方法
  15. visio 2007使用实例图文教程【转】
  16. kodi奈飞固件_在Ubuntu,Debian和Kodi上,如何安装Netflix
  17. 算法之迪杰斯特拉算法
  18. 阿里云盾(云安全)是什么?有什么作用?
  19. 用easynetty进行服务端回签同步确认
  20. 运算器设计(Logisim实现)

热门文章

  1. winpCap中compile和nocap函数
  2. c语言网络时间校准,c语言如何建时间校准来和电脑一致?
  3. sersync同步备份生产实例
  4. asp、php、asp.net、jsp介绍及优缺点比较
  5. 抢占氢能产业发展风口,上海重塑能源集团股份有限公司助推行业发展
  6. 微波雷达人体感应技术,智能镜子感应雷达模块应用,让生活更有趣
  7. 网站建设的完整教程以及步骤,建议收藏!
  8. 2015年6月26日-ps图层蒙版
  9. 奥克兰理工大学计算机学院,9月17日学术报告(新西兰奥克兰理工大学 Prof. Re
  10. 初识DNA甲基化芯片