2012-06-22 20 views
7

Znam kilka sposobów, aby uzyskać codzienne ceny akcji i wolumeny w R lub python, ale tylko zastanawiasz się, czy to jest sposób (przy użyciu albo R lub python), aby uzyskać więcej informacji na temat zapasów, takich jak stosunek P/E, strona internetowa firmy, plon i tak dalej, korzystnie nie tylko wartość bieżącą, ale także wartości historyczne.Czy istnieje sposób automatycznego uzyskiwania ogólnych informacji o wielu zasobach, takich jak współczynnik P/E, wydajność itd.?

Dzięki.

+0

Ponieważ nie było żadnych odpowiedzi python, i przyjął odpowiedź R-only, powinniśmy zrobić to R-specyficzne i usunąć [ python] tag? – GSee

Odpowiedz

10

Historyczne będzie trudne. Pakiet quantmod dla R ma getQuote, który wraz z yahooQF będzie wszystkim, czego potrzebujesz, aby uzyskać aktualne wartości.

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 

Spróbuj też

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

który daje menu wyboru za co pól żądania.

można uzyskać najnowsze sprawozdanie finansowe z Google Finance z getFinancials

Istnieje również pakiet FinancialInstrument który ma kilka funkcji update_instruments.* aby pobrać metadane dotyczące instrumentów (akcje w tym przypadku). Na przykład, oto co ten Yahoo robi

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" 

Jeśli masz konto InteractiveBrokers, można skorzystać z wyjątkową IBrokers pakiet aby uzyskać wiele informacji na temat partii instrumentów. Ponadto, jeśli masz konto IB, powinieneś spojrzeć na mój pakiet twsInstrument, który ma wiele wygodnych funkcji.

+1

oft-cited [gummy-stuff.org] (http://www.gummy-stuff.org/Yahoo-data.htm) jest wspaniałym źródłem informacji o pobieraniu danych z Yahoo. – GSee

+0

Jedna rzecz w moim pytaniu, która nie została rozwiązana przez te polecenia, to strona internetowa firmy. Czy istnieje sposób, aby uzyskać to automatycznie? – danioyuan

+0

Nie według mojej wiedzy – GSee

2

Wystarczy odpowiedzieć na część strony internetowej moje pytanie:

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] 
    } 
+0

Nice. Źle to zinterpretowałem, ale jest to przydatne. +1 – GSee