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, historical cost and price per share.
- If you want to get all the stocks for all the users, set
id=None. Same for other functions below.
id =6
holding = holding_json(objs,id)
Example output:
{"IBM":{"num_shares":100,"historical_cost":13107.0007324219,"price_per_share":131.0700073242}}
Calculate the historical daily return for each stock in the holding
returns = return_json(objs,id)
Example output:
[{"Symbol": "AAPL", "labels": ["2018-04-03", "2018-04-04"], "data": [{"date": "2018-04-03", "return": 0.010206911067964735}, {"date": "2018-04-04", "return": 0.01894174279199366}]}, {"Symbol": "IBM", "labels": ["2018-04-03", "2018-04-04"], "data": [{"date": "2018-04-03", "return": -0.0014670581452283652}, {"date": "2018-04-04", "return": 0.028096725995288337}]}]
Calculate the historical daily return for SPY
returns = spy_json(objs)
Example output:
{"Symbol": "SPY", "labels": ["2018-04-10", "2018-04-11"], "data": [{"date": "2018-04-10", "return": 0.016588598996312102}, {"date": "2018-04-11", "return": -0.005540685772461173}]}
Calculate the expected return and std of each stock in the portfolio
- It returns a a json list of mean and std for each stock
er_std = er_std_json(obj,id)
Example output:
{"AAPL":{"mean":0.2318697889,"std":0.3361717704},"IBM":{"mean":-0.0075799068,"std":0.2759977582}}
Get the risk and return for the efficient frontier
# num: number of portfolios on the efficient frontier
return_risk = frontier_json(objs,id,num)
Example output
{"data": [{"std": 0.06906698680510652, "mean": -0.007579906778486523}, {"std": 0.06906698680510652, "mean": -0.007579906778486523}]}
Get the optimal portfolio given a risk free rate
# rf: risk free rate
opt = optimize_port(rf,objs,id)
Example output
{"opt mean": 0.2318697888966346, "opt std": 0.08412521675427394, "opt sharpe": 2.7265283555418782}
Calculate the risk, return and sharpe for 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 cash 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': 1000106.999206543, 'Cash': 986892.9992675781, 'Holding_return': 0.00010699920654300143}
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bigbucks_port-0.1.1.tar.gz.
File metadata
- Download URL: bigbucks_port-0.1.1.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ad857e9ef969b1644366b4597c4fac3ac7aa45fec28f9119ebdb43d0c9f96e4
|
|
| MD5 |
0c9bce9bc47f9a62e57e176655fd476f
|
|
| BLAKE2b-256 |
4afe592216b36a0c345590204bafd0f55b994473ca96a6982132cfaae3e6e313
|
File details
Details for the file bigbucks_port-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bigbucks_port-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.3 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 |
ff5fd399c101ae3bfe5272ee2023756f55808dbcfd6d68977b2a3774d896c5bf
|
|
| MD5 |
a24f687f2c215196574292aff54b31cb
|
|
| BLAKE2b-256 |
346f8870831af9860bf78d2d5c22f4a96c67e83bf1b32c422df6a3aac922640c
|