portfolio-backtest 0.3.0

Creator: railscoder56

Last updated:

0 purchases

portfolio-backtest 0.3.0 Image
portfolio-backtest 0.3.0 Images
Add to Cart

Description:

portfoliobacktest 0.3.0

portfolio-backtest






portfolio-backtest is a python library for backtest portfolio asset allocation on Python 3.7 and above.
Installation
$ pip install portfolio-backtest
$ pip install PyPortfolioOpt

Usage
basic run
from portfolio_backtest import Backtest

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






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': '',
'Cumulative Return': '160.9%',
'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': '',
'Cumulative Return': '102.3%',
'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': '',
'Cumulative Return': '53.3%',
'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': '',
'Cumulative Return': '48.7%',
'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%',
'Cumulative Return': '52.1%',
'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': '',
'Cumulative Return': '166.5%',
'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%',
'Cumulative Return': '251.3%',
'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}}]









Provides a method (discrete_allocation) that can be converted into an actual allocation available for purchase by entering the latest price and desired portfolio size ($ 10,000 in this example)
from portfolio_backtest import Backtest

bt = Backtest(
tickers={
"VTI": 0.6,
"AGG": 0.25,
"GLD": 0.15,
}
)
print(bt.discrete_allocation(total_portfolio_value=10000))

{'Discrete allocation': {'VTI': 28, 'AGG': 21, 'GLD': 9}, 'Funds remaining': '$109.45'}

Supported Portfolio

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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.