如何将ISIN/WKN转换为股票代码以使用pandas_datareader获取历史行情数据
问题解答
- 首先明确:不存在可以直接将ISIN/WKN转换为股票代码的通用算法。ISIN是国际证券识别码,由各国证券监管机构统一分配,WKN是德国交易所专属的证券编码,二者和各交易所自定义的股票代码没有固定的逻辑映射关系,必须通过证券编码映射库查询获取对应关系。
- 可行的批量转换方案可以使用OpenFIGI的Python封装库完成映射,它是业内通用的金融产品识别映射服务,有免费调用额度,完全可以覆盖大批量股票列表的转换需求:
- 首先安装依赖库:
pip install openfigi - 参考代码示例:
大批量查询时注意控制请求频率,免费版支持每分钟最多100次请求,单请求最多包含100个查询任务,足够处理数十万量级的股票列表。from openfigi import OpenFigi # 初始化客户端,申请免费API key填入即可 of = OpenFigi('你的API_KEY') # 批量提交查询任务,支持同时查询ISIN、WKN jobs = [ {"idType": "ID_ISIN", "idValue": "US0162551017"}, {"idType": "ID_WKN", "idValue": "A1X3G7"} ] response = of.map(jobs) # 解析返回结果即可拿到对应ticker代码和交易所信息 for item in response: print(item['data'][0]['ticker'], item['data'][0]['exchCode']) - 首先安装依赖库:
- 拿到转换后的ticker后,就可以直接传入
pandas_datareader的DataReader接口完成历史行情查询。 - 如果是小批量临时查询雅虎数据源的行情,也可以尝试直接将ISIN作为ticker参数传入,部分场景下可以直接返回正确数据,无需额外转换。
内容的提问来源于stack exchange,提问作者Martin Kunze
相关产品推荐
相关产品推荐

