Api de compra / venta para BolsaPHP

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.

Publicado por

Suki_

CDO en Grupo Logitravel, proyectos I+D y BigData. Jugando con bits y software libre desde hace ya demasiado tiempo...

32 comentarios en “Api de compra / venta para BolsaPHP”

  1. (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!

  2. 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í­. :)

  3. 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

  4. 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!!

  5. 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.

  6. 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!

  7. 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?

  8. 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

  9. 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. :)

  10. 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

  11. 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.

  12. 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.

  13. 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.

  14. 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

  15. 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. :)

  16. 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

  17. 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. :)

  18. 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?

  19. 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. :)

  20. 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.

  21. 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

  22. 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

    1. 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?

  23. 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?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *