0

我正在尝试提取软件包中使用的一堆国际股票的价格数据,tq_gettidyquant在提取基于股票代码的数据时遇到问题,因为我拥有的数据只有 ISIN 和 SEDOL 作为识别值。当我在 yahoo Finance 的搜索栏中输入任何一个时,都会显示正确的股权(我假设 tq_get 使用 yahoo Finance)但是当我在代码中输入它时,我会收到一条错误消息。

我尝试将 ISIN 和 SEDOL 值都输入到代码中,并且每个都返回一个错误。

阿里巴巴 (BABA) - 在美国上市,所以这不是问题......

世多:

test1 <- tq_get("BP41ZD1", get = "stock.prices",from = "2016-10-24",to = "2019-10-25")

伊辛:

test2 <- tq_get("US01609W1027",get = "stock.prices",from = "2016-10-24",to = "2019-10-25")

错误信息:

x = 'BP41ZD1', get = 'stock.prices': Error: BP41ZD1 download failed after two attempts. Error message: HTTP error 404. x = 'US01609W1027', get = 'stock.prices': Error: US01609W1027 download failed after two attempts. Error message: HTTP error 404.

理想情况下,我希望这就像“AAPL”或“MSFT”在股票代码中一样工作。

任何帮助将非常感激!!!

4

2 回答 2

0

更新:我有点想通了......但它不是很好。我可能必须像我在香港所做的那样分解每个交易所和格式,以便它在雅虎财经上搜索。本质上,我需要在各个交易所的代码后添加“.XX”(即香港的.HK或伦敦的.L)。如果其他人遇到此问题,这就是我最终要做的事情:

ixus_adr <- ixus %>%
  filter(exchange %in% c("NASDAQ","New York Stock Exchange Inc."))

ixus_hk <- ixus %>%
  filter(exchange == "Hong Kong Exchanges And Clearing Ltd") 
ixus_hk$ticker <- str_replace_all(ixus_hk$ticker, "[^[:alnum:]]", "")
ixus_hk$ticker <- as.numeric(ixus_hk$ticker) 
ixus_hk$ticker <- str_pad(ixus_hk$ticker, 4, pad = "0")
ixus_hk <- ixus_hk %>%
  mutate(xch = "HK")
ixus_hk$xticker = str_c(ixus_hk$ticker, ixus_hk$xch, sep = ".")

ixus <- ixus %>%
  filter(class == 'Equity') %>%
  filter(exchange %in% c("Asx - All Markets", "Athens Exchange S.A. Cash Market", "Bolsa De Madrid", "Bolsa Mexicana De Valores", "Borsa Italiana", "Euronext Amsterdam", "Gretai Securities Market", "Indonesia Stock Exchange", "Irish Stock Exchange - All Market", "Istanbul Stock Exchange", "Johannesburg Stock Exchange", "Korea Exchange (Stock Market)", "London Stock Exchange", "Nasdaq Omx Helsinki Ltd.", "National Stock Exchange Of India", "New Zealand Exchange Ltd", "Nyse Euronext - Euronext Brussels", "Nyse Euronext - Euronext Lisbon", "Nyse Euronext - Euronext Paris", "Omx Nordic Exchange Copenhagen A/S", "Oslo Bors Asa", "Qatar Exchange", "Santiago Stock Exchange", "Saudi Stock Exchange", "Shanghai Stock Exchange", "Singapore Exchange", "SIX Swiss Exchange", "Six Swiss Exchange Ag", "Standard-Classica-Forts", "Taiwan Stock Exchange", "Tel Aviv Stock Exchange", "Tokyo Stock Exchange", "Toronto Stock Exchange", "Wiener Boerse Ag", "XBSP", "Xetra"))

ixus <- ixus %>%
  mutate(xch = case_when(
    exchange=="Asx - All Markets" ~ "AX",
    exchange=="Athens Exchange S.A. Cash Market" ~ "AT",
    exchange=="Bolsa De Madrid" ~ "MC",
    exchange=="Bolsa Mexicana De Valores" ~ "MX",
    exchange=="Borsa Italiana" ~ "MI",
    exchange=="Euronext Amsterdam" ~ "AS",
    exchange=="Gretai Securities Market" ~ "TWO",
    exchange=="Indonesia Stock Exchange" ~ "JK",    
    exchange=="Irish Stock Exchange - All Market" ~ "IR",
    exchange=="Istanbul Stock Exchange" ~ "IS",
    exchange=="Johannesburg Stock Exchange" ~ "JO",
    exchange=="Korea Exchange (Stock Market)" ~ "KS",
    exchange=="London Stock Exchange" ~ "L",
    exchange=="Nasdaq Omx Helsinki Ltd." ~ "HE",
    exchange=="National Stock Exchange Of India" ~ "NS",
    exchange=="New Zealand Exchange Ltd" ~ "NZ",
    exchange=="Nyse Euronext - Euronext Brussels" ~ "BR",    
    exchange=="Nyse Euronext - Euronext Lisbon" ~ "LS",
    exchange=="Nyse Euronext - Euronext Paris" ~ "PA",
    exchange=="Omx Nordic Exchange Copenhagen A/S" ~ "CO",
    exchange=="Oslo Bors Asa" ~ "OL",
    exchange=="Qatar Exchange" ~ "QA",
    exchange=="Santiago Stock Exchange" ~ "SN",
    exchange=="Saudi Stock Exchange" ~ "SR",
    exchange=="Shanghai Stock Exchange" ~ "SS",
    exchange=="Singapore Exchange" ~ "SI",
    exchange=="SIX Swiss Exchange" ~ "SW",
    exchange=="Six Swiss Exchange Ag" ~ "SW",
    exchange=="Standard-Classica-Forts" ~ "ME",
    exchange=="Taiwan Stock Exchange" ~ "TW",
    exchange=="Tel Aviv Stock Exchange" ~ "TA",
    exchange=="Tokyo Stock Exchange" ~ "T",
    exchange=="Toronto Stock Exchange" ~ "TO",
    exchange=="Wiener Boerse Ag" ~ "VI",
    exchange=="XBSP" ~ "SA",
    exchange=="Xetra" ~ "DE"))

ixus$ticker <- str_replace_all(ixus$ticker, "[^[:alnum:]]", "")
ixus$xticker = str_c(ixus$ticker, ixus$xch, sep = ".")

hk_tickers <- as.vector(ixus_hk[,18]) %>%
  na.omit
adr_tickers <- as.vector(ixus_adr[,1]) %>%
  na.omit()
intl_tickers <- as.vector(ixus[,18]) %>%
  na.omit()

ixus_hk %>%
  select(xticker,equity,price,currency,sector,location)
ixus_adr %>%
  select(ticker,equity,price,currency,sector,location)
ixus %>%
  select(xticker,equity,price,currency,sector,location)

hk_data <- tq_get(hk_tickers, 
                   get = "stock.prices",
                   from = t0,
                   to = t1)

adr_data <- tq_get(adr_tickers, 
                   get = "stock.prices",
                   from = t0,
                   to = t1)

intl_data <- tq_get(intl_tickers, 
                   get = "stock.prices",
                   from = t0,
                   to = t1)

如果有人认为这可以更有效或更正确地完成,请随时给我发消息或在此线程上发帖。

于 2019-10-28T23:26:41.630 回答
0

来自雅虎的免责声明:

雅虎财经搜索并非旨在搜索:

  • 分析师
  • ISIN 代码
  • 首席执行官姓名

yahoo的首页返回数据,并不意味着api中的搜索引擎会返回这个。搜索 ISIN 代码主要由经纪人负责。您可以使用来自交互式代理的 API(可能通过 ibrokers 包),但很可能您需要为某些数据流付费。

于 2019-10-28T12:35:01.457 回答