El paquete teii
consta de un único subpaquete teii.finance
. Este subpaquete
implementa una jerarquía de clases para realizar consultas a alguna de las
interfaces HTTP
de Alpha Vantage. Estas
interfaces proporcionan información financiera de diferentes naturaleza. La
documentación de Alpha Vantage
describe todas estas interfaces. Para cada una de ellas, se describen los
parámetros que admiten las consultas y se proporciona un ejemplo de la respuesta
en formato JSON y CSV.
Por ejemplo, la siguiente consulta a la interfaz HTTP
TIME_SERIES_WEEKLY_ADJUSTED
:
curl https://www.alphavantage.co/query\?function=TIME_SERIES_WEEKLY_ADJUSTED\
\&symbol=IBM\&apikey=MY_ALPHA_VANTAGE_API_KEY > IBM.json
devuelve información bursátil de la empresa IBM en formato JSON.
MY_ALPHA_VANTAGE_API_KEY
).
Uno de los parámetros requeridos por las consultas a la interfaz HTTP
TIME_SERIES_WEEKLY_ADJUSTED
es el símbolo.
Un símbolo o código bursátil, también conocido como ticker en inglés, es un código alfanumérico que sirve para identificar de forma abreviada las acciones de una determinada empresa que cotiza en un determinado mercado bursátil.
Una de las interfaces HTTP de Alpha Vantage es un search endpoint que nos permite realizar búsquedas sobre el espacio de nombres de los tickers. Por ejemplo, la siguiente consulta nos devuelve la lista de tickers para la compañía Pfizer:
curl https://www.alphavantage.co/query\?function=SYMBOL_SEARCH\
\&keywords=Pfizer\&apikey=MY_ALPHA_VANTAGE_API_KEY > Pfizer.json
El formato JavaScript Object Notation (JSON) es un formato estándar usado por
muchas interfaces HTTP(S). De manera simplificada, el formato JSON se define de
forma recursiva a partir de dos tipos básicos, cadenas de caracteres y números,
y dos tipos compuestos, las listas (delimitadas por [
y ]
) y los objetos
(delimitados por {
y }
). Una lista se compone de otras listas u objetos. A
su vez, un objeto es una secuencia de pares clave-valor separados por comas. La
clave debe ser una cadena de caracteres, mientras que el valor puede ser
cualquier otro tipo básico o compuesto.
Por ejemplo:
json_string = """
{
"firstName": "Jane",
"lastName": "Doe",
"hobbies": ["running", "sky diving", "singing"],
"age": 35,
"children": [
{
"firstName": "Alice",
"age": 6
},
{
"firstName": "Bob",
"age": 8
}
]
}
"""
La ventaja del formato JSON es que se puede manipular fácilmente como un objeto
Python con el paquete json
:
>>> import json
>>> json_dict = json.loads(json_string) # transforma la cadena en un diccionario
>>> json_dict['firstName'] # 'firstName' es una cadena de caracteres
Jane
>>> json_dict['hobbies'] # 'firstName' es una lista de cadenas de caracteres
['running', 'sky diving', 'singing']
>>> json_dict['children'] # 'children' es una lista de diccionarios
[{'firstName': 'Alice', 'age': 6}, {'firstName': 'Bob', 'age': 8}]
El paquete teii
contiene un único subpaquete llamado teii.finance
compuesto de tres módulos:
exception.py
: Define las excepciones generadas por el subpaquete en presencia de errores.finance.py
: Declara la clase baseFinanceClient()
.timeseries.py
: Declara la clase derivadaTimeSeriesFinanceClient()
.
El archivo example.py
es un script que ilustra cómo usar el subpaquete
teii.finance
. Tras importar el subpaquete, este script crea una instancia de
la clase TimeSeriesFinanceClient()
, que consulta la interfaz
TIME_SERIES_WEEKLY_ADJUSTED
para el ticker AMZN
(Amazon). A continuación,
llama al método weekly_price()
que devuelve una serie de Pandas con el precio
de cierre semanal de dicha compañía. Por último, el script dibuja una gráfica
a partir de la serie de Pandas.