获取所有股票数据

该代码示例展示了如何利用tushare库获取中国股票市场的指数和个股数据,包括上证综指、深证成指等。通过设置日期范围,可以获取指定时间段内的每日交易数据,并将其保存为Excel文件。此外,还提供了获取所有上市股票基本信息的功能,以获取股票代码、名称、上市日期等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#%%

#先引入后面可能用到的包(package)
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns 
sns.set() 
%matplotlib inline 
#正常显示画图时出现的中文和负号
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
#使用tushare获取交易数据
#设置token
import tushare as ts 
token=''
ts.set_token(token)
pro=ts.pro_api(token)
#pro=ts.pro_api(token)
index={'上证综指': '000001.SH','深证成指': '399001.SZ',
 '沪深300': '000300.SH','创业板指': '399006.SZ',
 '上证50': '000016.SH','中证500': '000905.SH',
 '中小板指': '399005.SZ','上证180': '000010.SH'}
#获取当前交易的股票代码和名称
def get_code():
    df = pro.stock_basic(exchange='', list_status='L')
    codes=df.ts_code.values
    names=df.name.values
    stock=dict(zip(names,codes))
    #合并指数和个股成一个字典
    stocks=dict(stock,**index)
    return stocks 
#获取行情数据
def get_data(stock,start='20151009',end=''):
    #如果代码在字典index里,则取的是指数数据
    code=get_code()[stock]
    if code in index.values():
        df=ts.pro_bar(ts_code=code,asset='I',start_date=start, end_date=end)
    #否则取的是个股数据
    else:
        df=ts.pro_bar(ts_code=code, adj='qfq',start_date=start, end_date=end)
        #将交易日期设置为索引值
        df.index=pd.to_datetime(df.trade_date)
        df=df.sort_index()
    return df

import tushare as ts
import pandas as pd
import time

def maintask():
    pro = ts.pro_api()
    #获取基础信息数据,包括股票代码,名称,上市日期,退市日期等
    pool = pro.stock_basic(exchange='',
                          list_status = 'L',
                          adj = 'qfq',
                          fields = 'ts_code,symbol,name,area,industry,fullname,list_date,market,exchange,is_hs')
    #print(pool.head()) 
    print('获得上市股票总数:',len(pool)-1)
    j=1
    for i in pool.ts_code:
        print('正在获取第%d家,股票代码%s' %(j,i))
        #接口限制访问200次/分钟,加一点微小的延时防止被ban
        time.sleep(0.301)
        j += 1
        df = pro.daily(ts_code=i,
                      start_date = startdate,
                      end_date = enddate,
                      fields = 'ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount')
        #print(df.head())
        writer = pd.ExcelWriter(i + '.xlsx')
        df.to_excel(writer,sheet_name= i + '',index=False)

if __name__== '__main__':
    #设置起始日期
    startdate='19980101'
    enddate='20200224'
    #主程序
    maintask()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神出鬼没,指的就是我!

必须花钱,数据超好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值