失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 股票上市代码及上市时间

股票上市代码及上市时间

时间:2023-05-19 20:04:46

相关推荐

股票上市代码及上市时间

最近开始玩股票量化,由于想要做完整的股票回测,因此股票的上市和退市信息就必不可少。因为我们回测的时候必须要知道某一日期沪深股票的成分包含哪些对吧。所以我们要把沪深全部股票的上市时间、退市时间全部都爬下来(保存到本地以后检索会更快)。

0.1.确认主要工具

要用到的工具包括:

(1)python:基本工具

(2)pandas:格式化数据处理

(3)通联数据接口:

(4)通联接口API:/docs/pages/viewpage.action?pageId=1867781

1.开始获取数据

首先,我们先要获取全部上市公司的上市时间和退市时间(如果有)的列表,用通联数据的接口会发现我们的任务非常简单。

from pandas import DataFramefrom dataapiclient import Clientimport jsonclient = Client()client.init('cae5c4acc4ad4ccb93a8aaac4b8adb04363feaa9852c34d14ddd2248613b09b3')url='/api/equity/getEqu.json?field=ticker,secShortName,listDate,delistDate&listStatusCD=L,S,DE,UN&secID=&ticker=&equTypeCD=A'code, result = client.getData(url)j = json.loads(result.decode())d = DataFrame(j['data'])d = d.set_index('ticker')d = d[['secShortName','listDate','delistDate']]d.to_csv('data/ticker_and _day_of_(de)list_date.csv')

如此一来,ticker_and _day_of_(de)list_date.csv文件中就保存了所需内容。需要注意的是数据中有个特例:DY600019

这是由于当时的重组并购导致主体变更,因此通联数据在股票代码前加上了DY前缀以示区别。

然后为了方便的获取历史某一时刻全部可交易的A股股票代码,我们定义一个函数,默认使用本地数据:get_a_stocks(date=None, update=False),date默认日期是系统当前日期,update表示是否需要更新本地数据。文件名beefinance.py

from pandas import DataFramefrom datetime import datetimefrom dataapiclient import Clientimport pandasimport jsonimport osimport typesimport datetimeimport timedef get_a_stocks(date=None, update=False):if date is None:date = datetime.datetime.now()if isinstance(date,str):date = datetime.datetime.strptime(date, "%Y-%m-%d")if not isinstance(date,datetime.datetime):raise ValueError('date不接受此类型')if not isinstance(update, bool):raise ValueError('update不接受此类型')data_dir = u'data'data_filename = data_dir + u'/ticker_and _day_of_(de)list_date.csv'if not os.path.exists(data_dir):os.mkdir(data_dir)if (not os.path.exists(data_filename)) or update:client = Client()client.init('cae5c4acc4ad4ccb93a8aaac4b8adb04363feaa9852c34d14ddd2248613b09b3')url='/api/equity/getEqu.json?field=ticker,secShortName,listDate,delistDate&listStatusCD=L,S,DE,UN&secID=&ticker=&equTypeCD=A'code, result = client.getData(url)j = json.loads(result.decode())d = DataFrame(j['data'])d = d.set_index('ticker')d = d[['secShortName','listDate','delistDate']]d.to_csv(data_filename, encoding='utf-8')d['listDate'] = pandas.to_datetime(d['listDate'])d['delistDate'] = pandas.to_datetime(d['delistDate'])d = d[d['listDate']<=date]d1 = d[pandas.isnull(d['delistDate'])]d2 = d[pandas.notnull(d['delistDate'])]d2 = d2[d2['delistDate']>date]d = d1.append(d2)return delse:d = pandas.read_csv(data_filename, index_col='ticker', parse_dates=['listDate','delistDate'],encoding='utf-8')d['listDate'] = pandas.to_datetime(d['listDate'])d['delistDate'] = pandas.to_datetime(d['delistDate'])d = d[d['listDate']<=date]d1 = d[pandas.isnull(d['delistDate'])]d2 = d[pandas.notnull(d['delistDate'])]d2 = d2[d2['delistDate']>date]d = d1.append(d2)return d

下面测试效果:

from beefinance import get_a_stocksd = get_a_stocks('-05-05')print(d)

data/ticker_and _day_of_(de)list_date.csvsecShortName listDate delistDateticker平安银行 1991-04-03 NaT万科A 1991-01-29 NaT国农科技 1991-01-14 NaT世纪星源 1990-12-10 NaT深振业A 1992-04-27 NaT全新好 1992-04-13 NaT神州高铁 1992-05-07 NaT中国宝安 1991-06-25 NaT美丽生态 1995-10-27 NaT深物业A 1992-03-30 NaT南玻A 1992-02-28 NaT沙河股份 1992-06-02 NaT深康佳A 1992-03-27 NaT深中华A 1992-03-31 NaT神州长城 1992-06-16 NaT深深宝A 1992-10-12 NaT深华发A 1992-04-28 NaT深科技 1994-02-02 NaT深赤湾A 1993-05-05 NaT深天地A 1993-04-29 NaT特力A 1993-06-21 NaT飞亚达A 1993-06-03 NaT深圳能源 1993-09-03 NaT国药一致 1993-08-09 NaT深深房A 1993-09-15 NaT富奥股份 1993-09-29 NaT中粮地产 1993-10-08 NaT深桑达A 1993-10-28 NaT*ST新都 1994-01-03 NaT神州数码 1994-05-09 NaT... ... ... ...紫金矿业 -04-25 NaT*ST新集 -12-19 NaT中国远洋 -06-26 NaT建设银行 -09-25 NaT金钼股份 -04-17 NaT中国银行 -07-05 NaT中国重工 -12-16 NaT大唐发电 -12-20 NaT中信银行 -04-27 NaT出版传媒 -12-21 NaT招商地产 1993-06-07 -12-30白云山A 1993-11-08 -04-26美的电器 1993-11-12 -09-18宏源证券 1994-02-02 -01-26盐湖集团 1995-03-03 -03-22国恒退 1996-03-20 -07-13金马集团 1996-08-19 -08-14*ST创智 1997-06-26 -02-08*ST炎黄 1998-05-29 -03-27退市长油 1997-06-12 -06-05莱钢股份 1997-08-28 -02-28天方药业 2000-12-27 -07-15路桥建设 2000-07-25 -03-01太行水泥 2002-08-22 -02-18百联股份 1993-02-19 -08-23退市博元 1990-12-19 -05-13东方明珠 1994-02-24 -05-20广汽长丰 -06-14 -03-20*ST二重 -02-02 -05-21中国北车 -12-29 -05-20[1815 rows x 3 columns]

/prpl/p/5561327.html

如果觉得《股票上市代码及上市时间》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。