Acceder

Obtener los valores de la bolsa para un programa

7 respuestas
Obtener los valores de la bolsa para un programa
Obtener los valores de la bolsa para un programa
#1

Obtener los valores de la bolsa para un programa

Alguno sabe de donde pillan los valores todas esas paginas como google finance, yahoo finance, eleconomista, cotizalia, etc?

Debe haber un organismo oficial que las facilite no?

Saludos

#2

Re: Obtener los valores de la bolsa para un programa

Prueba en Bolsa de Madrid, encontrarás bastante información, tanto para el mercado español como el latinoamericano.

saludos

#3

Re: Obtener los valores de la bolsa para un programa

En yahoo finanzas están casi todos los valores del mundo civilizado. Te pongo un enlace de ejemplo BBVA y en la parte de abajo te permite descargar una hoja de calculo

http://es.finance.yahoo.com/q/hp?s=BBVA.MC

En todos los valores sale lo mismo en la sección "cotizaciones historicas" (menu de la izquierda)

#4

Re: Obtener los valores de la bolsa para un programa

Tanto Y! Finance como Google Finance ofrecen un API gratuito para el stream de los datos y los que no son por stream. Mira en los enlaces de "Developers" de cada página.

El de Google es similar al que se usa para acceder al resto de servicios: Calendar, GMail, Talk, Plus... El de Yahoo no lo sé, pero creo que usa REST.

Ten en cuenta que estos datos tienen un uso limitado, sobretodo los financieros. En Google ponen en su licencia que no se pueden usar para ganar dinero con ellos.

#5

Re: Obtener los valores de la bolsa para un programa

gracias, echare un ojo ;)

#6

Re: Obtener los valores de la bolsa para un programa

Te pongo mi rutina de actualización (en python). La clave está en la linea:

url = '''http://quote.yahoo.com/d/quotes.csv?s="%s"&f=snl1d1t1c1p2'''

en el %s se incorporan los valorez de mi cartera y el señor yahoo me devuelve muy amablemente un fichero csv con todo lo que le pido.

Que nadie critique mi código que sólo soy un aficionado ;-)

Saludos

Edito para decir que se ha perdido el formato... :-(

def posopreu(self, crida='sit'):
sql = ''' select yahoo from valor where yahoo is not null
union
select monyahoo from valor where monyahoo is not null '''
cr = db.bind.execute(sql)
vals = set()
for lin in cr:
vals.add(lin[0])
cr.close()
url = '''http://quote.yahoo.com/d/quotes.csv?s="%s"&f=snl1d1t1c1p2''' % (','.join(vals))
u = urlopen(url)
for row in csv.reader(u):
if row[3].upper() == 'N/A':
dia = '31.12.1900'
hora = '00:00'
else:
mm,dd,aa = row[3].split('/')
dia = '.'.join([dd,mm,aa])
if row[4] == 'N/A':
hora = '00:00'
else:
hh = row[4].replace('am','').replace('pm','')
hh, mm = hh.split(':')
if 'pm' in row[4]:
hh = int(hh)+12
hh = int(hh)+6
while hh > 23:
hh -= 24
hora = '%s:%s' % (hh, mm)
varpreu = row[5].replace('%','').replace('N/A','0')
varpc = row[6].replace('%','').replace('N/A','0')
sql = '''update valor set preu = '%s',
diaultim = '%s',
horaultim= '%s',
varpreu = %s,
varpc = %s
where yahoo = '%s' ''' % (row[2], dia, hora, varpreu, varpc, row[0])
db.bind.execute(sql)
sql = '''update valor set canvi = '%s' where monyahoo = '%s' ''' % (row[2], row[0])
db.bind.execute(sql)
db.commit()
sql = '''update valor set canvi = 1 where monyahoo is null '''
db.bind.execute(sql)
db.commit()
# El canvi del fons no l'agafa be. 25/9 -> 22.293726
sock = urlopen("http://es.finance.yahoo.com/q?s=BANKPYMESWIS.BC")
htm = sock.read()
sock.close()
cot = (htm[htm.find('yfs_l10_bankpymeswis.bc')+25:][:5].replace(',','.'))
sql = '''update valor set preu = %s where valor = 'SWISS' and preu = 0 ''' % (cot)
db.bind.execute(sql)
db.commit()
session.close()
if crida == 'sit':
raise cherrypy.InternalRedirect('/sit')
elif crida == 'risc':
raise cherrypy.InternalRedirect('/risc')

#7

Re: Obtener los valores de la bolsa para un programa

Imagino que los datos los proporcionará BME o la CNMV, o quizás MEFF, realmente no lo se, lo que sí se es que acceder a ellos a través de la empresa suministradora principal es carísimo, con 3.000 euros al mes no lo haces.