2012-06-22 19 views
7

Tôi biết một số cách để có được giá và khối lượng hàng ngày trong R hoặc python, nhưng tự hỏi liệu đây có phải là cách hay không (sử dụng R hoặc python) để có thêm thông tin về các cổ phiếu như tỷ lệ P/E, trang web công ty, lợi nhuận và như vậy, tốt hơn không chỉ là giá trị hiện tại, mà còn là giá trị lịch sử.Có cách nào để tự động nhận thông tin chung về nhiều cổ phiếu như tỷ lệ P/E, Năng suất, v.v ... không?

Cảm ơn.

+0

Vì chưa được bất kỳ câu trả lời trăn, và bạn chấp nhận một câu trả lời R-chỉ, chúng ta nên làm này R-cụ thể và loại bỏ các [ python] tag? – GSee

Trả lời

10

Lịch sử sẽ khó khăn. Gói quantmod cho R có getQuote cùng với yahooQF sẽ là tất cả những gì bạn cần để nhận các giá trị hiện tại.

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 

Ngoài ra, hãy thử

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

mà sẽ cung cấp cho bạn một menu lựa chọn cho những gì trường nào được yêu cầu.

Bạn có thể nhận được báo cáo tài chính gần đây từ Google Finance với getFinancials

Ngoài ra còn có các gói FinancialInstrument đó có một số chức năng update_instruments.* tải siêu dữ liệu về công cụ (cổ phiếu trong trường hợp này). Ví dụ, đây là những gì một yahoo không

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" 

Nếu bạn có một tài khoản InteractiveBrokers, bạn có thể sử dụng vượt trội IBrokers gói để có được nhiều thông tin về rất nhiều các công cụ. Ngoài ra, nếu bạn có một tài khoản IB, bạn sẽ muốn xem gói twsInstrument của tôi có nhiều chức năng tiện lợi.

+1

the-trích dẫn [gummy-stuff.org] (http://www.gummy-stuff.org/Yahoo-data.htm) là một nguồn tài nguyên tuyệt vời cho thông tin về tải dữ liệu từ yahoo. – GSee

+0

Một điều trong câu hỏi của tôi không được giải quyết bằng các lệnh này là trang web của công ty. Có cách nào để tự động nhận điều đó không? – danioyuan

+0

Không phải là kiến ​​thức của tôi – GSee

2

Chỉ cần trả lời một phần trang web của câu hỏi của tôi:

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

Đẹp. Tôi đã hiểu sai nó lúc đầu, nhưng điều này rất tiện dụng. +1 – GSee

Các vấn đề liên quan