今天的主要内容,是根据特定的标准或者说条件,找到符合我们要求的股票列表。
预告:
下一篇将介绍大家最关心的部分,如何获取股票的日线、周线、月线行情数据。中间也有可能会穿插一些时间序列处理的内容,感兴趣的同学欢迎关注!
首先,我假设各位都已经按照上一篇文章安装并设置好了我们的Python tushare包,接下来,就开始进行我们的第一项小挑战,那就是找到符合特定标准的股票列表。
第一步,我们先导入tushare:
# 导入tushare import tushare as ts pro = ts.pro_api()
沪深港通标的
很多投资者倾向于投资沪深港通的标的,因为这些股票得到了更多国际投资者的青睐。在tushare中,我们通过stock_basic接口获取股票列表,其中is_hs参数用于筛选沪深港通标的列表,具体规则如下:
- 沪股通标的:is_hs="H";
- 深股通标的:is_hs="S";
- 其他:is_hs="N".
# 沪股通股票列表 pro.stock_basic(is_hs='H').head()
# 深股通股票列表 pro.stock_basic(is_hs='S').head()
# 非沪深港通股票列表 pro.stock_basic(is_hs='N').head()
上市状态
在stock_basic接口中,我们可以用list_status参数筛选不同上市状态的股票。
- 上市状态:list_status="L";
- 退市状态:list_status="D";
- 暂停上市状态:list_status="P".
# 正常上市股票 pro.stock_basic(list_status='L').head()
# 已退市股票 pro.stock_basic(list_status='D').head()
交易所
我们还可以看分别在上交所和深交所上市的股票列表,只需要在stock_basic中传入exchange参数即可。
- 上交所:exchange="SSE";
- 深交所:exchange="SZSE:.
# 上交所股票 pro.stock_basic(exchange='SSE').head()
行业
除了参数中提供的筛选维度,我们还可以获取所有股票列表数据之后,用一些字段进行筛选。比如说行业:
df = pro.stock_basic() df.query('industry == "银行"').head()
上市板块
我们还可以按照上市板块来挑选股票,这一点也很有用,有些投资人侧重于某个板块的股票,比如中小板、创业板等。
df = pro.stock_basic() df.query('market == "创业板"').head()
地区
我们还能挑选属于某个特定地区的股票。当我们需要寻找地域联动效应或者某个地区爆出了某个利好时,这个筛选方法会很有帮助。
df = pro.stock_basic() df.query('area == "深圳"').head()
上市公司基本信息
在获取了股票列表之后,我们可能还想要了解一下它们的基本信息,比如注册资本、所在城市、经营范围等,这时我们可以使用stock_company接口。
接口默认仅提供了部分字段,需要更多字段的可以用fields参数来指定所需要的列。
pro.stock_company().head(1).T
获取深圳本地股票
我们来看一个案例,比如说之前有国家帮助中小企业解决质押风险,深圳国资委率先响应,然后我们想看一下可能受益的股票有哪些,因此我们想要先找到深圳的本地股列表,并且查看他们的主营业务、员工人数。
# 获取深圳本地上市公司股票列表 import pandas as pd # 获取上市公司信息 fields = ('ts_code,exchange,chairman,province,' 'city,office,employees,main_business') df = pro.stock_company(fields=fields) df.query('city == "深圳市"').head()
获取员工数超过十万的上市公司股票
可能我们还想通过员工数来筛选出大型的企业,这时我们可以通过employees字段完成筛选。
df = pro.stock_company() df.query('employees >= 100000')
是不是很简单?不过tushare的强大远不止于此,下一篇文章中我们将介绍大家最关心的部分,如何获取股票的日线行情数据。