【问题标题】:Python: Transform ISIN, WKN or RIC to Yahoo Ticker Symbol?Python:将 ISIN、WKN 或 RIC 转换为 Yahoo Ticker Symbol?
【发布时间】:2022-04-19 03:11:56
【问题描述】:

根据这篇帖子here,我可以借助库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)的知识获取历史股票数据?

【问题讨论】:

    标签: python stock pandas-datareader ticker isin


    【解决方案1】:

    超级丑陋且容易出错,但总比没有好:

    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"]
    

    所以这段代码实际上可能是随机的,但它可能会给你一个方向。

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 2019-04-18
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 2012-06-27
      • 2018-07-08
      相关资源
      最近更新 更多