1 votos

Obtención de datos sobre la relación de gastos

Tengo una lista de tickers (~11.500) en un archivo .txt/.csv y los datos de fondos que la acompañan de yahoo finance. Me pregunto si hay una forma razonablemente fácil/accesible de utilizar esta lista para obtener los ratios de gastos de yahoo finance o de cualquier otro sitio. ¿Se trata de escribir un C#/Javascript para consultar el YQL 11500 veces para http://finance.yahoo.com/q/pr?s=TICKER y luego almacenar los datos de la sección: Informe Anual Ratio de Gastos (neto): X.YZ% ?

Se agradece cualquier ayuda.

Mis mejores deseos

2voto

Michelle Puntos 11

Versión en Python del código R de Brian:

El código de Brian toma automáticamente el primer ratio de gastos que encuentra, que es el que tú querías. Esta versión es un poco más explícita.

import urllib2, re
stockSymbols = [ "VDIGX", "VFIAX" ]
expenses = [ [ "Fund", "Most Recent Expense Ratio" ] ]
for stockSymbol in stockSymbols:
    page = urllib2.urlopen("http://finance.yahoo.com/q/pr?s=" + stockSymbol + "+profile" )
    data = page.read()
    row = re.findall("Annual Report Expense Ratio.*?</tr>", data)
    if len(row) > 0:
        ER = re.findall("<td.*?>(\d+\.\d+).*?</td>", row[0] )[0]
        expenses.append( [ stockSymbol, ER ] )
    else:
        print stockSymbol, "does not appear to be a fund with an expense ratio"
print "\n".join( i[0] + "," + i[1] for i in expenses )

0voto

Gavin Brown Puntos 58

Si estás construyendo un sistema técnico que quieres que sea fácilmente actualizable, entonces sí. una consulta en C# es probablemente tu mejor opción. Una búsqueda superficial en Yahoo revela que no hay tal funcionalidad, y el hecho de que nadie más haya respondido a esta pregunta sólo sirve para reforzar ese caso. Si necesita ayuda con la implementación (que no está en su pregunta) sólo hágamelo saber, y voy a poner un ejemplo de juguete. Buena suerte.

0voto

Michael Cramer Puntos 111

Una vez utilicé un código de SO para realizar una tarea similar. Aquí hay una pequeña modificación. Es lento pero no se necesita a menudo.

syms <- c('VDIGX','VFIAX')
library(RCurl)
library(stringr)
for(sym in syms){
  try({
    url <- paste0("http://finance.yahoo.com/q/pr?s=", sym,"+profile")
    profile <- getURL(url)
    row  <- str_extract(profile, "Expense Ratio.*?</tr>")
    cell <- str_extract(row, "<td.*</td>")
    mer <- str_replace_all( cell, "<.*?>", "" )
    cat(sym,cell," ")
  })
}

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X