本文将从多个方面详细讲解Python如何获取持仓数据。
一、tushare获取A股股票持仓数据
使用Python获取A股股票持仓数据,可以考虑使用tushare这个开源的Python量化交易库。
tushare提供了get_top_holdings()函数,可以获取某一只股票的前十大股东。
示例代码如下:
import tushare as ts # 获取上证指数成分股 stock_list = ts.get_sz50s() # 获取前十大股东持仓比例 for stock_code in stock_list['code']: df_holdings = ts.get_top_holdings(stock_code) print(df_holdings)
二、baostock获取A股股票持仓数据
除了tushare之外,还可以考虑使用baostock这个免费的开源量化交易平台。
baostock提供了bs.query_stock_holder_trade_detail()函数,可以获取某一只股票的股东、持股数量、持股比例等信息。
示例代码如下:
import baostock as bs # 登录baostock lg = bs.login() # 获取上证指数成分股代码 rs = bs.query_sz50_stocks() sz50_stocks = rs.get_data() # 获取前十大股东持仓数据 for code in sz50_stocks['code']: rs = bs.query_stock_holder_trade_detail(code=code, start_date='2021-01-01', end_date='2021-03-31') data_list = [] while (rs.error_code == '0') & rs.next(): data_list.append(rs.get_row_data()) result = pd.DataFrame(data_list, columns=rs.fields) print(result) # 登出baostock bs.logout()
三、新浪财经获取深市股票持仓数据
除了以上两种方式之外,还可以使用新浪财经的接口获取深市股票的持仓数据。
可以通过调用http://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CirculateStockHolder/stockid/600000/holdertype/1.phtml 这个链接,来获取股票持仓数据。
示例代码如下:
import requests import re url = 'http://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CirculateStockHolder/stockid/600000/holdertype/1.phtml' r = requests.get(url) r.encoding = r.apparent_encoding html = r.text # 使用正则表达式获取股东信息 p_re = re.compile(r'(.*?) ') result = p_re.findall(html) print(result)
四、总结
通过以上三种方式,我们可以非常方便地使用Python获取A股股票的持仓数据。在实际的股票投资过程中,了解股票的持仓情况可以帮助我们更好地了解市场,做出更为明智的投资决策。