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)
Import package
from bigbucks_port.portfolio import *
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.2.tar.gz
(5.6 kB
view details)
Built Distribution
File details
Details for the file bigbucks_port-0.0.2.tar.gz
.
File metadata
- Download URL: bigbucks_port-0.0.2.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 | d245ba9c5bf269c6a2d7794afece04d0d90bcb993f7d9537e8ba60fe2b7e8025 |
|
MD5 | 3721aa88c1f61ffd14e2d99499f19b8e |
|
BLAKE2b-256 | 5a462646b0b39aa6152edcd37d2528d63494dedbf289eeb2f1a7bacf7eb39cb7 |
File details
Details for the file bigbucks_port-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: bigbucks_port-0.0.2-py3-none-any.whl
- Upload date:
- Size: 6.1 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 | b9e4b9b5a6151286b364a814b92673c31126965bf97060c5265a95baf376bde4 |
|
MD5 | e7e52aecd1ce6317af4180197f0e1576 |
|
BLAKE2b-256 | aaa385e43e9936531bfc6dc702d2a64b431fffb74b6157b64c72c30ece2a60b5 |