Python:将 ISIN、WKN 或 RIC 转换为 Yahoo Ticker Symbol?
Python: Transform ISIN, WKN or RIC to Yahoo Ticker Symbol?
基于此 post ,我有可能在库 investpy 的帮助下将 ISIN 转换为某种形式的股票代码。这种转换对大多数美国股票都是正确的。
但是这个符号本身在任何情况下都与我需要调用的股票代码不同pandas_dataframe。我认为更确切地说它符合 RIC 符号(例如看 here)。
例如,如果我尝试以下调用:
import investpy
df = investpy.stocks.search_stocks(by='isin', value='DE0006048432')
print(df)
我的输出是:
country name ... currency symbol
0 germany Henkel VZO ... EUR HNKG_p
1 italy Henkel VZO ... EUR HNKG_p
2 switzerland Henkel VZO ... EUR HNKG_pEUR
但是
from pandas_datareader import data as pdr
stock = pdr.DataReader('HNKG_p', data_source="yahoo", start="2021-01-01", end="2021-10-30")
给我一个错误。
我需要的正确调用是:
stock = pdr.DataReader('HEN3.DE', data_source="yahoo", start="2021-01-01", end="2021-10-30")
所以我的问题是:
- 有没有办法将 ISIN(可能是 WKN 或 RIC)转换为
ticker-symbol yahoo 需要 DataReader 调用。
或更一般
- 有没有办法根据 ISIN(可能是 WKN 或 RIC)获取历史股票数据?
超级丑陋且容易出错,但聊胜于无:
import investpy as ip
import yahooquery as yq
from pandas_datareader import data as pdr
company_name = ip.stocks.search_stocks(by='isin', value='DE0006048432')
company_name = company_name["name"][0].split(' ')[0]
symbol = yq.search(company_name)["quotes"][0]["symbol"]
stock = pdr.DataReader(symbol, data_source="yahoo", start="2021-01-01", end="2021-10-30")
您可以使用诸如 fuzzywuzzy 之类的东西和带有 doctest 的普通测试模块来扩展此代码。不要在生产中使用此代码。
我什至不确定这个调用是否保持返回值的顺序:
yq.search(company_name)["quotes"]
所以这段代码实际上可能会随机运行,但它可能会给你一个方向。
基于此 post
但是这个符号本身在任何情况下都与我需要调用的股票代码不同pandas_dataframe。我认为更确切地说它符合 RIC 符号(例如看 here)。
例如,如果我尝试以下调用:
import investpy
df = investpy.stocks.search_stocks(by='isin', value='DE0006048432')
print(df)
我的输出是:
country name ... currency symbol
0 germany Henkel VZO ... EUR HNKG_p
1 italy Henkel VZO ... EUR HNKG_p
2 switzerland Henkel VZO ... EUR HNKG_pEUR
但是
from pandas_datareader import data as pdr
stock = pdr.DataReader('HNKG_p', data_source="yahoo", start="2021-01-01", end="2021-10-30")
给我一个错误。
我需要的正确调用是:
stock = pdr.DataReader('HEN3.DE', data_source="yahoo", start="2021-01-01", end="2021-10-30")
所以我的问题是:
- 有没有办法将 ISIN(可能是 WKN 或 RIC)转换为 ticker-symbol yahoo 需要 DataReader 调用。
或更一般
- 有没有办法根据 ISIN(可能是 WKN 或 RIC)获取历史股票数据?
超级丑陋且容易出错,但聊胜于无:
import investpy as ip
import yahooquery as yq
from pandas_datareader import data as pdr
company_name = ip.stocks.search_stocks(by='isin', value='DE0006048432')
company_name = company_name["name"][0].split(' ')[0]
symbol = yq.search(company_name)["quotes"][0]["symbol"]
stock = pdr.DataReader(symbol, data_source="yahoo", start="2021-01-01", end="2021-10-30")
您可以使用诸如 fuzzywuzzy 之类的东西和带有 doctest 的普通测试模块来扩展此代码。不要在生产中使用此代码。
我什至不确定这个调用是否保持返回值的顺序:
yq.search(company_name)["quotes"]
所以这段代码实际上可能会随机运行,但它可能会给你一个方向。