Datos financieros para Python – Test con Alpha Vantage

Desde que en mayo 2017 Yahoo Finance cerró su API he estado buscando opciones de proveedores de datos para mis análisis en Python.

De momento he estado utilizando algunas veces datos de Quandl, otras veces GoogleFinance, en ocasiones utilizo la web de Quantopian. Pero hoy quería compartir otra fuente de datos financieros para Python que aún no había probado: Alpha Vantage

Datos financieros para Python con alpha vantage

En realidad lo que ofrece Alpha Vantage son datos gratuitos accesibles a través de una conexión con APIs, por lo que además de utilizarlo con Python también lo puedes utilizar con R (ver info R package aquí), Excel, importar los csv en Amibroker, etc.
Hoy aquí comparto mis pruebas al utilizarlo con Python.
Comenzamos…

Datos históricos y tiempo real con Alpha Vantage: Test con Python

Datos gratuitos

La descarga de datos es gratuita. Pero necesitas primero obtener tu API key (también es gratuita, solamente necesitas poner tu nombre y tu email).

API key alpha vantage
https://www.alphavantage.co/support/#api-key

Datos financieros para Python

En mis pruebas he utilizado este paquete para Python: Python module to get stock data from the Alpha Vantage Api

Cotizaciones de acciones y ETFs

Podemos obtener datos a fin de día, semanales o mensuales. Para estos times frames podemos obtener los datos ajustados o sin ajustar.

También podemos obtener datos intradía en tiempo real.

Gist a modo de ejemplo:

 

Respecto a la calidad y el ajuste de datos: En la web de Alpha Vantage no indican nada sobre cuál es su fuente de datos ni tampoco sobre el método que utilizan para ajustar por splits y/o dividendos. Te recomiendo que verifiques los datos que necesites antes de utilizarlos.

Datos de Forex y criptomonedas

No he encontrado que tuvieran los tipos de cambio históricos para pares de FOREX. Sí que tienen tiempo real.

Para monedas digitales y criptomonedas tienen tanto tiempo real como datos históricos.

Personalmente no he probado los datos de forex ni de criptomonedas. Pero puedes encontrar algunos ejemplos aquí: https://github.com/RomelTorres/av_example/blob/master/Alpha%20vantage%20examples.ipynb

Indicadores de análisis técnico

También incluyen la posibilidad de descargar directamente los valores de muchos indicadores técnicos.

Incluyen desde indicadores bastante simples, como pueden ser las medias móviles, hasta algunos indicadores de cálculo más complejo.

Ejemplos de algunos indicadores disponibles: Media simple, media exponencial, media ponderada, doble media exponencial, triple media exponencial,  MACD y sus convergencias y divergencias, estocástico, RSI, medias de Kaufman, ADX, absolute price oscillator, Momentum, Aroon, ultimate oscillator, SAR, Chaikin A/D oscillator, …

Más información:

Alpha Vantage API Documentation

/alpha_vantage

Notas y aclaraciones:

1. Quiero aclarar que este no es un post patrocinado. No me están pagando nada por compartir esto. Únicamente lo hago porque me parece una herramienta útil para otros traders que necesiten trabajar con datos financieros en Python.

2.Tampoco puedo hacerme responsable sobre la calidad y/o continuidad de esta herramienta gratuita.


Si te gustan los artículos recuerda que puedes suscribirte por correo electrónico y recibirás las entradas y los extras directamente en tu correo.
También puedes seguir a Estrategias de Trading por Twitter, FeedlyFacebook.

7 comentarios en «Datos financieros para Python – Test con Alpha Vantage»

  1. Parece interesante, tras el cierre de la API de Yahoo, pasé a Quandl, esta nueva opción de Alpha Vantage parece muy interesante porque ya hay indicadores, pero revisando no consigo encontrar los tickers que se pueden bajar en Alpha Vantage ¿?

    Responder
    • Hola Miguel,
      No hay lista de tickers. De hecho si miras su web la info es bastante escasa.
      Yo he probado poniendo directamete los tickers de acciones ( como en el notebook de ejemplo del post) y me ha funcionado. Para los que no cotizan en US hay que añadir la bolsa que correspnda ( por ejemplo .MC para el mercado español). Pero de momento estoy en fase de prueba-error-prueba-error con ellos

      Responder
  2. Hola Duk!

    Mi pregunta es sobre otro tema, hace tiempo que estoy investigando diferentes sistemas de trading, sobre todo mean reversion, y particularmente los de Bandy, pero aún no he invertido, mi pregunta es, si tu, con tu experiencia, estás invirtiendo con algún sistema de trading, o aún sigues investigando. Mi pregunta es mas que nada para continuar motivándome a seguir investigando, o dejo de lado el «trading» retail y me dedico a otra cosa.
    Tengo experiencia programando con Amibroker, pero no con otras herramientas.

    Gracias por tu respuesta,
    Saludos,
    Esteban

    Responder
    • Hola Esteban,
      Si que opero con sistemas en la «vida real» fuera de internet. Ahora bien, el tema de la motivación es algo más personal. Pregúntate qué es lo que quieres hacer y por qué lo quieres hacer. Los palos son muchos, tanto en parte dinero como en la moral, y a menos de que te guste mucho es difícil seguir constante.
      En mi caso me interesa poder tomar las decisiones por mí misma y ver que puedo tener mucho mejor rendimiento que el que obtendría si dejara mi dinero para que lo gestionara el asesor de mi oficina bancaria por ejemplo. El tema de la rentabilidad, evidentemente depende del tipo de sistema y de activo y de cómo se combine todo esto.
      un saludo,

      Responder
  3. Hola,

    Respecto a los datos de yahoo, desde mayo de 2017 se soluciono el tema usando una librería de python. Sólo había que añadir la siguiente linea al código y, lógicamente, bajarse la librería:

    import fix_yahoo_finance # <== that's all it takes :-)

    Tan fácil como eso. No he necesitado buscar otro proveedor de datos, pero siempre es bueno saber alternativas.

    Un saludo y felicidades por compartir tus ideas.

    Responder
  4. Buenas Duk, ¿sabes si hay forma de establecer la fecha desde la que quieres bajar los datos? no toda la serie sino desde un día en concreto, he estado buscando pero no encuentro si hay forma de hacerlo, la documentación de esta API es muy escasa.
    Gracias

    Responder
  5. Hola Miguel,

    Por lo que he podido ver no hay opciones para decargar rangos de fechas en concreto.
    Las opciones son:
    outputsize=’full’ y desgarda todo el histórico
    outputsize=’compact’ y nos da los últimos 100 datos.

    Lo que si puedes hacer descargar todo y luego filtrarlo como un data frame de pandas normal.

    un saludo,

    Responder

Deja un comentario

ESTRATEGIAS DE TRADING