精华内容
下载资源
问答
  • 小结: 这篇是介绍 TuShare 获取股票数据的第一篇,并且我也在研究 TuShare 的 API 调用,返回的数据情况等。在接下来的教程中,我们来做一些股票日交易数据的验证 (Data Validation),和数据清洗 (Data Cleaning) ...

    多多教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

    展开全文
  • 使用tushare获取股票近十年的相关数据 tushare ID:414889 tushare首页 前言 本人是非金融/计算机的硕士,最近需要一些股票的往年数据来进行简单分析,所以注册了tushre,用python接口来获取数据 一、目的 使用...

    使用tushare获取某股票近十年的相关数据

    tushare ID:414889

    tushare首页

    前言
    本人是非金融/计算机的硕士,最近需要一些股票的往年数据来进行简单分析,所以注册了tushre,用python接口来获取数据

    一、目的

    使用tushare的

    pro.query('fina_indicator', ts_code=query_ts_code, start_date=start)
    
    pro.query('cashflow', ts_code=query_ts_code, start_date=start)
    
    pro.query('balancesheet', ts_code=query_ts_code, start_date=start)
    

    接口获取财务指标数据资产负债表现金流量表,并从中取出目标数据进行聚合,形成自己的目标数据。

    二、代码实现

    1. 导入相关库,设置接口token(在网站“个人主页-接口TOKEN”查看)
    import tushare as ts
    import pandas as pd
    pro = ts.pro_api('token')
    
    1. 定义函数,获取某只股票多年数据
      start和end为开始截止日期,query_ts_code为股票代码,返回dataframe
    def multi_year_data(start, end, query_ts_code):
        # 财务指标数据
        df1 = pro.query('fina_indicator', ts_code=query_ts_code, start_date=start,
                        end_date=end, fields='ts_code,end_date,roe_yearly,roa_yearly,eps,revenue_ps,equity_yoy')
        df1['end_date'] = pd.to_datetime(df1['end_date'])
        mask = df1['end_date'].apply(lambda x: (x.month == 12) & (x.day == 31))
        df1 = df1[mask].reset_index(inplace=False, drop=True)
        # 现金流量表
        df2 = pro.query('cashflow', ts_code=query_ts_code, start_date=start, end_date=end,
                        fields='end_date,ts_code,net_profit')
        df2['end_date'] = pd.to_datetime(df2['end_date'])
        mask = df2['end_date'].apply(lambda x: (x.month == 12) & (x.day == 31))
        df2 = df2[mask].drop_duplicates(
            subset=['ts_code', 'net_profit'], keep='first')
        df2.reset_index(inplace=True, drop=True)
        # 资产负债表
        df3 = pro.query('balancesheet', ts_code=query_ts_code, start_date=start, end_date=end,
                        fields='end_date,ts_code,total_assets')
        df3['end_date'] = pd.to_datetime(df3['end_date'])
        mask = df3['end_date'].apply(lambda x: (x.month == 12) & (x.day == 31))
        df3 = df3[mask].drop_duplicates(
            subset=['ts_code', 'total_assets'], keep='first')
        df3.reset_index(inplace=True, drop=True)
        # 三个表拼接
        df = df1.merge(df2, on=['ts_code', 'end_date'])
        df = df.merge(df3, on=['ts_code', 'end_date'])
        col = 'ts_code,end_date,roe_yearly,roa_yearly,total_assets,equity_yoy,eps,revenue_ps,net_profit'
        df = df.reindex(columns=col.split(','))
        df.rename(columns={'roe_yearly': 'roe_yearly(%)',
                           'roa_yearly': 'roa_yearly(%)', 'equity_yoy': 'equity_yoy(%)'}, inplace=True)
        return df
    

    获取平安银行近10年的相关数据(数据说明见tushare官网接口说明,如财务指标数据

    multi_year_data('20100101', '20201231', '000001.SZ')
    

    近10年年报数据
    年报数据
    多次调用这个函数即可获得多支想要的股票数据

    展开全文
  • Tushare 获取股票实时数据

    千次阅读 2020-07-05 19:08:56
    Tushare 获取股票实时数据 自己实现了一个能获取股票实时交易数据的脚本,功能是每3秒钟获取当前大盘涨跌,和自己添加股票的价格和涨跌幅 原理是通过获取Tushare 平台提供的api,来获取股票数据,可以通过 ...

    Tushare 获取股票实时数据

    自己实现了一个能获取股票实时交易数据的脚本,功能是每3秒钟获取当前大盘涨跌,和自己添加股票的价格和涨跌幅
    原理是通过获取Tushare 平台提供的api,来获取股票数据,可以通过
    https://tushare.pro/register?reg=376628
    访问平台,第一次访问需要注册
    运行前需要安装python包
    使用以下命令:
    pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple

    codes就表示要实时监控的股票代码,sh表示上证指数,sz表示深成指数,cyb就是创业板的指数,后面是我加的两个自选股,如果想加其他的,在后边依次添加代码就好

    codes = ['sh', 'sz', 'cyb', '000100', '002958']
    

    运行后会显示如下:
    实时显示

    完整代码如下:

    import tushare as ts
    import time
    import os
    
    codes = ['sh', 'sz', 'cyb', '000100', '002958']
    
    while 1:
        data = ts.get_realtime_quotes(codes)
        # print(len(data))
        sh_price = round(float(data['price'].values[0]), 2)
        sh_pre_close = round(float(data['pre_close'].values[0]), 2)
        sz_price = round(float(data['price'].values[1]), 2)
        sz_pre_close = round(float(data['pre_close'].values[1]), 2)
        cyb_price = round(float(data['price'].values[2]), 2)
        cyb_pre_close = round(float(data['pre_close'].values[2]), 2)
        sh = round(sh_price - sh_pre_close, 2)
        sz = round(sz_price - sz_pre_close, 2)
        cyb = round(cyb_price - cyb_pre_close, 2)
        sh_percent = round(sh / sh_pre_close * 100, 2)
        sz_percent = round(sz / sz_pre_close * 100, 2)
        cyb_percent = round(cyb / cyb_pre_close * 100, 2)
        # print('(', sh_price, sh, sh_percent, ')', '(', sz_price, sz, sz_percent, ')', '(', cyb_price, cyb, cyb_percent, ')')
        print('(%.2f %.2f %.2f) (%.2f %.2f %.2f) (%.2f %.2f %.2f)'%(sh_price, sh, sh_percent, sz_price, sz, sz_percent, cyb_price, cyb, cyb_percent))
        for i in range(3, len(data)):
            price = float(data['price'].values[i])
            pre_close = float(data['pre_close'].values[i])
            print(data.name.values[i], data.open.values[i], data.price.values[i], round((price-pre_close)/pre_close*100, 2))
        time.sleep(3)
    
    
    展开全文
  • 利用tushare获取股票数据

    千次阅读 2018-04-22 15:31:01
    编写函数,实现从tushare获取任一股票的周收盘价,以及对相应股票收益率的修正。将任一股票2016-01-01至2018-03-31期间,周收益率低于-4%的股票修正为1%,并将原股票收盘价格以及修正后的价格走势以图形的形式展示在...

    编写函数,实现从tushare获取任一股票的周收盘价,以及对相应股票收益率的修正。将任一股票2016-01-01至2018-03-31期间,周收益率低于-4%的股票修正为1%,并将原股票收盘价格以及修正后的价格走势以图形的形式展示在同一图中,给出相应的图例、标题(横轴须为时间)等

    import tushare as ts

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    ZGLT=ts.get_hist_data('600050',ktype='W',start='2016-01-01',end='2018-03-31')
    ZGLT_close0=ZGLT['close']
    #ZGLT.p_change=ZGLT['p_change']
    print(ZGLT_close0)
    #print(ZGLT.p_change)
    ZGLT_Return=np.zeros(len(ZGLT_close0))
    for i in range(len(ZGLT_close0)-1):
           ZGLT_Return[i+1]=(ZGLT_close0[i+1]-ZGLT_close0[i])/ZGLT_close0[i]
    for i in range(len(ZGLT_Return)):
           if ZGLT_Return[i]<-0.04:
               ZGLT_Return[i]=0.01
    for i in range(len(ZGLT_Return)-1):
          ZGLT_close1[i+1]= ZGLT_Return[i+1]*ZGLT_close0[i]+ZGLT_close0[i]

    import matplotlib.pyplot as plt
    plt.plot(ZGLT_close0, marker='o', label='ZGLT_close0')
    plt.plot(ZGLT_close1, marker='*',label='ZGLT_close1')
    plt.legend()
    plt.show()
    展开全文
  • tushare获取股票、期货、数字货币信息安装库导入库注册账号增加积分 安装库 pip install tushare 导入库 import tushare as ts 注册账号 增加积分
  • 接口:monthly描述:获取A股月线数据限量:单次最大3700,总量不限制积分:用户需要至少300积分才可以调取,具体请参阅本文最下方积分获取办法注:tushare库下载和初始化教程,请查阅我之前的文章输入参数名称 | ...
  • tushare 使用手册0 链接使用1 使用Python 2.71.1 virtualenv构建虚拟环境1.2 conda构建虚拟环境1.3 安装tushare1.4 创建test.py验证 0 链接使用 1: https://blog.csdn.net/Lcorleone/article/details/78110420 虚拟...
  • 官网链接:Tushare大数据社区 (waditu.com) 目标:获取近五日的交易数据,判断黄金柱。 一、获取4200家上市公司代码 const param = { "api_name": "stock_basic", "token": "你的token", "params": {"list_...
  • 4.在python中导入tushare模块进行股票行情获取 方法一:通过tushare的pro,实时更新 import tushare as ts\ntoken='\u6b64\u5904\u7c98\u8d34\u521a\u590d\u5236\u7684\u6ce8\u518c\u7801' ts.set_token(token)#注册...
  • 价格查询和展示# 不直接根据网页进行爬虫获取股票价格,而是通过已有组件查询股票价格,并保存到csv文件或者excel文件# Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、...
  • tushare获取股票历史数据

    万次阅读 2017-09-10 15:19:11
    我们运用python进行量化分析的时候需要载入证券数据,tushare为我们提供了证券市场数据接口。 tushare是以新浪财经、腾讯财经、上交所数据、深交所数据为基础提供的Python接口。 安装方法为 pip install tushare 也...
  • 接口:hs_const描述:获取沪股通、深股通成分数据注:tushare库下载和初始化教程,请查阅我之前的文章输入参数名称 | 类型 | 必选 | 描述hs_type | str | Y | 类型SH沪股通SZ深股通is_new | str | ...
  • 刚发现 tushare.pro 上可以免费获取股票行情数据 一、步骤: 登录 tushare.pro, 注册账户,完善个人信息,得到120积分(可有免费获取股票行情数据的权限); 获取接口TOKEN,保存好,程序中会用到, 方法参考: ...
  • import tushare as ts import pandas as pda # data=ts.get_hist_data('000510') # print(data) # data.to_excel('j:/stock/list.xlsx') df=ts.get_day_all() df.to_excel('j:/stock/data.xlsx')
  • tushare数据实现股票温度计算

    千次阅读 2020-01-10 10:44:20
    通过tushare获取数据3.2.计算温度3.3.温度和收盘价展示3.4. 关于温度的统计分析4.结语 1.tushare 一直用tushare获取数据,数据准确,获取方便,感谢米哥。 2.股票温度 股票价值投资 (Value Investing)一种常见的投资...
  • python从tushare获取股票历史数据

    千次阅读 2020-02-06 15:15:46
    使用前提: 安装Python 安装pandas lxml也是必须的,正常情况下安装了Anaconda后无须单独安装,如果没有可执行:pip install lxml 建议安装Anaconda,一次...安装tushare并更新 pip install tushare pip i...
  • 一、利用tushare获取股票数据 上次利用tushare的API获取了一部分的数据,感觉不够齐全,所以现在更新程序 import tushare as ts import pandas as pd pro = ts.pro_api() data = pro.query('stock_basic', ...
  • 如果之前没有安装,请用“开始-所有程序-附件-命令提示符”下输入pip install tushare 如果之前安装过,请升级pip install tushare --upgrade 当然在安装tushare时,会自动安装一些其它库,如果在python下提...
  • 使用tushare获取股票历史交易数据

    千次阅读 2020-02-18 22:32:39
    因为前几年就写过java的爬虫,从新浪财经爬取相应股票的历史数据,所以我这里比较简单的调用了一下,获取所有的沪深A股的代码信息,然后调用tushare的get history data来获取历史数据(比java简单多了,tushare封装...
  • index_basic是股票基本信息,daily是日数据 将数据存入mysql数据库,会新建表,需保证数据库中没有这个表 3.数据读取 def get_basic(ts_code=False, name=False, market=False, publisher=False, category=F
  • tushare第三方python库读取数据,并写入数据库
  • # 获取沪深300所有股票代码以及权重 df = pro.index_weight(index_code='399300.SZ', start_date='20201101') # 获取股票代码并转换成列表 stocks = df['con_code'].values.tolist() # 获取股票的金融数据 for ...
  • 如何从tushare获取股票历史数据写入自己的MySQL数据库 点击 https://tushare.pro/register?reg=414428 ,免费注册后,即可获取 tushare 的 token,就可以下载金融数据了。 1. tushare推荐方法 如果你需要读取全部...
  • 2、获取token 3、调取数据 如果您是初学者,在此之前,建议您先完成Python环境安装,并熟悉Python的基础用法。 1、学会Anaconda安装 2、学会下载和安装Tushare SDK 3、作为一名合格的量化工程师,或者数据分析...
  • #获取期权合约信息 df = pro.opt_basic(exchange='DCE', fields='ts_code,name,exercise_type,list_date,delist_date') """ 输入参数 名称 类型 必选 描述 exchange str Y 交易所代码 (包括上交所SSE等交易所) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,506
精华内容 1,002
关键字:

tushare获取所有股票