通过tushare获取上交所、深交所股票收盘数据

2022-02-11  本文已影响0人  Caucher

tushare是一个股票数据社区,由社区维护者存储数据,开发数据接口供用户使用。获取数据需要积分权限。
我的tushare_id: 494350
编者想要获取连续日的股票数据作为时间序列数据构造数据集。本文中分享数据拉取代码,输出为二进制文件。
tushare网站:https://tushare.pro/

import tushare as ts
import datetime
import struct
data = {}
fn = "C:\\Series4Similarity_Search\\stock\\"
pro = ts.pro_api("YOURTOKEN")
dt = datetime.datetime(year=2004, month=1, day=8)
end = datetime.datetime(year=2010, month=1, day=1)
written = 0
d = 0
while dt < end:
    new_dt = dt + datetime.timedelta(days=2)
    df = pro.daily(start_date=dt.strftime("%Y%m%d"), end_date=new_dt.strftime("%Y%m%d"), fields='ts_code,close')
    print(new_dt, df.shape[0])
    if df.shape[0] >= 5000:
        break
    dt = new_dt
    for index, row in df.iterrows():
        ts_code = row['ts_code']
        if ts_code in data:
            data[ts_code].append(float(row['close']))
        else:
            data[ts_code] = [float(row['close'])]
        if len(data[ts_code]) >= 32:
            with open(fn + ts_code, "ab+") as f:
                for i in data[ts_code]:
                    f.write(struct.pack('<f', i))
            written += len(data[ts_code])
            data[ts_code] = []
    d += 1

for ts_code in data:
    value = data[ts_code]
    if len(value) > 0:
        with open(fn + ts_code, "ab+") as f:
            for i in value:
                f.write(struct.pack('<f', i))
        written += len(value)

print(written)

上一篇下一篇

猜你喜欢

热点阅读