Skip to main content

portfolio-backtest is a python library for backtest portfolio asset allocation on Python 3.7 and above.

Project description

portfolio-backtest

PyPI License: MIT codecov Build Status PyPI - Python Version Downloads

portfolio-backtest is a python library for backtest portfolio asset allocation on Python 3.7 and above.

Installation

$ pip install portfolio-backtest

Usage

basic run

from portfolio_backtest import Backtest

Backtest(tickers=["VTI", "AGG", "GLD"]).run()

tangency-portfolio.png minimum-variance-portfolio.png hierarchical-risk-parity-portfolio.png minimum-cvar-portfolio.png cumulative-return.png

advanced run

from portfolio_backtest import Backtest
import pprint

bt = Backtest(
    tickers={
        "VTI": 0.6,
        "AGG": 0.25,
        "GLD": 0.15,
    },
    target_return=0.1,
    target_cvar=0.025,
    data_dir="data",
    start="2011-04-10",
    end="2021-04-10",
)
pprint.pprint(bt.run(plot=True))
[{'Annual volatility': '10.9%',
  'Conditional Value at Risk': '',
  'Expected annual return': '9.6%',
  'Sharpe Ratio': '0.70',
  'portfolio': 'Your Portfolio',
  'tickers': {'AGG': 0.25, 'GLD': 0.15, 'VTI': 0.6}},
 {'Annual volatility': '6.3%',
  'Conditional Value at Risk': '',
  'Expected annual return': '7.0%',
  'Sharpe Ratio': '0.79',
  'portfolio': 'Tangency Portfolio',
  'tickers': {'AGG': 0.67099, 'GLD': 0.0, 'VTI': 0.32901}},
 {'Annual volatility': '4.3%',
  'Conditional Value at Risk': '',
  'Expected annual return': '4.3%',
  'Sharpe Ratio': '0.53',
  'portfolio': 'Minimum Variance Portfolio',
  'tickers': {'AGG': 0.91939, 'GLD': 0.00525, 'VTI': 0.07536}},
 {'Annual volatility': '4.0%',
  'Conditional Value at Risk': '',
  'Expected annual return': '4.1%',
  'Sharpe Ratio': '0.51',
  'portfolio': 'Hierarchical Risk Parity Portfolio',
  'tickers': {'AGG': 0.89041, 'GLD': 0.05695, 'VTI': 0.05263}},
 {'Annual volatility': '',
  'Conditional Value at Risk': '0.5%',
  'Expected annual return': '4.2%',
  'Sharpe Ratio': '',
  'portfolio': 'Minimum CVaR Portfolio',
  'tickers': {'AGG': 0.93215, 'GLD': 0.0, 'VTI': 0.06785}},
 {'Annual volatility': '7.7%',
  'Conditional Value at Risk': '',
  'Expected annual return': '10.0%',
  'Sharpe Ratio': '1.04',
  'portfolio': 'Semi Variance Portfolio (target return 10.0%)',
  'tickers': {'AGG': 0.39504, 'GLD': 0.0, 'VTI': 0.60496}},
 {'Annual volatility': '',
  'Conditional Value at Risk': '2.5%',
  'Expected annual return': '13.3%',
  'Sharpe Ratio': '',
  'portfolio': 'Return Maximize CVaR Portfolio (target CVaR 2.5%)',
  'tickers': {'AGG': 0.08851, 'GLD': 0.0, 'VTI': 0.91149}}]

advanced-your-portfolio.png advanced-tangency-portfolio.png advanced-minimum-variance-portfolio.png advanced-hierarchical-risk-parity-portfolio.png advanced-minimum-cvar-portfolio.png advanced-return-maximize-cvar-portfolio-(target-cvar-2.5%).png advanced-semi-variance-portfolio-(target-return-10.0%).png advanced-cumulative-return.png

Supported Portfolio

  • Your Portfolio
  • Hierarchical Risk Parity Portfolio
  • Tangency Portfolio
  • Minimum Variance Portfolio
  • Minimum CVaR Portfolio
  • Semi Variance Portfolio
  • Return Maximize CVaR Portfolio

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

portfolio-backtest-0.1.15.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

portfolio_backtest-0.1.15-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file portfolio-backtest-0.1.15.tar.gz.

File metadata

  • Download URL: portfolio-backtest-0.1.15.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.2

File hashes

Hashes for portfolio-backtest-0.1.15.tar.gz
Algorithm Hash digest
SHA256 176725829a6d224168f686221f5f12cbc61d581f27953e9f925c0a8ca7b2db3d
MD5 8fe2004c4df2e9ee07fca6108ff2d72c
BLAKE2b-256 a505072a498f0707d0d58c0c550f9a386d5799aea39aa5e0b8cc3edecad44e6c

See more details on using hashes here.

File details

Details for the file portfolio_backtest-0.1.15-py3-none-any.whl.

File metadata

  • Download URL: portfolio_backtest-0.1.15-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.2

File hashes

Hashes for portfolio_backtest-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 8267efade65764daeb117bb9d464bb4865fa3dabdad8f1299c9531e217d4f28d
MD5 36deb23a5c381770e8815d51000e9208
BLAKE2b-256 fc1d5c925f80e7eadf5b671bb54afd8e0efdd2e8d6357b983e7e32e5f716eac0

See more details on using hashes here.

Supported by

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