精华内容
下载资源
问答
  • tushare获取数据方式介绍

    千次阅读 2020-02-29 09:59:00
    get_hist_data():获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。...

    python3 量化交易 tushare库
    https://blog.csdn.net/qq_25205059/article/details/82865740

    get_hist_data():获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。
    参数说明:
    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:换手率[注:指数无此项]
    使用方法:
    import tushare as ts
    data=ts.get_hist_data(‘300274’)
    data2=ts.get_hist_data(‘300274’,start=‘2017-01-01’,end=‘2018-03-27’)
    print(data)
    open high close … v_ma5 v_ma10 v_ma20
    date …
    2020-02-28 14.85 15.04 14.50 … 1157776.80 1141081.47 1266068.82
    2020-02-27 14.96 15.15 15.11 … 1096662.11 1162260.49 1256066.20
    2020-02-26 14.77 15.27 14.99 … 1148696.81 1166053.93 1243275.90

    get_h_data(): 在不指定开始时间和结束时间时,该函数默认返回最近一年的日线数据,返回的数据与get_hist_data不同的是,该函数只返回开盘价(open)、最高价(high)、收盘价(close)、最低价(low)、成交量(volume)、成交金额(amount)六列 ,同样加上时间段也可以获取相应数据。

    get_k_data():可以返回每一只股票从上市开始到当前交易日的所有日线数据,这个有点是前两个函数都不具备的,更重要的是,如果批量3000多只股票的数据,前两个都不如get_k_data()稳定.
    date open close high low volume code
    99 2019-06-03 12.22 11.90 12.33 11.82 1512719.0 000001
    100 2019-06-04 11.89 11.85 11.94 11.60 974655.0 000001
    101 2019-06-05 11.97 11.97 12.14 11.92 748892.0 000001

    get_today_all():获取实时行情数据,一次性获取当前交易所有股票的行情数据
    返回值说明:
    code:代码
    name:名称
    changepercent:涨跌幅
    trade:现价
    open:开盘价
    high:最高价
    low:最低价
    settlement:昨日收盘价
    volume:成交量
    turnoverratio:换手率
    amount:成交量
    per:市盈率
    pb:市净率
    mktcap:总市值
    nmc:流通市值
    import tushare as ts
    ts.get_today_all()

    get_tick_data():获取个股以往交易历史的分笔数据明细
    使用方法:
    import tushare as ts
    df=ts.get_tick_data(‘300274’,date=‘2018-03-27’)
    df.head(10) #距离执行时间最近的十笔交易

    get_today_ticks():获取当前交易日(交易进行中使用)已经产生的分笔明细数据

    get_realtime_quotes():获取实时分笔数据,可以实时取得股票当前报价和成交信息

    get_index():获取大盘指数实时行情列表,以表格的形式展示大盘指数实时行情

    get_sina_dd:获取大单交易数据,默认为大于等于400手,数据来源于新浪财经

    展开全文
  • 数据是从tushare获取的,始终在mac上跑的,一直用到今年4月份一切正常,5月份开始复制到win系统上运行,一切正常。这期间mac进行了几次升级(现在版本是Big Sur 11.4)。直到前几天...
  • 但是,如果想做分钟k线的技术分析,或者想了解基本面和消息面的数据,就用得着Tushare了。PyalgoTrade使用的基本数据格式有两种,一是Yahoo格式,二是NinjaTrader格式。Yahoo格式的数据分段为:日线数据:Da

    分析A股历史数据,首先需要确定数据来源。如果只想做日k线、周k线的技术分析,可以用PyalgoTrade直接从yahoo、google等下载数据,用不着Tushare。但是,如果想做分钟k线的技术分析,或者想了解基本面和消息面的数据,就用得着Tushare了。

    PyalgoTrade使用的基本数据格式有两种,一是Yahoo格式,二是NinjaTrader格式。

    Yahoo格式的数据分段为:

    日线数据:Date,Open,High,Low,Close,Volume,Adj Close
    分钟数据:Date Time,Open,High,Low,Close,Volume,Adj Close
    

    Tushare提供的数据格式,日k线、分钟线均为:

    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:换手率[注:指数无此项]
    

    把Tushar数据转换成Yahoo格式,原本很简单。但我对Pandas不熟,只好找来相关pdf书,加上Baidu,在Jupyter Notebook中,边学边练,实验多次,最终搞定。

    [python] view plain copy
    在CODE上查看代码片派生到我的代码片

    import tushare as ts  
    import pandas as pd  
    
    # 得到15分钟数据(股票300336,始于2016-01-01,止于2016-05-24,15分钟数据)  
    data = ts.get_hist_data('300336','2016-01-01','2016-05-24','15')  
    # 数据存盘  
    data.to_csv('15-300336-2016.csv')  
    # 读出数据,DataFrame格式  
    df = pd.read_csv('15-300336-2016.csv')  
    # 从df中选取数据段,改变段名;新段'Adj Close'使用原有段'close'的数据  
    df2 = pd.DataFrame({'Date Time' : df['date'], 'Open' : df['open'],  
                        'High' : df['high'],'Close' : df['close'],  
                        'Low' : df['low'],'Volume' : df['volume'],  
                        'Adj Close':df['close']})  
    # 按照Yahoo格式的要求,调整df2各段的顺序  
    dt = df2.pop('Date Time')  
    df2.insert(0,'Date Time',dt)  
    o = df2.pop('Open')  
    df2.insert(1,'Open',o)  
    h = df2.pop('High')  
    df2.insert(2,'High',h)  
    l = df2.pop('Low')  
    df2.insert(3,'Low',l)  
    c = df2.pop('Close')  
    df2.insert(4,'Close',c)  
    v = df2.pop('Volume')  
    df2.insert(5,'Volume',v)  
    # 新格式数据存盘,不保存索引编号  
    df2.to_csv("15-1.csv", index=False)  
    
    展开全文
  • 使用如下代码从TuShare下载沪深300每只股票的历史成交记录并按股票、日期保存到本地。主要是为了以后查询方便快速。 import numpy as np import pandas as pd import tushare as ts import datetime import time ...



    使用如下代码从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,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。



    展开全文
  • 但是,如果想做分钟k线的技术分析,或者想了解基本面和消息面的数据,就用得着Tushare了。 PyalgoTrade使用的基本数据格式有两种,一是Yahoo格式,二是NinjaTrader格式。 Yahoo格式的数据分段为:

    分析A股历史数据,首先需要确定数据来源。如果只想做日k线、周k线的技术分析,可以用PyalgoTrade直接从yahoo、google等下载数据,用不着Tushare。但是,如果想做分钟k线的技术分析,或者想了解基本面和消息面的数据,就用得着Tushare了。

    PyalgoTrade使用的基本数据格式有两种,一是Yahoo格式,二是NinjaTrader格式。

    Yahoo格式的数据分段为:

    日线数据:Date,Open,High,Low,Close,Volume,Adj Close
    分钟数据:Date Time,Open,High,Low,Close,Volume,Adj Close
    

    Tushare提供的数据格式,日k线、分钟线均为:

    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:换手率[注:指数无此项]
    

    把Tushar数据转换成Yahoo格式,原本很简单。但我对Pandas不熟,只好找来相关pdf书,加上Baidu,在Jupyter Notebook中,边学边练,实验多次,最终搞定。

    [python] view plain copy
    在CODE上查看代码片派生到我的代码片

    import tushare as ts  
    import pandas as pd  
    
    # 得到15分钟数据(股票300336,始于2016-01-01,止于2016-05-24,15分钟数据)  
    data = ts.get_hist_data('300336','2016-01-01','2016-05-24','15')  
    # 数据存盘  
    data.to_csv('15-300336-2016.csv')  
    # 读出数据,DataFrame格式  
    df = pd.read_csv('15-300336-2016.csv')  
    # 从df中选取数据段,改变段名;新段'Adj Close'使用原有段'close'的数据  
    df2 = pd.DataFrame({'Date Time' : df['date'], 'Open' : df['open'],  
                        'High' : df['high'],'Close' : df['close'],  
                        'Low' : df['low'],'Volume' : df['volume'],  
                        'Adj Close':df['close']})  
    # 按照Yahoo格式的要求,调整df2各段的顺序  
    dt = df2.pop('Date Time')  
    df2.insert(0,'Date Time',dt)  
    o = df2.pop('Open')  
    df2.insert(1,'Open',o)  
    h = df2.pop('High')  
    df2.insert(2,'High',h)  
    l = df2.pop('Low')  
    df2.insert(3,'Low',l)  
    c = df2.pop('Close')  
    df2.insert(4,'Close',c)  
    v = df2.pop('Volume')  
    df2.insert(5,'Volume',v)  
    # 新格式数据存盘,不保存索引编号  
    df2.to_csv("15-1.csv", index=False) 
    展开全文
  • 量化分析:把Tushare数据源,规整成PyalgoTrade所需格式 ...但是,如果想做分钟k线的技术分析,或者想了解基本面和消息面的数据,就用得着Tushare了。 PyalgoTrade使用的基本数据格式有两种,一是Yahoo...
  • 追踪聪明钱 -- 基于TuShare数据的计算

    千次阅读 2017-11-16 22:41:00
    优矿上有一篇文章 "追踪聪明钱 - A股市场交易的微观结构初探", 它根据方正金工的研报『跟踪聪明钱:从分钟行情数据到选股因子』, 基于聪明因子对A股数据进行了自己的回测。具体参加如下链接。 追踪聪明钱 - A股市场...
  • 但是这个数据不能通过行情软件查询,所以可以使用tushare提供的数据接口进行处理。 备注:因为权限问题,所以调用这个封装接口后,调用需要花费的时间很多,需要暂停一分钟调用五个板块的数据。 同时笔者并不擅长...
  • Python+Tushare+Excel场景和工具不想996就多赚钱(1分钟)需求简介(1分钟Tushare简介(1分钟)思路分析三行代码取数据(2分钟)最麻烦的一步:保存成excel(5分钟)最后进行分析结果截图 场景和工具 不想996就...
  • tushare 模块参数

    千次阅读 2017-04-08 00:04:09
    一、get_hist_data 历史行情数据 获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据...
  • Tushare使用点评

    2019-09-23 11:46:47
    没有1分钟K线历史数据数据不准确(相比行情软件),无法准确计算技术指标,如EXPMA、MACD; 数据缺失(如2016/2/5 10:05的5分钟K线缺失); 转载于:https://www.cnblogs.com/MMonica/p/5188207.html...
  • 打算采用一张表存储所有的股票,但是区分日线,15分钟线,30分钟线等等,如日线就是一个day表,15分钟线就是一个15min表。这样就可以大大减少表的数量,同时能够存储所有的股票信息。 为了区分每个记录...
  • Tushare库之日线行情

    2019-08-01 23:21:24
    描述:获取股票行情数据,或通过通用行情接口获取数据,包含了前后复权数据. 输入参数 名称 类型 必选 描述 ts_code str N 股票代码(二选一) trade_date str N 交易日期(二选...
  • 但是当你想分不同股票,分别进行不同的处理,并且分别存储在不同的文件中时,就会很麻烦,因为有的tushare接口有每分钟调用限制,或者有的对数据的后续处理比较复杂,可能每一支股票都要跑很久,这样整个程序就要用...
  • tushare get_hist_data()详解

    千次阅读 2019-12-07 16:43:37
    获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。get_hist_data()只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果...
  • 最近,在tushare官方文档中,看到这个一个方法pro.stock_basic(),作用是可以爬取A股所有上市股票基本信息。然后我就试了一下,默认条件下可以爬取到A股上市的的所有股票基本数据,共4179条数据(截止20210306),...
  • get_k_data 接口文档全新的免费行情数据接口 原创:Jimmy挖地兔2016-11-06 前言在tushareAPI里,曾经被用户喜欢和作为典范使用的...迎来的是一个集分钟数据、日周月数据,前后复权数据,揽括所有股票、指数和ETF的...
  • 实盘数据交易问题

    2020-12-26 00:06:44
    如果我想实现每分钟查询数据,并产生信号,目前使用 tushare 的那个 DataSerivie 是否可以通过 JAQS 的策略模板实现?还是说必须自己配置一个本地 DataCore? 交易是否可以通过 ctp 直接...
  • python的tushare库提供了财经信息的结构,我们使用以下四行代码,就可以获得今天股票的信息并且存在.csv文件当中。 import tushare as ts ...一分钟之后,我们就可以在工程目录下面获得.csv数据表...
  • 一、国内股票历史数据 ...get_h_data:此接口可以获取历史全部数据,但获取速度受限,请求过快会封IP,不报错上限应该在一分钟五条 参数autype:可设置数据形式是前复权、后复权、不复权 参数p...
  • TuShare是一个很优秀的免费开源项目,但它的数据来源方是财经网站,无法满足大数据量下载的需求。 Wind是万得公司的财经软件,在专业金融机构上占有率极高。但落地数据库太贵,在线API又有流量限制。 Choice是东方...
  • pythonstock V1项目简介 ...3)使用cron做定时任务,每天进行数据抓取计算,每天18点开始进行数据计算,计算当日数据,使用300天数据进行计算,大约需要15分钟计算完毕。 4)股票数据接口防止被封,按天进行数据
  • 3)使用corn做定时任务,每天进行数据抓取计算,每天18点开始进行数据计算,计算当日数据,使用300天数据进行计算,大约需要15分钟计算完毕。 4)股票数据接口防止被封,按天进行数据缓存,储存最近3天数据,每天...
  • 量化入门最快的方式,选一只股票,选一个量化平台,在上面把常见的量化模型遍历学习一遍,找到有效赚钱的方式。 国外的量化平台 ...Numeraire QuantConnect 国内的量化平台 米矿:创始团队有实际交易...tushare数据

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

tushare分钟数据