• tushare


    tushare是一个免费、开源的python财经数据接口包

    安装

    pip install tushare

    还需要lxml

    pip install lxml

    查看当前版本test.py

    import tushare
    
    print(tushare.__version__)

    >python test.py
    1.2.60

    版本升级

    pip install tushare --upgrade

    注册用户https://waditu.com获取token

    (1)获取基础信息数据

    import tushare as ts
    ts.set_token('换成自己的token')
    pro = ts.pro_api()
    data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
    print(data)

    >python test.py
    ts_code symbol name area industry list_date
    0 000001.SZ 000001 平安银行 深圳 银行 19910403
    1 000002.SZ 000002 万科A 深圳 全国地产 19910129
    2 000004.SZ 000004 国农科技 深圳 互联网 19910114
    3 000005.SZ 000005 世纪星源 深圳 环境保护 19901210
    4 000006.SZ 000006 深振业A 深圳 区域地产 19920427
    ... ... ... ... ... ... ...
    4030 688596.SH 688596 正帆科技 上海 专用机械 20200820
    4031 688598.SH 688598 金博股份 湖南 矿物制品 20200518
    4032 688599.SH 688599 天合光能 江苏 电气设备 20200610
    4033 688600.SH 688600 皖仪科技 安徽 电器仪表 20200703
    4034 688981.SH 688981 中芯国际-U 上海 半导体 20200716

    [4035 rows x 6 columns]

    如果提示抱歉,您没有访问该接口的权限

    可以完善信息,获取20积分,就可以使用接口了

    (2)交易日历

    import tushare as ts
    ts.set_token('你的token')
    pro = ts.pro_api()
    #data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
    data = pro.trade_cal(exchange='', start_date='20201010', end_date='20201020')
    print(data)

    >python test.py
    exchange cal_date is_open
    0 SSE 20201010 0
    1 SSE 20201011 0
    2 SSE 20201012 1
    3 SSE 20201013 1
    4 SSE 20201014 1
    5 SSE 20201015 1
    6 SSE 20201016 1
    7 SSE 20201017 0
    8 SSE 20201018 0
    9 SSE 20201019 1
    10 SSE 20201020 1

     (3)日线行情

    import tushare as ts
    ts.set_token('你的token')
    pro = ts.pro_api()
    data = pro.daily(ts_code='000001.SZ', start_date='20201010', end_date='20201020')
    data.to_csv('test.csv')

    >python test.py

    (4)绘制成行情图

    import tushare as ts
    import pandas as pd
    import matplotlib.pyplot as plt
    ts.set_token('你的token')
    pro = ts.pro_api()
    data = pro.daily(ts_code='000001.SZ', start_date='20200901', end_date='20201020')
    #转化为日期类型
    data['trade_date'] = pd.to_datetime(data['trade_date'], format="%Y%m%d")
    #绘图
    plt.plot(data['trade_date'], data['close'], '-', label = data.ts_code[0])
    plt.gcf().autofmt_xdate()
    #显示文字
    plt.legend()
    #显示图片
    plt.show()

     (4)单个股票K线蜡烛图

    import numpy as np
    import pandas as pd
    import tushare as ts
    import mplfinance as mpf
    import matplotlib.pyplot as plt
    from pylab import mpl
    from datetime import datetime
    
    pd.set_option('expand_frame_repr', False)#True就是可以换行显示。设置成False的时候不允许换行
    pd.set_option('display.max_columns', None)# 显示所有列
    pd.set_option('colheader_justify', 'centre')# 显示居中
    
    pro = ts.pro_api('你的token')
    mpl.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
    df = pro.daily(ts_code='000001.SZ', start_date='20200301', end_date='20201001')
    #df.sort_values(by='trade_date',ascending=False)
    data = df.loc[:, ['trade_date', 'open', 'close', 'high', 'low', 'vol']]  #:取所有行数据,后面取date列,open列等数据
    data = data.rename(columns={'trade_date': 'Date', 'open': 'Open', 'close': 'Close', 'high': 'High', 'low': 'Low', 'vol': 'Volume'})  #更换列名,为后面函数变量做准备
    data.set_index('Date', inplace=True)  #设置date列为索引,覆盖原来索引,这个时候索引还是 object 类型,就是字符串类型。
    data.index = pd.DatetimeIndex(data.index)  #将object类型转化成 DateIndex 类型,pd.DatetimeIndex 是把某一列进行转换,同时把该列的数据设置为索引 index。
    data = data.sort_index(ascending=True)
    mpf.plot(data, type='candle', mav=(5, 10, 20), volume=True, show_nontrading=False)

    mpl_finance介绍及使用

  • 相关阅读:
    eclipse中怎么修改所复制的web项目的部署名字
    javax.servlet.jsp.JspException cannot be resolved to a type异常信息
    如何修改maven本地仓库位置
    如何让plsql连接64位oracle数据库
    JavaWeb: 报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    解决eclipse spring-MVC配置报错:cvc-elt.1: Cannot find the declaration of element 'beans'.
    jdk环境变量配置
    12. Mysql基础入门
    11. Linux从入门到进阶
    PC、APP、H5三端测试的相同与不同
  • 原文地址:https://www.cnblogs.com/baby123/p/13844834.html
Copyright © 2020-2023  润新知