A package used for portfolio analysis in Fintech512
Project description
Introduction
This package is used for portfolio analysis in FINTECH 512 Bigbucks project. This package also depends on the bigbucks_db
package to interact with the supabase database and Alpha Vantage.
Connect to supabase and alpha Vantage
# Connect to supabase
SUPABASE_URL = ""
KEYS = ""
objs = Table_View(SUPABASE_URL, KEYS)
# Connect to Alpha Vantage
STOCK_API_KEYS = ""
objs_realtime = Buy_And_Sell(STOCK_API_KEYS)
Functions
- Get the current portfolio holdings for user.
It returns a json list includes the stock symbol, number of shares and price per share (weighted by historical cost)
Note: If you want to get all the stocks for all the users, set
id=None
. Same for other functions below.
holding = current_holding(objs,6)
Example output:
[{"stock_symbol":"AAPL","num_shares":0,"pv":0.0,"price per share":null},{"stock_symbol":"IBM","num_shares":100,"pv":13107.0007324219,"price per share":131.0700073242}]
- Calculate the expected return, std and covariance of portfolio The statistics are calculated based on the historical data. Note: It returns 4 values, the fourth one is the json list with expected return and std for each stock and the rest 3 are used in later functions.
er,std,covar,er_std_json = er_covar(objs,6)
Example output of er_std_json
{"mean":{"AAPL":0.2318697889,"IBM":-0.0075799068},"std":{"AAPL":0.3361717704,"IBM":0.2759977582}}
- Get the risk and return for a list of portfolios with randomly generated weights
# N: number of portfolios generated
return_risk = rand_scatter(5,objs,6)
Example output
{"mean": [0.13009300157209497, 0.02497749995225248, 0.16554410436129516, 0.14454572030763208, 0.10086096141188186], "std": [0.06705431545265916, 0.0656856601122741, 0.07160084144613905, 0.0686922284906061, 0.06474888518469718]}
- Get the risk and return for the efficient frontier
return_risk = frontier(objs,6)
Example output
{"mean": [],"std":[]}
- Get the optimal portfolio given a risk free rate
opt = optimize_port(0.0025,objs,6)
Example output
{"opt mean": 0.2318697888966346, "opt std": 0.08412521675427394, "opt sharpe": 2.7265283555418782}
- Get the risk and return for the current portfolio Note: weight is calculated by the current holding
risk_return = cur_risk_return(0.0025,objs,6)
Example output
{'mean': -0.007579906778486523, 'std': 0.06906698680510652, 'sharpe': -0.1459439197330273}
- Calculate the holding period return and balance
holding_stat = holding_return(objs,6,objs_realtime)
Example output
# PV: the market value of all cash and stocks in the account
# Cash: cash remained in the account balance
{'PV': 1000000.0, 'Cash': 986892.9992675781, 'Holding period return': 0.0}
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
bigbucks_port-0.0.1.tar.gz
(5.6 kB
view details)
Built Distribution
File details
Details for the file bigbucks_port-0.0.1.tar.gz
.
File metadata
- Download URL: bigbucks_port-0.0.1.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 100a3648bfb1e39ede3f983c760e999d76a2fbef6f9ee24234d7f9d5bc281e38 |
|
MD5 | 14bf8198bd6741b7448af702dd6c6355 |
|
BLAKE2b-256 | 2476193abc1aad487cb35825c6ffbc8e06516c1694b807448fb2200b7a51bb6d |
File details
Details for the file bigbucks_port-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: bigbucks_port-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bc61a76eee30383ec2042eb17426900889086db1fb6c0d4739f738df217cfff |
|
MD5 | 066d2e62274872ddcf9db2b6861ac880 |
|
BLAKE2b-256 | f2832a60caa6266eb3bcc49cff3d859f8ecebcb11b5dc94beb21684626f17b9e |