精华内容
下载资源
问答
  • 2021-01-30 11:30:46

    使用如下代码从TuShare下载沪深300每只股票的历史成交记录并按股票、日期保存到本地。主要是为了以后查询方便快速。

    import numpy as np

    import pandas as pd

    import tushare as ts

    import datetime

    import time

    import tushare as ts

    import os

    data_dir = 'D:\\python_study\\stock_hist_data\\' #下载数据的存放路径

    #ts.get_sz50s() #获取上证50成份股 返回值为DataFrame:code股票代码 name股票名称

    cal_dates = ts.trade_cal() #返回交易所日历,类型为DataFrame, calendarDate isOpen

    #本地实现判断市场开市函数

    @date: str类型日期 eg.'2017-11-23'

    def is_open_day(date):

    if date in cal_dates['calendarDate'].values:

    return cal_dates[cal_dates['calendarDate']==date].iat[0,1]==1

    return False

    #从TuShare获取tick data数据并保存到本地

    #@symbol: str类型股票代码 eg.600030

    #@date: date类型日期

    def get_save_tick_data(symbol, date):

    global sleep_time,data_dir

    res=True

    str_date=str(date)

    dir=data_dir+symbol+'\\'+str(date.year)+'\\'+str(date.month)

    file=dir+'\\'+symbol+'_'+str_date+'_tick_data.h5'

    if is_open_day(str_date):

    if not os.path.exists(dir):

    os.makedirs(dir)

    if not os.path.exists(file):

    try:

    d=ts.get_tick_data(symbol,str_date,pause=0.1)

    except IOError, msg:

    print str(msg).decode('UTF-8')

    sleep_time=min(sleep_time*2, 128)#每次下载失败后sleep_time翻倍,但是最大128s

    print 'Get tick data error: symbol: '+ symbol + ', date: '+str_date+', sleep time is: '+str(sleep_time)

    return res

    else:

    hdf5_file=pd.HDFStore(file, 'w',complevel=4, complib='blosc')

    hdf5_file['data']=d

    hdf5_file.close()

    sleep_time=max(sleep_time/2, 2) #每次成功下载后sleep_time变为一半,但是至少2s

    print "Successfully download and save file: "+file+', sleep time is: '+str(sleep_time)

    return res

    else:

    print "Data already downloaded before, skip " + file

    res=False

    return res

    #获取从起始日期到截止日期中间的的所有日期,前后都是封闭区间

    def get_date_list(begin_date, end_date):

    date_list = []

    while begin_date <= end_date:

    #date_str = str(begin_date)

    date_list.append(begin_date)

    begin_date += datetime.timedelta(days=1)

    return date_list

    #获取感兴趣的所有股票信息,这里只获取沪深300股票

    def get_all_stock_id():

    stock_info=ts.get_hs300s()

    return stock_info['code'].values

    #从TuShare下载感兴趣的所有股票的历史成交数据,并保存到本地HDF5压缩文件

    #dates=get_date_list(datetime.date(2017,11,6), datetime.date(2017,11,12))

    dates=get_date_list(datetime.date(2017,10,30), datetime.date(2017,11,4))

    stocks=get_all_stock_id()

    for stock in stocks:

    for date in dates:

    if get_save_tick_data(stock, date):

    time.sleep(sleep_time)

    因为TuShare并没有提供1分钟线的信息,所以需要根据下载到的每日成交信息生成1分钟线信息。

    代码如下: 其实就是不用for和列,直接 newdf = df.resample ... 保存列头一致就好了

    #根据分笔成交数据生成1分钟线

    #根据分笔成交数据生成1分钟线

    def gen_min_line(symbol, date):

    global data_dir

    str_date=str(date)

    dir=data_dir+symbol+'\\'+str(date.year)+'\\'+str(date.month)

    tickfile=dir+'\\'+symbol+'_'+str_date+'_tick_data.h5'

    minfile=dir+'\\'+symbol+'_'+str_date+'_1min_data.h5'

    if (os.path.exists(tickfile)) and (not os.path.exists(minfile)):

    hdf5_file=pd.HDFStore(tickfile, 'r')

    df=hdf5_file['data']

    hdf5_file.close()

    print "Successfully read tick file: "+tickfile

    if df.shape[0]<10: #TuShare即便在停牌期间也会返回tick data,并且只有三行错误的数据,这里利用行数小于10把那些unexpected tickdata数据排除掉

    print "No tick data read from tick file, skip generating 1min line"

    return 0

    df['time']=str_date+' '+df['time']

    df['time']=pd.to_datetime(df['time'])

    df=df.set_index('time')

    price_df=df['price'].resample('1min').ohlc()

    price_df=price_df.dropna()

    vols=df['volume'].resample('1min').sum()

    vols=vols.dropna()

    vol_df=pd.DataFrame(vols,columns=['volume'])

    amounts=df['amount'].resample('1min').sum()

    amounts=amounts.dropna()

    amount_df=pd.DataFrame(amounts,columns=['amount'])

    newdf=price_df.merge(vol_df, left_index=True, right_index=True).merge(amount_df, left_index=True, right_index=True)

    hdf5_file2=pd.HDFStore(minfile, 'w')

    hdf5_file2['data']=newdf

    hdf5_file2.close()

    print "Successfully write to minute file: "+minfile

    dates=get_date_list(datetime.date(2017,8,1), datetime.date(2017,11,12))

    stocks=get_all_stock_id()

    for stock in stocks:

    for date in dates:

    gen_min_line(stock, date)

    Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。

    更多相关内容
  • tushare数据分析(1)

    千次阅读 2020-09-02 18:11:58
    import tushare as ts ts.set_token('0f05322b2597597318b558ffde25db9bdd0130df6f662bd75b30706b') pro = ts.pro_api() df = pro.query('daily', ts_code='000001.SZ', start_date='20170701', end_date='20200901'...
    import tushare as ts
    ts.set_token('0f05322b2597597318b558ffde25db9bdd0130df6f662bd75b30706b')
    pro = ts.pro_api()
    df = pro.query('daily', ts_code='000001.SZ', start_date='20170701', end_date='20200901')
    df.index = df.trade_date
    

    可以画出下面的粗糙开盘价趋势图,但是x轴时间并没有显示出来,此时我们需要将index转换为时间类型,引入pandas包,将index 的object转为时间类型,我们通过df.dtypes方法可以查看所有列的类型。

    import matplotlib.pyplot as plt
    df['open'].plot()
    plt.ylim(5,18)
    plt.show()
    

    在这里插入图片描述

    import pandas as pd
    df.index = pd.to_datetime(df.index)
    

    绘制收盘价趋势图

    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    plt.figure(figsize=(12,6))
    df['close'].plot()
    plt.ylim(5,18)
    plt.xlabel("日期")
    plt.title("20170701-20200901收盘价趋势")
    plt.ylabel("收盘价")
    plt.legend()
    plt.grid()
    plt.show()
    

    在这里插入图片描述

    绘制K线图

    import talib
    import numpy as np
    import mpl_finance as mpl
    sma_10 = talib.SMA(np.array(df['close']),10)
    sma_30 = talib.SMA(np.array(df['close']),30)
    fig = plt.figure(figsize=(24,8))
    ax = fig.add_subplot(1,1,1)
    ax.plot(sma_10,label="10日均线")
    ax.plot(sma_30,label='30日均线')
    ax.legend()
    mpl.candlestick2_ochl(ax,df['open'],df['close'],
                         df['high'],df['low'],width=0.5,colorup='r',colordown='g',alpha=0.75
                         )
    plt.show()
    

    在这里插入图片描述
    我们主要还是应该掌握如何用tushare获取股票行情数据,使用的是ts.get_hist_data()函数,其
    输入参数为:

    • 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:换手率[注:指数无此项]
      ts.get_stock_basics()
      在这里插入图片描述

    ts.get_hist_data(‘600848’, ktype=‘W’) #获取周k线数据
    在这里插入图片描述

    ts.get_hist_data(‘600848’, ktype=‘M’) #获取月k线数据
    ts.get_hist_data(‘600848’, ktype=‘5’) #获取5分钟k线数据
    ts.get_hist_data(‘600848’, ktype=‘15’) #获取15分钟k线数据
    ts.get_hist_data(‘600848’, ktype=‘30’) #获取30分钟k线数据
    ts.get_hist_data(‘600848’, ktype=‘60’) #获取60分钟k线数据
    ts.get_hist_data(‘sh’)#获取上证指数k线数据,其它参数与个股一致,下同
    ts.get_hist_data(‘sz’)#获取深圳成指k线数据
    ts.get_hist_data(‘hs300’)#获取沪深300指数k线数据
    ts.get_hist_data(‘sz50’)#获取上证50指数k线数据
    ts.get_hist_data(‘zxb’)#获取中小板指数k线数据
    ts.get_hist_data(‘cyb’)#获取创业板指数k线数据

    展开全文
  • 使用 Tushare 数据找到可转换债券的最大成交量
  • 【Python量化分析100例】Day1-使用Tushare获取数据

    千次阅读 多人点赞 2021-10-24 00:27:30
    Tushare平台是目前使用python学习量化投资比较好用的而且是免费的一个数据获取平台。主要实现对金融数据数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们...

    1 背景

    Tushare平台是目前使用python学习量化投资比较好用的而且是免费的一个数据获取平台。主要实现对金融数据从数据采集清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。

    2 获取未复权数据

    2.1 登陆Tushare

    通过以下url,用户可以注册到自己的tushare账号,登陆账号之后,在账号的个人首页->接口Token中获取对应的Token进行数据获取的钥匙。

    url = "https://tushare.pro/register?reg=399376"

    2.2 用pyhton连接tushare

    首先,需要安装tushare模块

    pip install tushare

    连接tushare

    import tushare as ts
    ts.set_token('your token here')#这里填入自己获取的token
    pro = ts.pro_api()

    2.3 用pyhton获取数据

    以平安银行为例,获取2018年-2021年平安银行的日线数据:

    df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20211022')

    数据说明:

    交易日每天15点~16点之间。本接口是未复权行情,停牌期间不提供数据。

    输入参数:

    名称类型必选描述
    ts_codestrN股票代码(支持多个股票同时提取,逗号分隔)
    trade_datestrN交易日期(YYYYMMDD)
    start_datestrN开始日期(YYYYMMDD)
    end_datestrN结束日期(YYYYMMDD)

    注:日期都填YYYYMMDD格式,比如20181010

    输出参数:

    名称类型描述
    ts_codestr股票代码
    trade_datestr交易日期
    openfloat开盘价
    highfloat最高价
    lowfloat最低价
    closefloat收盘价
    pre_closefloat昨收价
    changefloat涨跌额
    pct_chgfloat涨跌幅 (未复权,如果是复权请用 通用行情接口 )
    volfloat成交量 (手)
    amountfloat成交额 (千元)

    也可以通过这种方式进行数据获取:

    df = pro.query('daily', ts_code='000001.SZ', start_date='20180701', end_date='20211022')

    也可以按照日期获取某一天的全部数据:

    df = pro.daily(trade_date='20211022')

    多个数据一起获取:

    df = pro.daily(ts_code='000001.SZ,600000.SH', start_date='20180701', end_date='20180718')

    2.4 查看数据数据

    查看拿到的数据类型,发现数据为DataFrame格式,因此数据的操作与pandas一致

    >>>type(df)
    pandas.core.frame.DataFrame

    查看前5条数据t

    df.head()

    同理,查看后5条数据

    df.tail()
    ts_codetrade_dateopenhighlowclosepre_closechangepct_chg
    799000001.SZ201807068.618.788.458.668.600.060.70
    800000001.SZ201807058.628.738.558.608.61-0.01-0.12
    801000001.SZ201807048.638.758.618.618.67-0.06-0.69
    802000001.SZ201807038.698.708.458.678.610.060.70
    803000001.SZ201807029.059.058.558.619.09-0.48-5.28

    3 获取复权数据

    接口名称:pro_bar
    更新时间:股票和指数通常在15点~17点之间,数字货币实时更新,具体请参考各接口文档明细。
    描述:目前整合了股票(未复权、前复权、后复权)、指数、数字货币、ETF基金、期货、期权的行情数据,未来还将整合包括外汇在内的所有交易行情数据,同时提供分钟数据。不同数据对应不同的积分要求,具体请参阅每类数据的文档说明。
    其它:由于本接口是集成接口,在SDK层做了一些逻辑处理,目前暂时没法用http的方式调取通用行情接口。用户可以访问Tushare的Github,查看源代码完成类似功能。

    输入参数

    名称类型必选描述
    ts_codestrY证券代码,不支持多值输入,多值输入获取结果会有重复记录
    apistrNpro版api对象,如果初始化了set_token,此参数可以不需要
    start_datestrN开始日期 (格式:YYYYMMDD,提取分钟数据请用2019-09-01 09:00:00这种格式)
    end_datestrN结束日期 (格式:YYYYMMDD)
    assetstrY资产类别:E股票 I沪深指数 C数字货币 FT期货 FD基金 O期权 CB可转债(v1.2.39),默认E
    adjstrN复权类型(只针对股票):None未复权 qfq前复权 hfq后复权 , 默认None,目前只支持日线复权。
    freqstrY数据频度 :支持分钟(min)/日(D)/周(W)/月(M)K线,其中1min表示1分钟(类推1/5/15/30/60分钟) ,默认D。对于分钟数据有600积分用户可以试用(请求2次),正式权限请在QQ群私信群主或积分管理员。
    malistN均线,支持任意合理int数值。注:均线是动态计算,要设置一定时间范围才能获得相应的均线,比如5日均线,开始和结束日期参数跨度必须要超过5日。目前只支持单一个股票提取均线,即需要输入ts_code参数。
    factorslistN股票因子(asset='E'有效)支持 tor换手率 vr量比
    adjfactorstrN复权因子,在复权数据时,如果此参数为True,返回的数据中则带复权因子,默认为False。 该功能从1.2.33版本开始生效

    获取平安银行前复权数据

    df = pro.query('daily', adj = 'qfq', ts_code='000001.SZ', start_date='20210701', end_date='20211022')

    4 总结

    这是最基础的数据获取教程,代码已同步到github,会慢慢更新~

    5 Reference

    https://github.com/RxxxxR/quantitative_analysis

    Tushare大数据社区

    展开全文
  • 通过tushare获取金融数据的方法

    千次阅读 2022-03-22 15:07:45
    量化投资在近些年来成为了金融行业中的一个热点,在做量化之前需要先获取到市场的行情数据,今天来介绍一个python接口tushare,通过该接口可以获取到大量的金融数据,涵盖了股票,基本面数据,宏观经济数据等,并且...

    量化投资在近些年来成为了金融行业中的一个热点,在做量化之前需要先获取到市场的行情数据,今天来介绍一个python接口tushare,通过该接口可以获取到大量的金融数据,涵盖了股票,基本面数据,宏观经济数据等,并且在不断的更新中。

    1.安装教程

    可以将tushare作为python的一个三方库,提前pip在环境之中,之后通过如下代码导入:

    import tushare as ts
    

    2.简单函数

    1.获取股票的历史行情,可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。不过需要注意的是,该接口只能获取近三年的数据。

    ts.get_hist_data()
    

    主要参数说明

    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
    

    代码演示如下:

    data = ts.get_hist_data('600519', start='2020-01-01', end='2020-02-01')
    print(data.head())
    

    股票数据
    2. 基本面数据获取
    基本面类数据提供所有股票的基本面情况,包括股本情况、业绩预告和业绩报告等。

    ts.get_stocks_basic()
    

    获取沪深上市公司基本情况。属性包括:

    code,代码
    name,名称
    industry,所属行业
    area,地区
    pe,市盈率
    outstanding,流通股本(亿)
    totals,总股本(亿)
    totalAssets,总资产(万)
    liquidAssets,流动资产
    fixedAssets,固定资产
    reserved,公积金
    reservedPerShare,每股公积金
    esp,每股收益
    bvps,每股净资
    pb,市净率
    timeToMarket,上市日期
    undp,未分利润
    perundp, 每股未分配
    rev,收入同比(%)
    profit,利润同比(%)
    gpr,毛利率(%)
    npr,净利润率(%)
    holders,股东人数

    1. 宏观经济数据

    宏观经济数据提供国内重要的宏观经济数据,目前只提供比较常用的宏观经济数据,通过简单的接口调用可获取相应的DataFrame格式数据,大项主要包括以下类别:

    金融信息数据
    国民经济数据
    价格指数数据
    景气指数数据
    对外经济贸易数据
    

    存款利率调用方法

    
    ts.get_deposit_rate()
    

    返回值为: date, deposit_type, rate

    贷款利率调用方法

    ts.get_loan_rate()
    

    返回值为: date, loan_type, rate

    展开全文
  • Tushare是一个免费、开源的python财经数据接口包,目前为TusharePro版本,主要实现对股票等金融数据数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁和多样的便于分析的数据Tushare返回的...
  • tushare数据工具使用

    2021-10-05 10:42:33
    今天使用tushare界面中的数据工具来获取数据,发现可以直接在页面中查询出数据并导出csv 而且还可以帮助生成代码 相较于以前自己查询使用接口方便了很多,而且自己写的代码出的错也规避掉了。 下面是使用数据工具...
  • 数据源介绍2. Tushare安装3. 数据获取与保存3.1 获取上市公司列表3.2 开市日期获取3.3 获取某一只股票股票的历史数据4. 对tushare进行再封装4. 总结 1. 数据源介绍 在量化投资分析中,数据源始终是最基础部分。有...
  • tushare复权数据使用

    千次阅读 2020-02-26 15:22:01
    一直使用tushare数据,感谢米哥的提供,由于一些计算需要用复权数据,最近使用中发现了一些问题,说明如下。 1. tushare数据接口的问题 tushare日线数据有两个接口,一个是日线行情接口daily,一个是复权行情pro_bar...
  • Tushare获取积分常规办法

    千次阅读 2020-08-27 15:27:53
    Tushare官网 Tushare官网传送门 获取积分办法总结 注册新用户,获得100分 成功推荐注册一个有效用户,获得50分(通过技术手段获得的积分会被清理) 修改个人真实资料,可获得20积分(小积分,大作用,120/320/520/...
  • 原本看到积分制,心拔凉拔凉的,但好在Tushare对学生免费,只要承诺一个宣传任务就行,于是我顺利的通过tushare获取数据。现在来讲讲tushare获取期货数据的操作。 import pandas as pandas import numpy as np ...
  • tushare获取数据方式介绍

    千次阅读 2020-02-29 09:59:00
    get_hist_data():获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。...
  •  点开右上角的个人中心有个接口TOKEN,里面的密钥就是你使用tushare接口的明文.token是调取数据的唯一凭证 获取准备 使用pip install tushare 安装,根据自己电脑的配置安装适合的版本,楼主安装的是tushare1.2.73 ...
  • 但我们在做量化金融研究时,有时候会碰到金融数据难以获取或者python代码不会编写等困难,为了解决这一问题,tushare数据库上线了数据工具功能,可以帮助我们快速的获取到想要的股票数据,本文以隆基股份(601012)...
  • tushare获取财报数据并存入mysql

    千次阅读 2022-04-02 23:37:44
    tushare数据接口除了常规的股票数据如日线、指数等相关信息,也提供了股票的财务信息。tushare中的fina_indicator接口包含了各种财务相关信息,可以方便读取公司财务指标。tushare账号ID:455337。
  • 与wind、东财等收费数据源相比,tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升。 二、安装python3.x,之后通过命令行窗口下的pip安装pandas和tushare,命令...
  • tushare数据分析(2)

    2020-09-04 11:53:53
    import tushare as ts import pymysql import os import docx import time import datetime import warnings from urllib import parse from sqlalchemy import create_engine from docx.shared import Cm, Inches ...
  • 获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果需要全部历史...
  • Tushare最好用的金融数据接口之一

    千次阅读 2021-02-23 13:02:33
    Tushare最好用的金融数据接口之一 作者 l_byll 1. tushare面向人群 当你使用某个接口的时候,你首先要了解的就是它所面向的人群,tushare接口主要面向于从事金融相关的高校,企业和个人,只要对金融感兴趣,或者你所从事...
  • 在我自己早期使用tushare进行股票数据获取的时候遇到一个问题:如何快速获取全市场所有股票的行情数据呢? 一般来说,我们可以采用for循环的方式: def Get_stock_basicinfo(): stock_basicinfo = pro.stock_...
  • 手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中。第二篇下载数据前言一、Tushare是什么?二、代码1.引入库2. 如何封装下载逻辑3.下载路径函数3.我们简单的组合起来总结 前言 我之前发过一片关于通过...
  • 写了一个使用tushare接口获取ETF基金数据的代码: 代码如下: 导入包 # 导入tushare import tushare as ts # 初始化pro接口 pro = ts.pro_api('tokey')#tushare的TOKEY码 import numpy as np 下面时获取数据和...
  • 手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中。第三篇多线程前言一、Tushare是什么?二、代码1.引入库2.多线程函数比例切割3.多线程的loop逻辑4.我们把函数都拼装起来就完成了总结 前言 我之前发过...
  • tushare ID:456497 在资产定价的研究中,我们所使用的数据应该遵循point in time原则,既获取:对应调用日期所能获取的最新数据。听起来简单做起来却不然。一般来说,从原始报表构造的因子(截面,不是时序)有五...
  • tushareID:455958 ...此外可能会存在一分钟限制爬多少次的情况,这时候只要通过time.sleep()函数就可以解决。 获取企业行业、地域 获取资产净利率、资产负债率等 获取不同的指标时要找到对应的函数。 ...
  • 这里分享一下笔者从tushare批量获取交易、财务数据的代码。一共获取了如下数据:收盘价、涨跌幅、成交量、基本每股收益、总资产周转率、每股净资产、净资产收益率、资产负债率、流动资产/总资产、产权比率、资产总计...
  • Tushare获取数据和pyecharts的使用 Tushare获取数据 Tushare官网 Tushare是一个免费、开源的python财经数据接口包。主要实现对股票 等金融数据数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提 供快速...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 728
精华内容 291
关键字:

tushare分钟数据

友情链接: 3360680.rar