2013-07-20 16 views
6

Chcę uzyskać listę wszystkich funduszy inwestycyjnych, które są dostępne za pośrednictwem Yahoo Finance w dziale R. W pakiecie TTR znajduje się funkcja StockSymbols, ale wydaje się, że nie otrzymuje ona funduszy inwestycyjnych.Jak uzyskać listę wszystkich funduszy inwestycyjnych Yahoo Finance w R?

Dzięki

+0

Opcja 'funkcja stockSymbol' pobiera listę zapasów z portalu Nasdaq (który wymienia także kilka innych wymian): jeśli wiesz o podobnej strony internetowej, która wymienia aktywa chcesz, możesz po prostu je pobieraj i parsuj. –

+1

Istnieje strona internetowa, która ma pełną listę funduszy inwestycyjnych: eoddata.com dla każdego, kto jest zainteresowany. Mój problem polega na tym, że muszę zdobyć fundusze inwestycyjne według sektorów i przemysłu. Yahoo Finance API najprawdopodobniej to robi –

Odpowiedz

3

Nie sądzę Yahoo dostarczyć listę wszystkich funduszy inwestycyjnych mają one dane dla (podobnie, nie zapewniają one listę zasobów, których dotyczą). Możesz pobrać listę ze strony internetowej, którą wymieniłeś w komentarzach, przejrzyj wszystkie fundusze, pobierz odpowiednią stronę "Profil" z Yahoo, i wyodrębnij potrzebne informacje - pole "Kategoria" wydaje się być być najbliższą rzeczom "branży i branży", które chcesz.

# Read the list of funds 
# I assume the file was downloaded manually from 
# http://www.eoddata.com/Data/symbollist.aspx?e=USMF 
# This requires registration (free). 
d <- read.delim("USMF.txt", stringsAsFactors = FALSE) 

# Retrieve the profile page, for each of the funds. 
# It takes 1 second for each, and there are 24,000 of them: 
# this may take more than 6 hours. 
library(RCurl) 
library(stringr) 
d$Category <- "" 
for(i in seq_len(nrow(d))) { 
    try({ 
    url <- paste0("http://uk.finance.yahoo.com/q/pr?s=", d$Symbol[i]) 
    cat(url, " ") 
    profile <- getURL(url) 
    row <- str_extract(profile, "Category.*?</tr>") 
    cell <- str_extract(row,  "<td.*</td>"  ) 
    d$Category[i] <- str_replace_all(cell, "<.*?>", "") 
    cat(d$Category[i], "\n") 
    }) 
} 
head(d) 
Powiązane problemy