多多教Python 金融 是我为金融同行,自由职业投资人 做的一个专栏。这里包含了我自己作为量化交易员,在做研究时所用到的Python技巧和实用案例。这个栏目专业性会比较强:本人29岁,量化工作5年的经验,仍然在不断的学习当中。所以希望能有一起进步的小伙伴在留言板块和我交流,如果有 Python 语法不熟悉的可以先看一下我的基本功专栏:多多教Python基本功​zhuanlan.zhihu.com

最近一位健身房里认识的量化高手给我推荐了一个 Python API 的库,叫 TuShare。我马上去了解了一下,注册了社区会员并且安装好了。通过简单的调用了一下 API,我就觉得这是要放在金融专栏的第一篇题材 ,因为要对开源社区表示强烈的支持。这里就一起了解下通过 Python TuShare 库来获取股票数据,第一篇。

教程需求:Mac OS (Windows, Linux 步骤相似,但是不完全一样)

安装了 Python 3.0 版本以上, PyCharm, Anaconda

安装 TuShare

首先我们进入 TuShare 的官网:Tushare金融大数据社区​tushare.pro

然后在最上面栏目里进入平台介绍,进入后在左边的一栏点 下载安装。这里会告诉你如何通过 "pip" 这个工具在终端安装 TuShare 库。如果你已经通过 多多教Python:Python 基本功: 0. 选择环境 里安装好了 Anaconda 和 PyCharm 了之后,你也可以直接通过这两个软件来安装。那我们来分别介绍一下如何在 终端内的 PIP,PyCharm 和 Anaconda 配置你的 TuShare。

终端内的 PIP 安装 TuShare

首先来介绍一下 PIP。PIP 是一个库的管理工具,通过 PIP 指令可以帮助你找到库的源代码,编译,安装到本地,安装完成之后可以帮你进行版本的更新和卸载,简单的说相当于 Python 的应用商店,那么我们来在终端通过 PIP 来安装一下:

ddTeachPython$ which pip3.7

/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3.7

(base) 192:~ ddTeachPython$ pip --version

pip 10.0.1 from /Users/ddTeachPython/anaconda3/lib/python3.7/site-packages/pip (python 3.7)

(base) 192:~ xxx$ pip3.7 install lmxl

(base) 192:~ xxx$ pip3.7 install pandas

(base) 192:~ xxx$ pip3.7 install requests

(base) 192:~ xxx$ pip3.7 install BeautifulSoup4

(base) 192:~ xxx$ pip3.7 install tushare

我们打开了 MacOS 的终端之后,先输入 "which pip3.7",这段是告诉你 pip3.7 的执行程序在哪儿。在这里我用的是 pip3.7,也就对应的 Python 3.7。如果你有高级/低级的 pip 程序也可以,通过第二行 pip --version 指令就告诉你了 pip 的具体版本和对应的 Python 版本。

在安装 tushare 之前,我们安装了另外4个库。这4个我就不一一介绍了,在其他教程中会有讲,例如 Pandas 库:多多教Python:Python 基本功: 11. 初学 Pandas 库。因为这4个是 tushare 库的依赖 (dependence),只有装了这4个才能成功安装和调用 tushare。

在安装完成后,如果没有什么问题,就可以准备好在 Python 内调用了:

(base) 192:~ ddTeachPython$ python3.7

Python 3.7.2 (default, Dec 29 2018, 00:00:04)

[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> import tushare

>>> print(tushare.__version__)

1.2.48

>>>

这里我调用并且打印出了 tushare 库的版本,是1.2.48。这里有可能发生的错误是,当你呼叫了 Python/ Python3.7 程序之后,调用 tushare 显示 tushare 没有安装,那么请用下面的步骤:

(base) 192:~ ddTeachPython$ which python3.7

/Users/ddTeachPython/anaconda3/bin/python3.7

(base) 192:~ ddTeachPython$ cd /Users/ddTeachPython/anaconda3/bin/

(base) 192:bin ddTeachPython$ ls -a | grep pip*

pip3:from pip._internal.main import main

pip3.7:from pip._internal.main import main

(base) 192:bin ddTeachPython$ ./pip3.7 install lmxl

(base) 192:bin ddTeachPython$ ./pip3.7 install pandas

(base) 192:bin ddTeachPython$ ./pip3.7 install requests

(base) 192:bin ddTeachPython$ ./pip3.7 install BeautifulSoup4

(base) 192:bin ddTeachPython$ ./pip3.7 install tushare

这里首先通过 which 指令来看看 python3.7 的程序在哪里。然后我们通过 cd 去那个程序的文件夹,找到文件夹下面的两个 pip:一个 pip3 一个 pip3.7 程序,然后调用这个文件夹下面的 pip3.7 来安装 tushare,前面加上 "./",表示是当地的。如果你发现打开的 python 无法调用 tushare, 那大概是安装到了另外一个 python 程序的文件夹下面。为了防止这样的错误,PyCharm 和 Anaconda 都运用了虚拟环境 (venv)。下面我们去 PyCharm 创建的虚拟环境下安装。

PyCharm 安装 TuShare

如果你按照多多教Python:Python 基本功: 2. 学会调用库 的教程已经学会了在 PyCharm 安装库,或者你已经在 PyCharm 里创建了一个项目,那么接下来就很方便了。先到 PyCharm 的 Preferences 里,打开 Project Interpreter:PyCharm -> Preference -> Project Interpreter

在这里,首先在 package 栏里找到 pip,双击之后,在搜索栏里依次搜索 lxml, pandas, requests, BeautifulSoup4, tushare,依次安装完成即可。你也可以制定一个 tushare 的版本如下图,注意安装库的作者和网页地址,不要安装一个Fork的版本:作者 Jimmy Liu, 网页 https://tushare.pro, 版本 1.2.48 (有最新下最新)

然后在 PyCharm 内创建一个新的 python 文件 tushare_api.py,尝试调用 tushare:

import tushare as ts

print(ts.__version.__)

### PyCharm 输出 ###

/Users/ddTeachPython/Documents/DDTeachPython/HelloWorld/venv/bin/python /Users/ddTeachPython/Documents/DDTeachPython/HelloWorld/finance/tushare_api.py

1.2.48

Process finished with exit code 0

如果你完成了上述步骤,遇到 PyCharm 找不到 tushare 或者安装出错,你可以到 PyCharm 建立的虚拟环境下直接通过 pip,跟随前面的终端教程安装:/Users/ddTeachPython/Documents/DDTeachPython/HelloWorld/venv/bin/

这里是我的PyCharm项目的虚拟环境地址,如果你不知道如何找,可以在前面一张图的绿色文字出找到。

Anaconda 安装 TuShare

本质上PyCharm 安装 tushare 的时候和终端内的 PIP 是相似的,因为 PyCharm 的库管理器就是建立在 PIP 之上,而 Anaconda 则是自己的一套管理系统。所以当你进入 Anaconda 的环境(Environment) 页面,尝试搜索 tushare 库的时候,大概率是没有的,因为 Anaconda 里面只包含了非常流行的科学计算库。但是我们依然可以通过终端内的PIP来安装:通过 Anaconda 进入终端内的 Python3.7 执行文件夹

我们只需要找到 Anaconda 所创建的虚拟环境 (venv) 所在的文件夹,进去之后再通过这篇教程的终端PIP 安装方法就可以。我们进入环境页面,这里有两个环境,一个是 base(root),一个是Python3.7环境。base(root) 是 Anaconda的默认环境,Python3.7 是我自己建立的专门用于执行 Python3.7 版本的环境。按绿色箭头之后,点 open with terminal, 进入终端我们找到 Anaconda 的执行文件夹:

(Python37) bash-3.2$ pwd

/Users/ddTeachPython/anaconda3/envs

(Python37) bash-3.2$ ls

Python37

(Python37) bash-3.2$ cd Python37/bin

(Python37) bash-3.2$ ./pip install lxml

(Python37) bash-3.2$ ./pip install pandas

(Python37) bash-3.2$ ./pip install requests

(Python37) bash-3.2$ ./pip install BeautifulSoup4

(Python37) bash-3.2$ ./pip install tushare

这样我们就在 Python3.7 环境下安装完成了。同样的方法可以在 base(root)下安装,有困难的小伙伴可以在这里留言。

尝试调用 TuShare 库

如果你不了解什么是 Python 的库,那可以翻一下我写的基本功教程:多多教Python:Python 基本功: 2. 学会调用库​zhuanlan.zhihu.com

现在我们打开 Anaconda,(Pycharm 也可以),输入下面代码:

In [1]:import tushare as ts

In [2]:df = ts.get_k_data(code='600000', start='2015-10-01', end='2019-10-01')

In [3]:df.head()

Out[3]:

dateopenclosehighlowvolumecode

1762015-10-0811.15210.53511.15210.5081400571.0600000

1772015-10-0910.60110.55510.72110.522415258.0600000

1782015-10-1210.55510.66110.78710.442936333.0600000

1792015-10-1310.60810.60110.69410.522546987.0600000

1802015-10-1410.49510.55510.68110.495442978.0600000第一行调用了 tushare 库,并且取名叫 ts。

第二行通过函数 get_k_data ,顾名思义就是获取 K 线数据,这里第一个参数是股票代码,第二个是开始日期,第三个是结束日期。

回复的数据结构是一个 Pandas 的数据框 DataFrame,查看一下前5排,我们会发现数据整整齐齐的下载下来了,整个过程就用了1秒钟,非常快。而且注意细节的话,因为10月1号-7号是节假日休市,所以 tushare 自动帮我们筛选掉了休市的股票数据。

小结:

这篇是介绍 TuShare 获取股票数据的第一篇,并且我也在研究 TuShare 的 API 调用,返回的数据情况等。在接下来的教程中,我们来做一些股票日交易数据的验证 (Data Validation),和数据清洗 (Data Cleaning) 的工作。下面是两个外部的链接,如果还遇到问题的可以看:

Windows 下安装 Anaconda 的教程:WINDOWS下安装ANACONDA​tushare.pro

终端内PIP 安装失败的方案:PIP 安装超时的解决办法​tushare.pro

python tushare获取股票数据_Python 金融: TuShare API 获取股票数据 (1)相关推荐

  1. python tushare获取股票数据_python调用tushare获取沪股通、深股通成份股数据

    接口:hs_const 描述:获取沪股通.深股通成分数据 注:tushare库下载和初始化教程,请查阅我之前的文章 输入参数 名称      |      类型      |      必选      ...

  2. python从tushare获取数据_python调用tushare获取沪股通、深股通成份股数据

    python调用tushare获取沪股通.深股通成份股数据 发布时间:2020-07-20 17:30:07 来源:51CTO 阅读:195 作者:tushare01 接口:hs_const 描述:获 ...

  3. python如何获取股票数据_Python|一行代码获取股票数据

    随着金融行业的发展,金融相关的数据变得越来越有价值.股票的历史数据就是一种非常重要的时间序列数据,本文介绍一个不需要自己动手写爬虫就能够获取各个公司的股票信息的Python库--yfinance. 0 ...

  4. python不同时间周期k线_Python量化交易基础讲堂-股票分笔数据跨周期处理

    <Python实战-构建基于股票的量化交易系统>小册子主要侧重于 Python 实战讲解,但在内容设计上提供了前置基础章节帮助读者快速掌握基础工具的使用.同时我们会持续更新一些关于Pyth ...

  5. python 数据分析入门教程(三)_Python数据分析入门教程(三):数据选择——AIU人工智能学院-经管之家官网!...

    https://p1.pstatp.com/large/pgc-image/a6743a84f13a4f07a7ec3e9405467c6a 在上面的代码中,iloc后的方括号中逗号之前的部分表示要获 ...

  6. python爬虫教材推荐 豆瓣_Python爬虫爬取豆瓣书籍数据

    炎热的夏天,酷暑难挡,难免会心烦意燥,睡前随手拿起枕边看过很多遍的「平凡的世界」.看书,会让躁动的心瞬间安静下来. 生活不能等待别人来安排,要自己去争取和奋斗:而不论其结果是喜是悲,但可以慰藉的是,你 ...

  7. python爬取高德poi数据_Python突破高德API限制完全爬取POI兴趣点数据

    一.背景 爬取POI数据,基本上是个老生常谈的话题了,现在市面上随处可见各路大神制作的获取POI数据的工具,但是当我将从高德地图中实际获取的POI数据与工具爬取的POI数据进行对比之后发现,市面上流行 ...

  8. python输出键值列表_Python 键值分组或分区数据

    Python 使用键值分组或者分区数据,对分组后的数据做何种归约是没有限制的.数据中可能包含一些自变量或者因变量.可以通过自变量对数据进行分区,然后计算每个分区的各项汇总值,包括最大值.最小值.平均值 ...

  9. python覆盖数据库重复数据_Python操作MySQL数据库,插入重复数据

    sql = "INSERT INTO test_c(id,name,sex)values(%s,%s,%s)" param = (1,'AJ','MAN') n = cursor. ...

最新文章

  1. 一行代码搞定 Python 逐行内存消耗分析
  2. 难搞的偏向锁终于要被Java移除了
  3. .NET6之MiniAPI(七):中间件
  4. Ubuntu 16.04下使用Wine安装Xshell 4和Xftp 4
  5. 2016/4/19 ①单个文件上传 ②上传图片后 预览图片
  6. myeclipse java注释模板_Eclipse/MyEclipse Java注释模板设置详解 ---转载自百度空间
  7. 软件测试工程师和WGT,软件系统测试(WGT)工程师---ATK
  8. 读了鸿蒙 OS 的代码后,我发现优秀项目都有这个共性!
  9. Nginx(二) 反向代理负载均衡
  10. 安兔兔2019年1月安卓手机排行榜发布:小米无愧性价比之王
  11. 谈谈我的跳槽感想,从日资企业到互联网的转变
  12. Makefile:Makefile 使用总结
  13. Cockroachdb 一、系统环境
  14. QAM识别算法matlab,16qam调制识别matlab
  15. 常大宿舍路由器安装教程
  16. monthcalendar_Python日历模块| 带有示例的monthcalendar()方法
  17. SpringBoot与Loki的那些事
  18. uni-app的基础概念
  19. 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃(学习)
  20. 2018年7月21日日报

热门文章

  1. 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中
  2. 二:SpringAOP
  3. 运动框架实现思路(js)
  4. Solr学习总结(二)Solr的安装与配置
  5. Struts2漏洞为互联网带来严重安全风险
  6. 《BI那点儿事》Microsoft 决策树算法——找出三国武将特性分布,献给广大的三国爱好者们...
  7. [转]ASP.NET中常用的文件上传下载方法
  8. PowerDesigner基本使用 - 创建逻辑数据模型
  9. javascript闭包简单实例
  10. 图解Sqlite教程2