Skip to main content

A CLI tool which uses the Quandl Fundmentals API and writes results to Excel Spreadsheets.

Project description

quandl_fund_xlsx

https://img.shields.io/pypi/v/quandl_fund_xlsx.svg https://img.shields.io/travis/robren/quandl_fund_xlsx.svg Documentation Status Updates

A unofficial CLI tool which uses the Quandl API and the Sharadar Essential Fundamentals Database to extract financial fundamentals, Sharadar provided ratios as well as calculate additional ratios. Results are written to an Excel Workbook with a separate worksheet per ticker analysed.

Features

For a given ticker, fundamental data is obtained using the Quandl API and the Sharadar Fundamentals database. This data is then used to calculate various useful, financial ratios. The ratios provide profitability indicators, a number of financial leverage indicators providing a sense of the amount of debt a company has on it’s balance sheet as well as its ability to service it’s debt and pay a dividend.

Some REIT specific ratios such as FFO and AFFO are very roughly approximated. These specific ratios are only roughly approximated since certain data, namely Real estate sales data for the period does not appear to be available via the API (It’s often buried in the footnotes of these companies filings).

The output excel worksheet for each ticker processed is divided into three main areas:

  • Quandl statement indicators. This is data obtained from the three main financial statements; the Income Statement, the Balance Sheet and the Cash Flow Statement.

  • Quandl Metrics and Ratio Indicators. These are quandl provided financial ratios.

  • Calculated Metrics and Ratios. These are calculated by the package from the Sharadars data provided and tabulated by the statement indicators and the ‘Metrics and Ratio’ indicators.

The python Quandl API provides the ability to return data within python pandas dataframes. This makes calculating various ratios as simple as dividing two variables by each other.

The calculations support the data offered by the free SF0 database, and the paid for SF1 database, a richer set of data is available as well as a larger coverage universe of stocks is supported by the paid SF1 database.

snip.png

The generated Excel workbook with one sheet per ticker.

Installation

pip install quandl_fund_xlsx

Configuration

export QUANDL_API_KEY='YourQuandlAPIKey'

Usage

quandl_fund_xlsx -h
quandl_fund_xlsx

Usage:
quandl_fund_xlsx (-i <ticker-file> | -t <ticker>) [-o <output-file>]
                                                                [-y <years>] [-d <sharadar-db>]

quandl_fund_xlsx.py (-h | --help)
quandl_fund_xlsx.py --version

Options:
-h --help             Show this screen.
-i --input <file>     File containing one ticker per line
-t --ticker <ticker>  Ticker symbol
-o --output <file>    Output file [default: stocks.xlsx]
-y --years <years>    How many years of results (max 7 with SF0) [default: 5]
-d --database <database>    Sharadar Fundamentals database to use, SFO or
                                                        SF1 [default: SF0]
--version             Show version.
quandl_fund_xlsx -t INTC -o excel_files/intc.xlsx
{'--database': 'SF0',
'--input': None,
'--output': 'excel_files/intc.xlsx',
'--ticker': 'INTC',
'--years': '5'}
('Ticker =', 'INTC')
2017-08-22 06:08:59,751 INFO     Processing the stock INTC
2017-08-22 06:09:06,012 INFO     Processed the stock INTC

ls -lh excel_files
total 12K
-rw-rw-r-- 1 test test 8.7K Aug 22 06:09 intc.xlsx

Local Development

It’s recommended to setup a virtual environment and perform the installation within this. Use pip to install the requirements but not the package.

pip install -r requirements_dev.txt

# Run the CLI by running as a module
python -m quandl_fund_xlsx.cli -t MSFT

# Run the tests
pytest

If you wish to install the package locally within either a virtualenv or globally this can be done once again using pip.

pip install -e .

# Now the CLI is installed within our environment and should be on the
# path
quandl_fund_xlsx -t MSFT

How to get help contribute or provide feedback

See the contribution submission and feedback guidelines <ref-contributing>

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.1.1 (2017-08-31)

  • First release on PyPI.

0.1.2 (2017-08-31)

  • Change logging to INFO from DEBUG

0.1.3 (2017-08-31)

  • Minor tweak to Return the correct version

0.1.4 (2017-11-06)

  • Removed the –dimension CLI keyword. Now uses Most Recent Year (MRY) for SF0 database and Most Recent Trailing 12 Months (MRT) for the SF1 database

  • Fix to avoid the Pandas future warning about decrementing df.rename_axis and using df.rename

0.1.6 (2018-01-26)

Now uses the get_table methods from the quandl_api.

0.1.7 (2018-05-10)

  • Fix bug where the dataframe returned from quandl qas not being sorted

  • Added EPS and EPS diluted.

0.1.8 ( 2018-05-24)

  • Fix bug where the SF0 subscription data was not being returned.

  • With the discontinuation of the Sharadar Time series API at the end of March 2018, the codes for the free fundamental subscription SF0 database changed. Subscribers to the SF0 data now use the SHARADAR/SF1 code in the get_table accesses.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quandl_fund_xlsx-0.1.8.tar.gz (207.6 kB view details)

Uploaded Source

File details

Details for the file quandl_fund_xlsx-0.1.8.tar.gz.

File metadata

File hashes

Hashes for quandl_fund_xlsx-0.1.8.tar.gz
Algorithm Hash digest
SHA256 fabbe5fd623f71312d97107bdbd6c1026dfc33cebfd010e1a837742e3b1845d6
MD5 671a80b20e25d1856f17ff9dddc6adb3
BLAKE2b-256 377af262c745534471c9361350e0b1b11e25f115adf8dd94cd19c67f2d9f7766

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page