He creado una pequeña API para poder enviar órdenes de compra / venta a BolsaPHP. Si no eres programador o aficcionado al mundillo, probablemente no te interese demasiado, pero aún así, puede ser divertido.
Lo primero que hay que hacer es averiguar la api_key que puedes encontrar en tu perfil de usuario. Es importante que mantegas esta clave en secreto (¡es una clave!).
Ahora tienes que hacer que tu aplicación llame a la api de la siguiente manera (ejemplo, una sola línea):
http://bolsaphp.sukiweb.net/api/cv_api.php?usuario=David& api_key=TU_API_KEY& ticker=BBVA.MC& acciones=25& valor=17.50& tipo_de_orden=LIMITADA& intencion=COMPRA
Esto lanzaría una orden de compra de 25 títulos de BBVA a un precio de 17.50 € en orden limitada. Así de simple.
Esto permite hacer muchas pequeñas aplicaciones que permitan de forma simple lanzar compras o ventas desde casi cualquier lado. Poco a poco iré añadiendo más funcionalidades.
Si eres programador y haces alguna utilidad, deja un comentario para que la gente pueda verla y utilizarla :)
ACTUALIZADO: Ahora también devuelve información sobre un ticker en XML al hacerle la consulta del tipo:
http://bolsaphp.sukiweb.net/api/cv_api.php?usuario=David& api_key=TU_API_KEY& ticker=BBVA.MC
P.D.: La culpa de esto la tiene Ricardo Galli, que puso en marcha la api para el Nótame y me pique haciendo una pequeña herramienta para utilizarla.
Le echaré un ojo, a ver qué se puede hacer con esto ;-)
Estoy seguro de que te puede salir algo muy chulo.
Yo le echaré un ojo a tu código para aprender. ;)
(Offtopic total)
¿Dónde está la sección de «About me», o algún sitio donde haya una dirección de email tuya, Suki?
Puedes autodestruir este comentario :-)
Salud!
Kota, puedes establecer contacto conmigo a través de la cuenta de gmail, soy sukiweb.
No tengo ningún sitio con un «About me» o formulario de contacto, quizá tendría que hacer algo así. :)
Suki, cada día t sales más!
Pregunta: Esta API tiene algún manualcillo, o es «tan sencillo» como:
1)Consultar
http://bolsaphp.sukiweb.net/api/cv_api.php? usuario=USUARIO& api_key=TU_API_KEY& ticker=BBVA.MC
2)Comprar
http://bolsaphp.sukiweb.net/api/cv_api.php? usuario=USUARIO& api_key=TU_API_KEY& ticker=BBVA.MC& acciones=25& valor=17.50& tipo_de_orden=LIMITADA& intencion=COMPRA
3)Vender
http://bolsaphp.sukiweb.net/api/cv_api.php? usuario=USUARIO& api_key=TU_API_KEY& ticker=BBVA.MC& acciones=25& valor=17.50& tipo_de_orden=LIMITADA& intencion=VENTA
JokinAU, exacto. Son esas tres posibilidades y así de simple. :)
Si programas algo que la utilice ya nos contarás. :)
SuperSuki, hay alguna posibilidad de ampliar tus API? Había pensado en crear alguna aplicación para AMPLIAR la funcionalidad de tus herramientas… (si consigo hacer algo mínimamente, ya lo publicaré!)
Por ejemplo, creo q estaría bien q las consultas XML de las diferentes compañías devolvieran cuantas tenemos en nuestra cartera de valores, o cero en el caso de que no fuéramos accionistas.
Teniendo en cuenta q x la API_KEY ya puedes identificarnos, no debería de serte «demasiado difícil», no?
Gracias y un saludo, visionario!!
Efectivamente no es demasiado dificil, simplemente no se me había ocurrido. :)
Aunque quizá lo correcto sería crear OTRA api para consultas sobre la cartera de usuarios.
En cuanto tenga algo, lo publico (si ves que pasan muchos días y no lo he hecho, recuérdamelo) :P.
David, te he mandado al mail sukiweb(gmail) la pseudo-web que tengo hecha para trabajar con la API.
Un saludo! y gracias por este juegazo!
loco.jaen, como ya te dije, he intentado habilitar una web pública en la que la gente pueda introducir su Nick y API_KEY *fácilmente* y utilizar tu web.
Por favor, te agradecería que le echaras un vistazo y me contaras que te parece/sugerencias/mejoras… Ya que es tu invento, y ni te he pedido permiso, apenas… :P
http://www.gurekuadriyia.net/BolsaTOR/lj/
Una cosa que tengo pendiente y espero implementar a la tarde, es añadir al formulario superior la posibilidad de establecer el tiempo de refresco de los frames.
David, *supongo y espero* que si alguien cambia su password, se cambiará su API_KEY, no?
No hay problema JokinAU, me parece perfecto, cuantas mas cosas se presenten mejor,
gracias un saludo
PD: la web esta muy muy bien, sin duda puede ser muy util, gran idea
JokinAu, me gusta, está bien. Sólo una cosa, OJO con el tema de la API KEY. Se supone que es secreta. Lo digo por que el tema de la API está pensado para aplicaciones locales (en el ordenador de cada uno, PDA o lo que sea) donde tener la KEY es seguro, por que no está en ningún servidor externo.
No obstante, la idea me gusta mucho, es muy guapa.
Creo que vamos a tener que empezar a hacer una lista de utilidades y webs de BolsaPHP. ¿Que os parece?
Por cierto, sí, cuando cambias la clave de tu usuario cambia la API KEY. :)
jej, si Suki, gracias por la advertencia, pero ya lo suponía. De hecho incluí un *AVISO* advirtiendo a los usuarios. La api_key no se guarda en el servidor ni en cookies, es solo un parámetro.
hum, que leches, en un momento pongo un ZIP con las páginas PHP, por si sirven para algo…
La idea original de loco.jaen me pareció muy buena, pero con posibles mejoras. De hecho, locojaen, si sigues interesado en mantener una versión usb/local/NO_ONLINE de tus scripts, avísame, tengo un par de ideas para cambiar el código, *exclusivamente* para hacerlo más portable, manteniendo exactamente la misma funcionalidad.
Suki, un listado de utilidades ayudaría MUCHO a extender bolsaphp, y si además pudieramos colgar ahí los ZIPs, pues…… LA LECHE!!
¿Por que no facilitas banners y tal de BolsaPHP?
Otra idea: pide que la gente colabore con imágenes, y seguro q algún mañoso te diseña imagenes/logos…
Me acabo de dar cuenta que tengo algunos conocimientos de informática, pero de bolsa NI GAITAS! jejeje
Jokin, sí sigo llevandolo en el usb, ya que cada dos por tres vario los graficos de la cartera, hago pruebas con gráficos cogidos de otras webs,… lo toqueteo mucho, y se me hace cómodo (me llego a conectar desde (pc’s distintos) y seguro tenerlo así.
merci, un saludo.
Pues el consejo más rápido, es que en gráficos.php substituyas la línea:
por:
Es igual de funcional, y más flexible. Lo mismo en cartera.php.
Pues el consejo más rápido, es que en gráficos.php substituyas la línea:
meta HTTP-EQUIV=»Refresh» content=»180;URL=file:///F:/Bolsa/graficos.php»
por:
meta HTTP-EQUIV=»Refresh» content=»180;URL=graficos.php»
Es igual de funcional, y más flexible. Lo mismo en cartera.php.
Suki, he desarrollado un script en php que lee información del .csv de http://es.finance.yahoo.com/q/cp?s=%5EIBEX y lo convierte en un array de dos dimensiones, del estilo de
Tickers[0][‘ticker’]
Tickers[0][‘valor’]
Tickers[0][‘hora’]
……
Para ver su contenido, puedes verlo en acción en:
http://www.gurekuadriyia.net/BolsaTOR/Ticker.php?demo=1
La verdad es que me ha costado lo mio, pero creo que el resultado es fiable. Si te interesa para algo, hazmelo saber y te lo paso.
CREO que sería práctico que distribuyeras otro rss con los tickers, valores, max, min…. De forma que la gente lo pueda utilizar en sus utilidades, complementando http://bolsaphp.sukiweb.net/rss.php
La cuestión es que no me concuerdan los nombres de los tickers con los tuyos al 100%, si visitas http://www.gurekuadriyia.net/BolsaTOR/ verás que algún gráfico falla ¿Los tickers no están normalizados? (ejemplo CINTRA)
Puedes decirme de donde obtienes tú la información? Gracias
Gracias por la información, le pegaré un vistazo.
De momento los RSS están pensados para eso, para dar información RSS a navegadores y sindicadores. No sería buena idea dar datos en bruto para esto.
Para dar datos en bruto está la API. :)
sisi, creo que no me he sabido explicar… Proponía completar la información difundida por tus xml… (min, max, dif…….)
Hola, sabes, estaba viendo en tu codigo de acceso a la api que incluys el precio del producto, cosa que no deberias de hacer, sino pasar el id del producto o no has pensado que alguien podria guardar la pagina y modificar la url de acceso con precio $0. Solo es una sugerencia que espero sirva de algo
Carlos, te confundes. El precio que se le da es para lanzar la orden de compra o venta. Es decir, como explico en el apunte, «quiero comprar 25 títulos de BBVA a un precio de 17.50 € en orden limitada».
Independientemente del valor al que esté actualemente el título. :)
Hay algo que no me queda muy claro. ¿Qué diferencia hay entre dar una orden desde la página misma de la bolsa y desde el API? ¿Varia en velocidad la respuesta d emi orden o es simplemente otro modo de mandar ordenes?
Diego, la velocidad siempre es la misma. Esta utilidad es más para programadores que quieran hacer sus propias aplicaciones o herramientas para comprar y vender en BolsaPHP. :)
Por ejemplo, se de laguno que se ha currado unas hojas de cálculo para hacer un seguimiento de su cartera y desde allí mismo compra y vende, sin entrar en la web.
¿Parece práctico verdad?
P.D.: A ver si algún día nos enseña como se hace. :)
Wow! y yo que me sentia seguro con mis hojitas de excel jajaja, parece bastante práctico. Gracias por la respuesta y por cierto. No hay posibilidad de jugar con otras bolsas del mundo? sería interesante, sobre todo ahora que wall street estornuda fuerte, las bolsas se agripan de toas las formas posibles en el mundo. Sería interesante poder hacerlo. Gracias David, haz hehco en verdad un buen trabajo aqui con el juego, hace buen tiempo que venia buscando uno.
Saludos! Se debería hacer, que yahoo ya lo proporciona, que se pueda agregar indicadores de compra y venta como RSI, MACD en los gráficos. Así podriamos saber cuando un valor llega a sobrecompra por lo que es probable que se produzca una corrección, así como al revés que llega a sobreventa. Estas herramientas son las que utilizan los brokers profesionales en sus Análisis Técnicos de gráficos. Una Media movil de 3 periodos me parece excesivamente corta de plazo pues daría señales falsas, normalmente se usan una de 20 como corto plazo, una de 50 como medio y otra de 200 como señal de largo plazo, siendo la ultima la que marca tendencias más fuertes.
En bolsator interesaría que se vea la chuleta que se en bolsaphp en el lado de compra y venta
Hola suki, estoy intentando hacer un API y lo he logrado pero me salen mensajes, constantemente diciendo «Demasiadas peticiones en poco tiempo…»
No se si es un problema mio o tienes alguna política de reducción de uso en APIs, o el metodo que uso es malo.
Un saludo gurunier :D
Hola gurunier, es una restricción que puse con la finalidad de evitar abusos del sistema.
He tenido muchas peticiones por segundo en esa api y al final puse esa opción (la mejor que se me ocurrión en aquel momento) para evitar abusos.
¿Quizá has hecho muchas peticiones en pocos segundos?
Ok, me parece correcto, estoy intentando reducir tiempos y refresco, en principio quería colocar las peticiones cada 5 segundos ahora lo he colocado cada 20 segundos Esta funcionando bien.
¿A lo mejor tendría que ponerle más tiempo?
Si lo pones cada 60 o incluso 120 segundos, mejor. De todas formas piensa que mi base de datos sólo actualiza cada varios minutos. ;)