Este blog ya no está activo, sigue informándote aquí:

Mostrando entradas con la etiqueta Finance. Mostrar todas las entradas
Mostrando entradas con la etiqueta Finance. Mostrar todas las entradas

lunes, 7 de julio de 2014

#IBEX35.- Experiment Alpha With #Tweepy, #Python and #GoogleFinance

Como habréis podido ver en Twitter y si no os lo explico ahora, hoy iba a mirar un poco [mi cliente de Twitter] del que os hable hace ya unos días. Pero, ya que fui capaz de [obtener valores a través de Google Finance y Python], me ha hecho gracia montarme un programa que hiciera un tweet por cada valor del IBEX 35 y lo repitiera cada n segundos. Si, podría haber hecho que cuando me detectara un cambio lo anunciara, pero no hubiera sido tan divertido como hacer enfadar a Twitter xD. 


Buscando la lista del Ibex35 por que de memoria no me las se aún y con un poco de ayuda de while y las listas he podido hacer un prototipo que me devolviera por la pantalla los valores como podéis ver. Por lo que solo he tenido que fusionar los dos scripts y hacerme otra cuenta para los Key de acceso y tokens (como es un script para una cuenta concreta el uso de mis tokens es necesario para no comerme la autentificación a través de pin) por lo que ha nacido el siguiente código.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib, re, os, time
import tweepy


def valoracion(busquedaGoogle):
url =  "http://www.google.com/finance?&q="
busqueda = urllib.urlopen(url+busquedaGoogle).read()
datos = re.search('id="ref_(.*?)">(.*?)<',busqueda)
if datos: 
t = time.localtime()
tiempo =[t.tm_year,t.tm_mon,t.tm_mday,t.tm_hour, t.tm_min,t.tm_sec]
t1= busquedaGoogle +" --> "+ datos.group(2)+" <-- "+ str(tiempo)
tweet(t1)

else: 
out = "No he podido encontrar nada con " + busquedaGoogle
tweet(out)
def tweet(contenido):

CONSUMER_KEY=""
CONSUMER_SECRET=""
ACCESS_KEY=""
ACCESS_SECRET=""
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
api.update_status(contenido)

if __name__ == "__main__":
Lista35= ["BME:ABG.P","BME:ABE","BME:ANA","BME:ACS","BME:AMS","AMS:MT","BME:POP","BME:SAB","BME:BKIA","BME:BKT","BME:BBVA","BME:BME","BME:CABK","BME:DIA","BME:ENG","BME:FCC","BME:FER","BME:GAM","BME:GAS","BME:GRF","BME:IAG","BME:IBE","BME:ITX","BME:IDR","BME:JAZ","BME:MAP","BME:TL5","BME:OHL","BME:REE","BME:REP","BME:SCYR","BME:SAN","BME:TRE","BME:TEF","BME:VIS"]

while True:
for item in Lista35:
valoracion(item)

Y la siguiente cuenta de Twitter: 

La cual ha sido pillada por exceso de tweets:


La verdad es que me ha encantado ponerme manos en la masa con esto y no me arrepiento de que hayan suspendido la cuenta. Ahora toca pensar como poder hacer esto de una manera menos agresiva. Por cierto, os dejo la foto del error que te salta cuando excedes el limite de tweets.


Sed Buenos ;)

domingo, 6 de julio de 2014

Python y Google Finance.- Obteniendo Valores de Bolsa

Los que hayas seguido mi twitter hoy, ya habréis intuido de que vamos hablar de blosa de valores y con lo que ello comporta, de dinero.


Para los que no conocéis Google Finace es un servicio donde poder ver la cotización de un valor de bolsa, su gráfica dividida por años,meses y días ademas de poder hacer un portafolio para que te sea mas fácil consultar tu cartera. Pero, para que tengo que estar yo dando le a Enter todo el rato si se programar (poco pero algo se) en Python.  

Para hacer esto nos serviremos de la url [http://www.google.com/finance?&q=] que usa el servicio cuando ha de consultar un valor y le concadenaremos el nombre de la acción y como la consulta ya se hace en Google Finace me ahorro problemas de acentos y problemas de ortografía. Ojo, no me los ahorro del todo, si no sabéis el nombre aproximado de la acción no aparecerá. Por ejemplo ¡, si queremos que nos muestre el valor de Telefónica, [al haber varios valores que se llama igual], nos dará error. Así que deberemos saber que Telefónica España es llamado NYSE:TEF. 

Dicho esto,  pasamos a ser un francotirador de acciones dispuesto a estar al tanto de la mas mínimo cambio en su cartera. 


import urllib, re, os, time


def valoracion(busquedaGoogle):

        #Esto esta explicado en la entrada XD
url =  "http://www.google.com/finance?&q="
busqueda = urllib.urlopen(url+busquedaGoogle).read()

        #con regular expresions podemos buscar el campo id= ref_
datos = re.search('id="ref_(.*?)">(.*?)<',busqueda)

t = time.localtime()
if datos: 
                #Con esto imprimimos de forma chula los el precio de la acción
tiempo =[t.tm_year,t.tm_mon,t.tm_mday,t.tm_hour, t.tm_min,t.tm_sec]
print tiempo
print  busquedaGoogle +" --> "+ datos.group(2)
else: 
out = "No he podido encontrar nada con " + busquedaGoogle
print out
       #Cada 10 segundo la acción se irá actualizando (que es mas que suficiente para ver cambios)
time.sleep(10)
os.system('cls')
while True:
valoracion(d1)

if __name__ == "__main__":
d1 = raw_input("Nombre de la Empresa: ")
os.system('cls')
valoracion(d1)
Podéis buscar este valor, la bolsa española
ha cerrado a las 9:30 por lo que esta a este mismo valor. 

Espero que os haya gustado este script, no lo he subido en GitHub por que ya hay muchos y le quiero dar otro uso que espero publicarlo aquí en unos días. Ahora no tenéis escusa por no vender si vuestra acción a a un valor que hace saltar vuestro Stop. 


No dejes que vuestro trader os engañe xD Como veis he fusionado Mi Hora de Codigo con StateX me espera unas vacaciones dignas. Gracias a todos los que votasteis en la encuesta. 

Sed Buenos ;) y si gracias a este script conseguís ganar algo de dinero invitadme a una cerveza .