Skip to main content

Financial applications for portfolio management

Project description

PyFinanceLab

PyFinanceLab is a library which brings together various financial applications into one package for financial research and portfolio management. Navigate to the jupyter folder of the pyfinlab repository to see usage examples.

PyFinanceLab is in alpha development.

Features

  • Data API Wrapper The data API wrapper makes it easy to switch between yfinance (free to use) and tia (Bloomberg Professional Services subscription) Python libraries for pulling financial data.

  • Portfolio Optimization Compute an efficient frontier of portfolios based on any one of 7 risk models and 3 return models from the PyPortfolioOpt library.

  • Multifactor Scoring Model Analyze and rank stocks according to factors assumed to have excess returns and violate the efficient market hypothesis.

  • Optimizer Backtest Backtest optimized portfolios and compute performance charts, efficient frontier plots, and performance statistics.

  • Excel Report Generation Show your optimizer results and backtest in a nicely formatted Excel file for further analysis.

  • Stock-to-Flow Modeling Generate and hypothesis test stock-to-flow models for 16 cryptocurrencies with data updated daily.

Installation

It is recommended you use Anaconda for this installation process. Anaconda Individual Edition is appropriate for most users. Make sure you have installed Microsoft C++ Build Tools installed on your computer. If you encounter any errors with, "Microsoft Visual C++ 14.0 is required", try following these instructions to download and install Microsoft Visual C++ 14.0. If you get an error installing any of the packages below, try to install the problematic package separately.

Setting Up Anaconda Environment for PyFinLab

Open Anaconda Prompt and create a new environment called pyfinlab.

conda create -n pyfinlab python=3.8 git

Activate the new pyfinlab environment.

conda activate pyfinlab

Install the following conda packages using conda-forge channel.

conda install -c conda-forge blpapi jupyterlab xlsxwriter tqdm

Install the following conda packages using anaconda channel.

conda install -c anaconda xlsxwriter statsmodels

Install the following GitHub repositories one at a time.

pip install git+https://github.com/PaulMest/tia.git#egg=tia
pip install git+https://github.com/nathanramoscfa/ffn.git

Install the following packages using pip.

pip install --upgrade-strategy only-if-needed yfinance tqdm openpyxl patsy openpyxl bt PyPortfolioOpt

Installing PyFinLab

Unless you know what you are doing, it is recommended to install pyfinlab either using pip or cloning from Github, but not both in order to prevent conflicts arising from having pyfinlab installed in two locations on your computer. The developer version is the most up-to-date.

Developer Version (Most Up-to-Date)

Clone the GitHub repository to a project directory of your choosing.

git clone git+https://github.com/nathanramoscfa/pyfinlab.git

PyPI (pip)

Install pyfinlab to your environment's site-packages folder with the following command.

pip install pyfinlab

Roadmap

Future development will include:

  • Documentation and Testing

    Documentation and testing will be published as this Python library is further developed.

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

pyfinlab-0.0.30.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

pyfinlab-0.0.30-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file pyfinlab-0.0.30.tar.gz.

File metadata

  • Download URL: pyfinlab-0.0.30.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for pyfinlab-0.0.30.tar.gz
Algorithm Hash digest
SHA256 cdafc7d4425e0ea265137b7b8894b0799a9ac4aac68317463207f45b18461c72
MD5 ff9f51dcd978cb1e33d1a343277c4005
BLAKE2b-256 fa9212eef9c295c8b85979c8f5a3bd05ef29ebe6e6a04f01783f939dd3fe1cf4

See more details on using hashes here.

File details

Details for the file pyfinlab-0.0.30-py3-none-any.whl.

File metadata

  • Download URL: pyfinlab-0.0.30-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for pyfinlab-0.0.30-py3-none-any.whl
Algorithm Hash digest
SHA256 34a0de2465c1b962d79dc22351d2412af8f4375f15949d2863fb60de9448a95b
MD5 a199a01bec6e2c77c6a0d5c2e6101c28
BLAKE2b-256 007aea9c298e19d46c6e8fbf51e6ff79eef3ac276210d2ce51903faa9874166a

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