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

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

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

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

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

安装 TuShare

首先我们进入 TuShare 的官网:Tushare金融大数据社区​tushare.prov2-847e8d705d3a409d000dce413ab5c257_ipico.jpg

然后在最上面栏目里进入平台介绍,进入后在左边的一栏点 下载安装。这里会告诉你如何通过 "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.comv2-ef37d7e4092faa34a68d241fc95e4175_180x120.jpg

现在我们打开 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.prov2-502db600b02531dd8aa2299aab4d0a87_180x120.jpg

终端内PIP 安装失败的方案:PIP 安装超时的解决办法​tushare.prov2-847e8d705d3a409d000dce413ab5c257_ipico.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值