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
bigbucks_port-0.1.0.tar.gz
(6.3 kB
view details)
Built Distribution
File details
Details for the file bigbucks_port-0.1.0.tar.gz
.
File metadata
- Download URL: bigbucks_port-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca83502ce7aef71a06b3f30cddae14fb23a266ef33787d39db161cb6ca408e6f |
|
MD5 | 6c837566a4d8d3f2774e1e9a6cf8839e |
|
BLAKE2b-256 | 21a2816c2efd5b1427f9b657b7b398077a28eb4e9192046114e26332b10547f4 |
File details
Details for the file bigbucks_port-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: bigbucks_port-0.1.0-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 | fd8edc5de0ef6dd4538f1df578e1d90b19b6a94ed6d207f5afd6d0b0fdc3fb61 |
|
MD5 | 931aa30a527f17dd6462537ca019db54 |
|
BLAKE2b-256 | 3ef5cd4f7f39526a3928d6e6d7e39bac249c05e99c217fca4413f63f62744753 |