8

RまたはPythonで毎日の株価と出来高を取得する方法をいくつか知っていますが、これらが(RまたはPythonのいずれかを使用して)P / E比、会社のWebサイト、利回りなどの株式に関する詳細情報を取得する方法であるかどうか疑問に思っています.できれば現在の値だけでなく、過去の値も含めてください。

ありがとう。

4

2 に答える 2

12

歴史は難しいでしょう。Rのquantmodパッケージには、現在の値を取得するために必要なものがすべて含まれてgetQuoteいます。yahooQF

require("quantmod")
getQuote("GS", what = yahooQF(c("Market Capitalization", "Earnings/Share", 
         "P/E Ratio", "Book Value", "EBITDA", "52-week Range")))

            Trade Time Market Capitalization Earnings/Share P/E Ratio Book Value EBITDA  52-week Range
GS 2012-06-21 04:00:00               47.870B          6.764     14.27    134.476      0 84.27 - 139.25

また、試してみてください

getQuote("GS", what=yahooQF())

これにより、要求するフィールドの選択肢のメニューが表示されます。

GoogleFinanceから最近の財務諸表を入手できます。getFinancials

金融商品(この場合は株式)に関するメタデータをダウンロードするためのいくつかの機能を備えたFinancialInstrumentパッケージもあります。update_instruments.*たとえば、これがyahooの機能です

require("FinancialInstrument")
stock("GS", currency("USD")) # define the stock
#[1] "GS"
update_instruments.yahoo("GS") #update with yahoo
#[1] "GS"
getInstrument("GS")
#primary_id          :"GS"
#currency            :"USD"
#multiplier          :1
#tick_size           :0.01
#identifiers         : list()
#type                :"stock"
#name                :"Goldman Sachs Gro"
#exchange            :"NYSE"
#market.cap          :"47.870B"
#avg.volume          :5480530
#EPS                 :6.76
#EPS.current.year.est:11.4
#EPS.next.year.est   :12.9
#book.value          :134
#EBITDA              :0
#range.52wk          :"84.27 - 139.25"
#defined.by          :"yahoo"
#updated             : POSIXct, format: "2012-06-21 19:31:11"

InteractiveBrokersアカウントをお持ちの場合は、優れたIBrokersパッケージを使用して、多くの商品に関する多くの情報を取得できます。また、IBアカウントをお持ちの場合は、便利な機能がたくさんある私のtwsInstrumentパッケージをご覧ください。

于 2012-06-22T00:23:00.543 に答える
2

私の質問のウェブサイトの部分に答えるだけです:

  str <- paste("http://investing.money.msn.com/investments/company-report?symbol=", ticker, sep = "")
  page <- paste(readLines(url(str, open = "rt")), collapse = "\n")
  match <- regexpr("<a href=\"http://www\\.(\\S+)\">Website</a>", page, perl = TRUE)

  if (attr(match, "match.length") > 0) {
    site <- substring(page, attr(match, "capture.start"), attr(match, "capture.start") + attr(match, "capture.length") - 1)    
    site <- strsplit(site, "/")[[1]][1]
  }
于 2012-06-22T07:13:46.627 に答える