利用tushare财经数据接口获取股市进行数据分析、并可视化的案例

1.导入所需要的库

import os
import pandas as pd
import tushare as ts
import time
import datetime
import xlrd
from dateutil.relativedelta import relativedelta #计算前多长时间间隔的日期的库
from matplotlib import pyplot as plt
import mpl_finance as mpf #画k线图的金融库
from matplotlib.pylab import date2num

2.获取当天日期和之前一年的日期

Python资源共享群:626017123

today = datetime.datetime.now().strftime('%Y%m%d')
t = datetime.datetime.strptime(today,'%Y%m%d').date()
year_before_today = (t-relativedelta(years=1)).strftime('%Y%m%d')

3.设置获取接口数据的token,在tushare官网注册用户获得

ts.set_token('752a393dbf58f03637ebc9c340c8e6ccb07322d3c5421ba680aae2eb')

4.设置每只股票全年数据文件路径

path = 'D://python_data_analysis//tushare_project'
if not os.path.exists('{0}//each_stock_year_data//{1}'.format(path, today)):os.makedirs('{0}//each_stock_year_data//{1}'.format(path, today))print("当日每只股票行情数据文件夹创建完成")
else:print("当日每只股票行情数据文件目录存在")

5.设置每只股票K线图的存储路径

if not os.path.exists('{0}//k_line_graph//{1}'.format(path,today)):os.makedirs('{0}//k_line_graph//{1}'.format(path,today))print("当日每只股票的K线图存储路径文件夹创建完成")
else:print("当日每日股票的K线图存储路径文件夹已存在")

6.#利用tushare获取每日股票行情数据

#定义一个获取股市每日数据写入Excel的函数

def get_stock_data_to_excel(day):print("******开始获取股市每日行情数据******")pro = ts.pro_api()stock_daily_data = pro.daily(trade_date=day)df = pd.DataFrame(stock_daily_data)df.to_excel('{0}//daily_stock_data//data{1}.xlsx'.format(path,day))print("******每日行情数据获取成功******")

7.定义一个获取每日股市数据中每日涨跌幅大于9%的股票(比率可以自由设置)

filedir = path + "//daily_stock_data//data20190118.xlsx"
def stock_filter_than_percent9(file):print("******开始分析今日所有涨停板股票******")data = xlrd.open_workbook(file)table = data.sheets()[0] #获取Excel表的第几张table_nrows = table.nrowspct_chg = []code = []for row in range(table_nrows):if row == 0:continueelse:if table.row_values(row)[9] > 9:pct_chg.append(table.row_values(row)[9])code.append(table.row_values(row)[1])result_code_info = dict(zip(code,pct_chg))print("今日涨幅大于9%的股票共有{}只".format(len(result_code_info)))return result_code_info

8.根据获取的涨停板股票代码,获取其相应的一年行情数据,为后面k线做准备

def get_code_year_data():print("开始获取今日所有涨停板股票时间段为一年的行情数据")pro = ts.pro_api() #tushare数据接口count = 1for item in stock_code.keys():print("******开始获取第{0}只股票行情数据******".format(count))time.sleep(3) #每次请求前暂停data = pro.daily(ts_code=item,start_date=year_before_today,end_date=today)df = pd.DataFrame(data)df.to_excel('{0}//each_stock_year_data//{1}//{2}.xlsx'.format(path,today,item))count += 1print("今日所有的涨停板股票年行情数据获取完成")

9.画每日涨停板股票一年的K线图

def draw_k_line():print("开始画股票K线图")datafiledir = os.listdir(path+'//each_stock_year_data//{0}//'.format(today))for i in range(len(datafiledir)):each_stock_code = datafiledir[i].split('.')[0]   #截取相应股票代码quotes = []stock = pd.read_excel(path+'//each_stock_year_data//{0}//{1}'.format(today,datafiledir[i])) #利用pandas设置excel数据为DataFramestock_row = stock.shape[0] #获取数据表的行数#获取每个交易日的开盘价,收盘价,最高价,最低价for row in range(stock_row):stock_trade_date = str(stock.loc[row,'trade_date'])stock_trade_date_change = stock_trade_date[0:4] + '-' + stock_trade_date[4:6] + '-' + stock_trade_date[6:]stock_trade_date_num = date2num(datetime.datetime.strptime(stock_trade_date_change,'%Y-%m-%d'))stock_trade_date_plot = stock_trade_date_num #这个是画K线图必须使用的日期格式stock_open_price = stock.loc[row,'open']stock_close_price = stock.loc[row,'close']stock_high_price = stock.loc[row,'high']stock_low_price = stock.loc[row,'low'          ]#按照 candlestick_ohlc 函数要求的数据结构构造数据datas = (stock_trade_date_plot,stock_open_price,stock_high_price,stock_low_price,stock_close_price)quotes.append(datas)#开始画K线图fig,ax =plt.subplots(facecolor=(0,0.5,0.5),figsize=(12,8))fig.subplots_adjust(bottom=0.1)ax.xaxis_date()plt.xticks(rotation=45)#日期显示的旋转角度plt.title(each_stock_code)plt.xlabel('time')plt.ylabel('price')mpf.candlestick_ohlc(ax,quotes,width=1.0,colorup='r',colordown='green')#上涨为红色,下降为绿色plt.grid(True)plt.savefig(path+'//k_line_graph//{0}//{1}.png'.format(today,each_stock_code),dpi=100,facecolor=(0,0.5,0.5))plt.close(fig)#plt.show()print("所有股票K线图绘制完毕,请在图片路径进行查看")

10.定义程序入口

if __name__ == '__main__':get_stock_data_to_excel(today)                     #调用函数获取当天行情数据stock_code = stock_filter_than_percent9(filedir)   #调用函数分析今日涨停板股票,返回股票代码get_code_year_data()                               #根据返回的股票代码,获取其一年的行情数据draw_k_line()                                      #根据全年行情数据画对应股票的K线

11.程序运行结果

Python之获取每日涨停板股票数据并绘制K线图!相关推荐

  1. 【转】Python之获取每日涨停板股票数据并绘制K线图!

    利用tushare财经数据接口获取股市进行数据分析.并可视化的案例 1.导入所需要的库 import os import pandas as pd import tushare as ts impor ...

  2. Python学习笔记:利用mplfinance的plot绘制K线图

    文章目录 一.从mpl-finance转到mplfinance 1.安装mpl-finance模块 2.导入mpl_finance模块出现警告 3.安装mplfinance模块 4.安装pandas. ...

  3. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  4. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,在其中用股票范例讲述Python爬虫.数据分析和机器学习的技术,大家看了我的书,不仅能很快用比较热门的案例学好P ...

  5. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)(转载)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  6. python 股票图表_k线图分析法_【趣味案例】用Python绘制K线图,一眼看清股市状况...

    本文介绍关于[趣味案例]用Python绘制K线图,一眼看清股市状况及神一般的裸k交易法,精髓就这三步,一目了然!精髓就这三步,一目了然!(附图解析)的相关内容. [趣味案例]用Python绘制K线图, ...

  7. 用Python绘制K线图

    K线图简介 ​ ​K线由高开低收四个价格绘制而成.分为阳线与阴线两种,收盘价高于开盘价时为阳线,收盘价低于开盘价时为阴线:K线图的示意图如下: K线由矩形实体与上下两根影线组成,实体上方的影线成为上影 ...

  8. python画k线图_小白学Python(14)——pyecharts 绘制K线图 Kline/Candlestick

    Kline-基本示例 from pyecharts import options as opts from pyecharts.charts import Kline data = [ [2320.2 ...

  9. python 窗体k线图_一眼看清股市状况之用Python绘制K线图

    前几天美股熔断,据悉这次熔断是自美股有熔断机制30年来第二次,成了头条新闻.对股票一窍不通的我也在此情此景进行了一波学习,股市的变化瞬息万千,有一种图可以用来清晰地反应一段时间内股市的变化情况,它就是 ...

最新文章

  1. 基于瞳孔检测,湖北中学推出人脸支付!网友提出安全投诉,学校:符合法规,无风险...
  2. JavaScript语言基础2
  3. python序列化和反序列化_python反序列化免杀
  4. [转载]WebForm下使用 jQuery.loadUserControl异步load用户控件
  5. vc调用mysql数据库操作例子
  6. POJ 2724 Purifying Machine (二分图匹配)
  7. 信息竞赛进阶指南--搜索相关(模板)
  8. Java中局部变量必须初始化
  9. 20个很有帮助的 Web 前端开发教程
  10. opengl 坐标的基本变换
  11. 【渝粤题库】陕西师范大学201921比较法学作业(专升本)
  12. CSS3特效----制作3D旋转导航
  13. SpringBoot日志
  14. F1 Score详解 查准率较高 召回率较低怎末处理?
  15. 华为vrrp默认优先级_网关冗余VRRP
  16. Python科研数据分析专题之正态性检验
  17. IE主页改不了怎么办
  18. 计算机导论二进制小数乘法,二进制计算
  19. 安装ffmpeg win10教程
  20. js根据日期时间区间获取季度Q1-Q4列表

热门文章

  1. 35岁的程序员:第43章,职级评定
  2. 广州市天河区2021-2022学年九年级第一学期期末考试英语试题
  3. Infopath技术
  4. 工作3个月后个人对测绘专业的重新反思(重新思考武大测绘学科就业问题和读研问题)
  5. 看这篇告诉你WMS系统怎么设计
  6. 每日新闻:Win10违背用户选择向微软发送数据;百度将在山西建设智能车联网示范基地;18年第三季度企业存储系统收入增长19.4%...
  7. 有营养的废话:人工智能、大数据和高性能计算融合成为趋势丨AI推理服务器,能读懂福尔摩斯?【软件网每日新闻播报│第10-24期】
  8. 手机生产日期查询方法
  9. [n年以前的诗] 你别这样
  10. SQL 把查询结果当作表来使用