python 金融可视化_用 Python 进行金融数据可视化

Python量化的关键是金融数据可视化,不管是传统的K线图,仍是如今的策略分析,都须要大量的可视化图表。具体到编程代码,就是使用Python绘图模块库绘图,好比传统的Python绘图模块库有Matplotlib,Seaborn等。

html

对于股票和财经的金融数据源,能够使用Tushare库来获取和分析股票财经数据,咱们得到财经数据源后,就能够使用Pandas对金融数据的各类指标进行定制化的分析了,最后让数据可视化,能够使用Matplotlib来绘制出美观大方的金融图形,为企业的决策提供便利。金融绘图的主要步骤以下:nginx

得到股票数据源编程

Tushare是一个免费、开源的Python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,可以为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工做量,使他们更加专一于策略和模型的研究与实现上。考虑到Python 的Pandas包在金融量化分析中体现出的优点,Tushare返回的绝大部分的数据格式都是Pandas的 DataFrame类型,很是便于用Pandas,NumPy和Matplotlib进行数据分析和可视化。微信

Tushare的官网地址网络

http://tushare.org

在Tushare中使用的股票代码,能够参考东方财富网提供的股票代码查询页面,如图7-63所示app

http://quote.eastmoney.com/stocklist.html

图763股票代码查询页面机器学习

使用pip安装Tushare。安装Tushare以前,须要使用pip命令先安装好lxml,requests和bs4模块。函数

pip install tushare

显示股票历史数据学习

TuShare里的 get_hist_data()函数用于获取到目前为止3年的历史数据。获取个股历史交易数据(包括均线数据),能够经过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。ui

参数说明:

code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)

start:开始日期,格式YYYY-MM-DD

end:结束日期,格式YYYY-MM-DD

ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D

retry_count:当网络异常后重试次数,默认为3

pause:重试时停顿秒数,默认为0

返回值说明:

date:日期

open:开盘价

high:最高价

close:收盘价

low:最低价

volume:成交量

price_change:价格变更

p_change:涨跌幅

ma5:5日均价

ma10:10日均价

ma20:20日均价

v_ma5:5日均量

v_ma10:10日均量

v_ma20:20日均量

turnover:换手率[注:指数无此项]

查看编号为600848的股票代码在2018年3月的历史数据,使用Tushare的get_hist_data()返回的是Pandas的DataFrame对象,这个DataFrame对象的columns比较多,在控制台显示不全,因此使用Pandas的to_csv()函数保存到hist_data.csv文件中。

import tushare as tsdata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')data.to_csv('hist_data.csv' )

运行脚本,已记事本打开hist_data.csv文件。

咱们查看hist_data.csv文件会发现,编号为600848的股票代码在2018年3月的历史交易数据是按照交易日期降序排列的。但展现在折线图上的的日期通常要按升序排列。因此还要对DataFrame对象的index属性进行排序。使用Pandas的DataFrame对象的sort_index()函数,使交易日期按照从小到到大的升序排列。这样画出的折线图就符合人们查看历史交易数据的正常习惯了,完整代码以下。

import tushare as tsdata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')# 对交易时间进行降序排列data = data.sort_index()data.to_csv('hist_data.csv' )

得到编号为600848的股票代码在2018年3月的历史交易数据后,就能够使用Maplotlib画出股票历史数据的折线图,折线图的横坐标是股票历史数据的交易日期,纵坐标是股票交易数据的开盘价(open)。

import tushare as tsimport matplotlib.pyplot as pltfrom datetime import datetimedata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')# 对时间进行降序排列data = data.sort_index()xs = [datetime.strptime(d, '%Y-%m-%d').toordinal() for d in data.index ]plt.plot_date( xs , data['open'] , 'b-')plt.gcf().autofmt_xdate()  # 自动旋转日期标记plt.show()

运行脚本输出如下图形。

以上代码的核心代码以下,使用Tushare的get_hist_data()函数返回股票交易代码的股票历史数据,也就是Pandas的DataFrame对象data,data.index索引值是日期型字符串,使用Matplotlib的plot_date()画图函数,须要转换成函数能够识别的Gregoian Calendar类型数据。

xs = [datetime.strptime(d, '%Y-%m-%d').toordinal() for d in data.index ]

以上表达式语句等同于如下语句。

xs = []for date in data.index:    print( date )    transDate = datetime.strptime( date , '%Y-%m-%d')    xs.append( transDate.toordinal())

绘制折线图的X 轴的日期也能够使用matplotlib.dates.strpdate2num()函数进行转换,完整代码以下。

import tushare as tsimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesdata = ts.get_hist_data('600848',start='2018-03-01',end='2018-03-31')# 对时间进行降序排列data = data.sort_index()xs = [mdates.strpdate2num('%Y-%m-%d')(d ) for d in data.index ]plt.plot_date( xs , data['open'] , 'b-')plt.gcf().autofmt_xdate()  # 自动旋转日期标记plt.show()

运行脚本输出如下图形。

获取60分钟k线数据。

import tushare as tsimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesdata = ts.get_hist_data('600848', ktype='60')xs = [mdates.strpdate2num('%Y-%m-%d %H:%M:%S')(d ) for d in data.index ]#设置时间标签显示格式ax = plt.gca()ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S'))plt.plot_date(xs, data['open'],'-' , label='open')plt.legend(loc=0  )plt.gcf().autofmt_xdate()plt.show()

运行脚本输出如下图形。

图768编号为600848的股票代码的60分钟内的k线图

留言回复你用Python作过哪些有趣的应用,咱们会在留言中随机抽取一位读者免费送出北京大学出版社出版的《Python 3 数据分析与机器学习实战》图书一本。

热 门 推 荐

用Python建立微信机器人

用Python机器人监听微信群聊

用Python获取摄像头并实时控制人脸

开源项目 | 用Python美化LeetCode仓库

推荐Python中文社区旗下的几个服务类公众号

征稿启事 | Python中文社区有奖征文

文章节选自北京大学出版社出版的《Python 3 数据分析与机器学习实战》,本书如今5折优惠,点击阅读原文购书~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

桥梁在线计算机监测系统,桥梁在线监测系统

原标题:桥梁在线监测系统监测背景我国是个桥梁大国,据最新数据统计,我国超过100万座公路桥梁(不含市政桥梁)。影响桥梁的因素居多,人为因素、车辆长期超载、材料自身退化等,缺乏及时到位的管理养护导致结构各部分在远没…

python classmethod_对Python中的@classmethod用法详解

在Python面向对象编程中的类构建中,有时候会遇到classmethod的用法。 总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的水平中一般是用不到的。 不过还是好奇去查了一下。 大致可以理解为:使用了classmethod修饰的方法是类专属的&am…

idea黑色好还是白色好_白色牛仔裤,好看又好搭

白色是属于夏天的颜色,也是最纯洁、最惹人注目的颜色。无论时尚如何轮回迭代,白色给我们的代名词永远是优雅、高贵、纯洁、干净、高贵、永恒等这些美好的词汇。白色是时光、流动、轻巧的颜色,它代表着东方的安静和中庸,也是留白含…

职业高中计算机网络试讲稿,2021教师资格证考试面试高中信息技术试讲稿——《建立数据库的基本过程》...

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090qq.com,我们立即下架或…

c 子类对象 访问父类对象受保护成员_面向对象编程(OOP)

这节讲一下,什么是面向对象(Object Oriented Programming)。说面向对象之前,我们不得不提的是面向过程(Process Oriented Programming),C语言就是面向过程的语言,这两者的区别在哪呢?我们可以设想一个情景——厨房做菜…

js table 生成序号_v-for实现生成table并给table加上序号方法

本文主要介绍了使用vue的v-for生成table并给table加上序号的相关资料,需要的朋友可以参考下,希望能帮助到大家。现在有一个使用mybatis的分页插件生成的table,table中数据是通过vue获得的 , 前台显示使用后台vue获取数据使用分页插件进行查询…

笨方法python_笨方法学习Python(11-20)

以下学习内容以python2为基准 11、提问print "How old are you?", age raw_input() print "So, youre %r old." % age python ex11.py How old are you? 35 So, youre 35 old input()与raw_input()都是Python的内建函数,实现与用户的交互&am…

计算机应用学科之间的逻辑性,数学教学中计算机应用

当前的数学教育较重发展学生的发散思维,小学数学的知识的难度在经过几次改编之后都降低了很多,重点放在了对学生思维的发展上,将知识在纵向上的深度要求转变到了对知识的横向思维发展上。根据美国心理学家古乐福特的学说,发散思维…

linux数据泵导入command not found_MySQL:数据库结构优化、高可用架构设计、数据库索引优化...

一、SQL查询优化(重要)1.1 获取有性能问题SQL的三种方式通过用户反馈获取存在性能问题的SQL;通过慢查日志获取存在性能问题的SQL;实时获取存在性能问题的SQL;1.1.2 慢查日志分析工具相关配置参数:slow_query_log # 启动停止记录慢…

python del函数_python中del函数的垃圾回收

今天学习面向对象里的类被del函数的垃圾回收过程搞的晕头转向,经过了老师的讲解还是是懂非懂,然后看了很多博客慢慢的心里才有了个大概的了解。 刚刚看到一篇博客,觉得讲的很好,转载过来以供参考。以下转自笨笨D幸福博客&#xff…

武汉船舶职业技术学院计算机分数线,武汉船舶职业技术学院录取分数线2021是多少分(附历年录取分数线)...

武汉船舶职业技术学院录取分数线2020是多少分,各专业录取分数线是多少,是每个填报武汉船舶职业技术学院的考生最关注的问题,随着各省高考录取批次相继公布,考生也开始关心是否被录取,本站小编整理相关信息供参考&#…

linux std::queue 怎么释放内存_电脑卡慢怎么办?一个小工具帮你轻松释放内存,瞬间提升电脑性能...

有一种电脑叫“卡巴死机”大家有没有发现,如今的电子产品越来越不耐用了。无论是电脑,还是手机,超过一年以上,就得考虑更换了。1G变2G,2G升4G,按理说电脑应该会更快更好,实际却是相反&#xff0…

2015计算机二级公共基础知识,2015年计算机二级公共基础知识考点测试题(8)

排序技术1[单选题]对长度n的线性表排序,在最坏情况下,比较次数不是n(n一1)/2的排序方法是(  )。参考答案:D参考解析:排序技术有:①交换类排序法(冒泡排序法、快速排序法);②插入类排序法(简单插入排序、希尔排序);③…

mybatis 自动填充无效_开发小知识-mybatis-plus自动填充与读写分离

mybatis-plus 自动填充说明我们在设计表结构的时候,往往会额外添多如下几个字段create_time【表字段】-- createTime【实体字段】 : 创建时间update_time【表字段】-- updateTime【实体字段】:更新时间create_by【表字段】-- createBy 【实体字段】: 创建…

2020年周数和日期对应表_2020年雅思考试报名截止日期、准考证打印日期和成绩单寄送日期...

2020年雅思考试报名截止日期、准考证打印日期和成绩单寄送日期考试日期类别口试预定 开始日期*报名截止日期准考证 打印日期成绩单 寄送日期*04/01/2020A14/12/201916/12/201925/12/201917/01/202011/01/2020A+G21/12/201923/12/201901/01/202031/01/202016/01/2020…

飞行摇杆设置_HORI皇牌空战7最新飞行摇杆抢先开箱 设计出色布局合理

《皇牌空战7》即将于1月17日发售PS4/Xbox One版,2月1日发售PC版。近日,我们在本作发售之前收到了HORI为《皇牌空战7》量身设计制造的最新一代飞行摇杆。随着《皇牌空战7》即将到来,我们在此为大家做一个简单的先行开箱评测介绍,为…

2021计算机技术调剂,2021年华南师范大学计算机技术考研调剂信息

招生信息学校名称:华南师范大学学校省份:广东学校层次:211;一流学科;学院名称:专业名称:计算机技术专业代码:专业类型:None招生类别:None调剂招收人数:5专业及招生详情研…

latex subfigure_latex-图片插入

作为一个新手入门latex写作,在已有的期刊模板下,我认为不需要每个命令都知道它的参数。我们需要做的就是在最短的时间内完成论文,重点在内容上,而不是说我latex用的很棒。这里,我只给出我平时常用的两种作图方式&#…

为什么只有奇次谐波_治理变频器产生谐波的应用

变频器运行对电网所产生的高分量谐波电流极大的影响了电网质量,使同电网中的用电设备不能正常使用。根据相关的政策法规本文阐述了变频器产生谐波电流的几种治理方案优缺点,结合实际案例重点分析了有源滤波器(APF)在治理变频器产生…

1964年诞生的第一代电子计算机,世界第一台电子计算机诞生的年份是?

满意答案sxh1122014.01.21采纳率:57% 等级:12已帮助:8464人.第一台电子计算机阿塔纳索夫-贝瑞计算机(Atanasoff-Berry Computer,简称ABC)是世界上第一台电子计算机,为艾奥瓦州立大学的约翰文森特阿塔纳索夫(John Vi…