Skip to content

Instantly share code, notes, and snippets.

@Ti1mmy
Last active January 3, 2022 22:18
Show Gist options
  • Save Ti1mmy/03a35f7816a1a3ba7c00df52d2bf80d0 to your computer and use it in GitHub Desktop.
Save Ti1mmy/03a35f7816a1a3ba7c00df52d2bf80d0 to your computer and use it in GitHub Desktop.
CFM 101 Final Assignment
Display the source blob
Display the rendered blob
Raw
{"_CFM 101 Final Assignment": "",
"_INFO": "A prize-winning smart stock portfolio",
"": "generator that quantitatively analyzes",
"": "live financial data to produce the most",
"": "volatile basket of stocks on any given day.",
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import display, Math, Latex\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import numpy_financial as npf\n",
"import yfinance as yf\n",
"import matplotlib.pyplot as plt\n",
"from datetime import datetime, timedelta, timezone\n",
"from threading import Thread\n",
"import random"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## CFM 101 Final Group Assignment\n",
"\n",
"### Team Strategy Chosen: **RISKY**\n",
"\n",
"### UPDATE\n",
"Our code won the runner-up prize in our class competition! \n",
"* Check it out here:\n",
"[https://uwaterloo.ca/school-of-accounting-and-finance/news/congratulations-teams-won-cfm-101-team-competition](https://uwaterloo.ca/school-of-accounting-and-finance/news/congratulations-teams-won-cfm-101-team-competition)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"### Runtime Note\n",
"\n",
"* We hope you are having a nice day $\\ddot\\smile$, our code's runtime mainly depends on the magnitude of `TRIALS` below.\n",
"* We have tested this entire notebook on a MBP 2017 with an i5 and 8gb of RAM with a list of 150 tickers, which took approx. 4 mins to run.\n",
"* Lowering this variable (to 100) will improve runtime to about 2 minutes, but may cost some accuracy. \n",
"\n",
"\n",
"### VPN\n",
"* Sometimes, yFinance produces Data that is delayed by a few hours, so it may not contain data from `2021-11-26`. If it does this, this just means that we are being throttled by Yahoo Finance on the University's Internet Network. Using a mobile hotspot or VPN usually produces the desired result. See @193 on Piazza.\n",
"***"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"TRIALS = 1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Setup - Threaded\n",
"\n",
"* `Threading` used with permission from Professor Thompson"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# For daily info, we want to program this dynamically. However, getting the end day is rather tricky since \n",
"# the stock market is only active on business days, and only has closing data after 5pm EST on a trading day.\n",
"# This code determines a value DELTA that represents how many business days to subtract from today to get a trading day.\n",
"now = datetime.now(timezone(timedelta(hours=-5), 'EST'))\n",
"\n",
"# US Markets close at 4pm, but afterhours trading ends at 8pm.\n",
"# yFinance stubbornly only gives the day's data after 8pm, so we will wait until 9pm to pull data from\n",
"# the current day.\n",
"market_close = now.replace(hour=21, minute=0, second=0, microsecond=0)\n",
"if now < market_close:\n",
" DELTA = 1\n",
"# If it is saturday or sunday\n",
"elif now.weekday() >= 5:\n",
" DELTA = 1\n",
"else:\n",
" DELTA = 0"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DELTA"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Input Filtering\n",
"The code below first reads in `Tickers.csv`, and follows by performing some cleanup of the tickers file to ensure they will both work properly with our code and follow the specifications of the assignment. \n",
"\n",
"* First, our code will remove any duplicate tickers using the `drop_duplicates()` function method. It then produces a `Tickers` object that stores **all** unique tickers from our `Tickers.csv` file.\n",
"\n",
"* Next, our code will initialize an empty dictionary, `ticker_info_dict`, which acts as a cache for all of our API calls.\n",
"\n",
"* We then call on the yFinance API to give us the info of every Ticker using the `get_info()` function. This simultaneously checks if:\n",
"```\n",
"* The ticker is in the correct market, it will add its `.info` into the `ticker_info_dict`. Otherwise, it will print out an error that can be seen below (if there are any).\n",
"```\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error: Stock not found | Error - sdf: 'sdf'Error: Stock not found | Error - w3432: 'w3432'\n",
"\n",
"Error: Stock not found | Error - d: 'd'Error: Stock not found | Error - b: 'b'\n",
"\n",
"Error: Stock not found | Error - cv: 'cv'\n",
"Error: Stock not found | Error - ;v.'v.x c: \";v.'v.x c\"Error: Stock not found | Error - cx: 'cx'\n",
"\n",
"Error: Stock not found | Error - vx: 'vx'\n",
"Error: Stock not found | Error - b ;;earwa: 'b ;;earwa'\n",
"Error: Stock not found | Error - w4r: ' w4r'\n",
"Error: Stock not found | Error - er: ' er'\n",
"Error: Stock not found | Error - gd: ' gd'\n",
"Error: Stock not found | Error - g: ' g'\n",
"Error: Stock not found | Error - d: ' d'\n",
"Error: Stock not found | Error - f: ' f'\n",
"Error: Stock not found | Error - ds: ' ds'\n",
"Error: Stock not found | Error - f : ' f '\n",
"Error: Stock not found | Error - bea: 'bea'\n",
"Error: Stock not found | Error - bean: 'bean'Error: Stock not found | Error - empty: 'empty'\n",
"\n",
"Error: Stock not found | Error - haha: 'haha'Error: Stock not found | Error - oki thinks fdhdsfdud: 'oki thinks fdhdsfdud'\n",
"\n",
"Error: Stock not found | Error - REMOVE * FROM *: 'REMOVE * FROM *'\n",
"Error: Stock not found | Error - nAn: 'nAn'\n",
"Error: Stock not found | Error - NaN: 'NaN'\n",
"Error: Stock not found | Error - null: 'null'\n",
"Error: Stock not found | Error - void: 'void'\n",
"Error: Stock not found | Error - nothing: 'nothing'\n",
"Found BTC-USD is not denominated in USD or in the US Market - Skipped\n",
"Error: Stock not found | Error - TWX: 'currency'\n",
"Found DOGE-USD is not denominated in USD or in the US Market - Skipped\n",
"Error: Stock not found | Error - IFC: 'currency'\n",
"Found DOGE-CAD is not denominated in USD or in the US Market - Skipped\n",
"Error: Stock not found | Error - SNC: 'currency'\n",
"Error: Stock not found | Error - IPL: 'currency'\n",
"Error: Stock not found | Error - TMD: 'currency'\n",
"Error: Stock not found | Error - FFH: 'currency'\n",
"Error: Stock not found | Error - WSP: 'currency'\n",
"Found BTC-CAD is not denominated in USD or in the US Market - Skipped\n",
"Error: Stock not found | Error - NA: 'currency'\n",
"Found ETH-USD is not denominated in USD or in the US Market - Skipped\n",
"Error: Stock not found | Error - PCLN: 'currency'\n",
"Found ETH-CAD is not denominated in USD or in the US Market - Skipped\n",
"Error: Stock not found | Error - DSG: 'currency'\n",
"Error: Stock not found | Error - CPH: 'currency'\n",
"Found SHOP.TO is not denominated in USD or in the US Market - Skipped\n"
]
}
],
"source": [
"# Setup - Threaded\n",
"\n",
"ticker_input = pd.read_csv('Tickers.csv', header=None, keep_default_na=False) # reads in csv file and stores it\n",
"ticker_input.columns = [\"Tickers\"]\n",
"ticker_input.drop_duplicates(inplace=True)\n",
"ticker_input[\"Tickers\"] = [ticker for ticker in dict.fromkeys(ticker_input[\"Tickers\"])]\n",
"tickers = yf.Tickers(\" \".join([ticker for ticker in ticker_input[\"Tickers\"]]))\n",
"ticker_info_dict = {}\n",
"\n",
"# Checks to see if every ticker in the list is a legitimate ticker and that it trades in the \n",
"# US market AND denominated in USD. If it does not, it will drop it from the list.\n",
"def get_info(ticker):\n",
" try: \n",
" ticker_info = tickers.tickers[ticker].info\n",
" if \"market\" in ticker_info.keys():\n",
" # Check if the stock is listed in the US market, and denominated in USD\n",
" if ticker_info[\"market\"] == 'us_market' and ticker_info[\"currency\"] == 'USD':\n",
" ticker_info_dict[ticker] = ticker_info\n",
" else:\n",
" print(f\"Found {ticker} is not denominated in USD or in the US Market - Skipped\")\n",
" except KeyError as error:\n",
" print(f'Error: Stock not found | Error - {ticker}: {error}')\n",
"\n",
"# Threaded Calls\n",
"threads = []\n",
"\n",
"for ticker in ticker_input[\"Tickers\"]:\n",
" thread = Thread(target=get_info, args=(ticker,))\n",
" threads.append(thread)\n",
" thread.start()\n",
"\n",
"for thread in threads:\n",
" thread.join()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"\n",
"## Download Stock History Data\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[*********************100%***********************] 87 of 87 completed\n"
]
}
],
"source": [
"# yf.download() gives us the historical data for a space-separated string-list of tickers \n",
"# This also removes all stocks that have no stock history information. \n",
"\n",
"ticker_hist = yf.download(\n",
" tickers = \" \".join([ticker for ticker in ticker_info_dict.keys()]),\n",
" # Download Data From the past 6 months\n",
" period = \"6mo\",\n",
" interval = \"1d\",\n",
" group_by = 'ticker',\n",
" threads = True\n",
" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Daily volume\n",
"* We then check if the daily volume of each ticker fulfills the requirements (`>10 000` shares per day)\n",
"* If the stock does not have any historical data, we also drop it from our list.\n",
"* As always, we keep a log of what is happening below the code box.\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Initialize start dates\n",
"daily_vol_start = '2021-07-02'\n",
"daily_vol_end = '2021-10-22'\n",
"\n",
"\n",
"# Defines a function get_daily_volume that produces the average daily volume of a stock over a specified time frame.\n",
"# Inputs: \n",
"# ticker is of type String, represents the ticker of a desired stock\n",
"# start is of type String, represents the starting date of interval, default is previously defined\n",
"# end is of type String, represents the ending date of interval, defauly is previously defined\n",
"# Outputs:\n",
"# output is of type Float\n",
"\n",
"def get_daily_volume(ticker, start=daily_vol_start, end=daily_vol_end):\n",
" filled_in_hist = ticker_hist.copy()\n",
" filled_in_hist.fillna(0, inplace=True)\n",
" volume = ticker_hist[ticker].loc[pd.to_datetime(start) : pd.to_datetime(end)].Volume.mean()\n",
" return volume"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# Adds all tickers in the current dataframe to a list, and removes duplicates along the way.\n",
"ticker_list = []\n",
"for ticker in ticker_hist.columns.to_list():\n",
" if ticker[0] not in ticker_list:\n",
" ticker_list.append(ticker[0])\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Timothy\\anaconda3\\envs\\cfm101\\lib\\site-packages\\pandas\\core\\generic.py:4150: PerformanceWarning: dropping on a non-lexsorted multi-index without a level parameter may impact performance.\n",
" obj = obj._drop_axis(labels, axis, level=level, errors=errors)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found ticker AC has a volume < 10000 shares per day - Dropped\n",
"Found ticker TRIL has no closing data for today - Dropped\n"
]
}
],
"source": [
"# filter out stocks with average daily volume < 10 000 shares\n",
"# as calculated based on the time interval of July 02, 2021 to October 22, 2021.\n",
"\n",
"filtered_tickers_info = {}\n",
"filtered_ticker_hist = ticker_hist.copy()\n",
"\n",
"for ticker in ticker_list:\n",
" # Check if the average daily volume is less than 10,000. Otherwise, it is at least 10,000.\n",
" if get_daily_volume(ticker) < 10000:\n",
" filtered_ticker_hist = filtered_ticker_hist.drop(ticker, axis=1)\n",
" print(f'Found ticker {ticker} has a volume < 10000 shares per day - Dropped')\n",
" # Drops ticker from our historical data dataframe if it has no historical data for whatever reason\n",
" elif filtered_ticker_hist[ticker].dropna().empty:\n",
" filtered_ticker_hist = filtered_ticker_hist.drop(ticker, axis=1)\n",
" print(f'Found ticker {ticker} has no historical data - Dropped')\n",
" # Drops tickers that dont have any data for the current day\n",
" elif pd.isna(filtered_ticker_hist[ticker].Close.iloc[-1]):\n",
" filtered_ticker_hist = filtered_ticker_hist.drop(ticker, axis=1)\n",
" print(f'Found ticker {ticker} has no closing data for today - Dropped')\n",
" \n",
" # Otherwise, the data is good, so we add it into our filtered historical data DataFrame.\n",
" else:\n",
" filtered_tickers_info[ticker] = ticker_info_dict[ticker]\n",
"\n",
"# Refreshes Index\n",
"filtered_ticker_hist.reset_index(inplace=True)\n",
"filtered_ticker_hist.set_index(\"Date\", inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*** \n",
"# Data Analytics\n",
"\n",
"Our strategy is to go ***risky***. Thus, our end goal is to construct a portfolio in such a way that our ending returns are the furthest away from our starting balance of 100k. This can be done in two ways; driving the portfolio down to a balance of ***zero***, or netting the largest gains from our initial capital. Because our strategy will benefit regardless of the direction of movement, and instead will depend on the ***amount*** of movement, we need to create a portfolio that nets the greatest volatility, and also consists of stocks that move in the **same direction**. Our portfolio will consist of the minimum amount of allowed companies, `10`. With this amount, we will be able to guarantee that there is minimal diversification caused by exposure to the market. Remember, we want the most returns, positive or negative, so diversification is something that we will ***avoid***. \n",
"\n",
"We have two different strategies that we will use for our portfolio:\n",
"\n",
"#### Ranking Betas\n",
"Our first approach involves calculating the beta of each ticker, and then ranking them amongst each other. We will then compare the magnitude of the average beta of the top ten and bottom ten stocks on the list. The higher mean will be the one we choose to build the first portfolio. This will then result in a portfolio that is:\n",
"* Positively correlated, and\n",
"* Volatile in comparison to the market \n",
"\n",
"These two factors will allow us to take advantage of the least market diversification, and highest volume of change. First of all, being correlated to the market indirectly produces a positive correlation between each of the companies in the portfolio. This will ensure that any movement in the price of Stock A in the portfolio will likely be reflected in the price movements of Stock B, ignoring non-market factors such as some company-specific influence. However, for the sake of the competition, it is extremely unlikely that such an event will occur with only a portfolio of ten stocks.\n",
"\n",
"***\n",
"## Using Beta"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# We will start by defining some parameters.\n",
"\n",
"# We are interested in finding relatively recent data that will reveal more about the \n",
"# present conditions of the stocks.\n",
"start_date = (datetime.now() - timedelta(days=60)).strftime(\"%Y-%m-%d\")\n",
"end_date = (datetime.now() - pd.tseries.offsets.BDay(DELTA)).strftime(\"%Y-%m-%d\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* ### 1) Getting a Market Index"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"MarketIndex = \"^GSPC\" # We will compare each stock's covariance to the S&P 500\n",
"\n",
"market_hist = yf.Ticker(MarketIndex).history(start=start_date, end=end_date).filter(like=\"Close\")\n",
"market_hist[\"Returns\"] = market_hist[\"Close\"].pct_change()*100\n",
"\n",
"market_var = market_hist[\"Returns\"].var()\n",
"\n",
"# stock_returns is a series of stock returns\n",
"\n",
"# get_stock_beta produces the beta of a specified ticker\n",
"# Inputs:\n",
"# stock_returns_series is of type Series, represents the column of a dataframe of the returns of the price\n",
"\n",
"def get_stock_beta(stock_returns_series, marketVar=market_var):\n",
" binary_portfolio = market_hist[[\"Returns\"]].copy()\n",
" binary_portfolio[\"stock\"] = stock_returns_series\n",
" return (binary_portfolio.cov() / marketVar)['stock'].loc[\"Returns\"]\n",
"\n",
"\n",
"#get_all_betas takes a list of tickers and outputs a list of all the betas of every\n",
"# ticker in the list.\n",
"\n",
"def get_all_betas(ticker_list):\n",
" betas = {}\n",
" for ticker in ticker_list:\n",
" ticker_returns = filtered_ticker_hist[ticker][['Close']].pct_change()*100\n",
" betas[ticker] = get_stock_beta(ticker_returns['Close'])\n",
" return betas"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"#Creates a dataframe with keys being tickers and corresponding to their values, the ticker's beta\n",
"beta_dict = get_all_betas(filtered_tickers_info.keys())\n",
"beta_df = pd.DataFrame.from_dict(beta_dict, orient='index')\n",
"beta_df.columns = ['Beta']\n",
"beta_df.index.name = 'Ticker'"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"#Sorts the dictionary from lowest beta to highest beta\n",
"sorted_beta_df = beta_df.sort_values('Beta').copy()\n",
"\n",
"#Creates a dataframe with the 10 lowest betas and 10 highest betas.\n",
"lower_bound = sorted_beta_df.iloc[:10]\n",
"upper_bound = sorted_beta_df.iloc[-10:]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Below, we have the list of the companies with the 10 lowest betas. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Beta</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Ticker</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>PFE</th>\n",
" <td>-1.167959</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ENGH</th>\n",
" <td>-0.716830</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BMY</th>\n",
" <td>-0.129617</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MRK</th>\n",
" <td>-0.092125</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MO</th>\n",
" <td>-0.017988</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MON</th>\n",
" <td>-0.006274</td>\n",
" </tr>\n",
" <tr>\n",
" <th>PM</th>\n",
" <td>0.058273</td>\n",
" </tr>\n",
" <tr>\n",
" <th>T</th>\n",
" <td>0.206294</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CL</th>\n",
" <td>0.216375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>PG</th>\n",
" <td>0.253071</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Beta\n",
"Ticker \n",
"PFE -1.167959\n",
"ENGH -0.716830\n",
"BMY -0.129617\n",
"MRK -0.092125\n",
"MO -0.017988\n",
"MON -0.006274\n",
"PM 0.058273\n",
"T 0.206294\n",
"CL 0.216375\n",
"PG 0.253071"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lower_bound"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Below, we have the list of the companies with the 10 highest betas. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Beta</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Ticker</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>GM</th>\n",
" <td>1.561377</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SU</th>\n",
" <td>1.607744</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AXP</th>\n",
" <td>1.696138</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BA</th>\n",
" <td>1.727981</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SPG</th>\n",
" <td>1.749109</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BB</th>\n",
" <td>1.777889</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CAE</th>\n",
" <td>1.834861</td>\n",
" </tr>\n",
" <tr>\n",
" <th>OXY</th>\n",
" <td>1.966557</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CVE</th>\n",
" <td>1.978665</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ERF</th>\n",
" <td>2.583734</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Beta\n",
"Ticker \n",
"GM 1.561377\n",
"SU 1.607744\n",
"AXP 1.696138\n",
"BA 1.727981\n",
"SPG 1.749109\n",
"BB 1.777889\n",
"CAE 1.834861\n",
"OXY 1.966557\n",
"CVE 1.978665\n",
"ERF 2.583734"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"upper_bound"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Below, we will determine which list of stocks nets the highest magnitude of beta"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['GM', 'SU', 'AXP', 'BA', 'SPG', 'BB', 'CAE', 'OXY', 'CVE', 'ERF']"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Gets the final stock list we want\n",
"\n",
"#Calculates the mean of the upper and lower list of betas\n",
"avg_upper = upper_bound['Beta'].mean()\n",
"avg_lower = lower_bound['Beta'].mean()\n",
"\n",
"# Compares the averages of the two and makes the one with the higher absolute value a \n",
"# candidate for our final list of stocks.\n",
"if abs(avg_upper) >= abs(avg_lower):\n",
" beta_final_ticker_list = list(upper_bound.index)\n",
"else:\n",
" beta_final_ticker_list = list(lower_bound.index)\n",
" \n",
"# Prints out the potential list.\n",
"beta_final_ticker_list"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This list of stocks is _one of two_ candidates for our final portfolio. This one has the highest magnitude of beta, which then results in the highest chance for the stocks to move in relation and in great amplitude."
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": []
},
"source": [
"***\n",
"## Naked Options Analysis\n",
"* `PUTS` If there are alot of in the money put options expiring soon (relative to the avg volume) then the stock price will increase because those long the put will have to purhcase shares to sell to those short the put.\n",
"\n",
"* `CALLS` If there are alot of in the money call options expiring soon (relative to the avg volume) then the stock price will also increase because those short the call will have to purchase shares to sell to those long the call.\n",
"\n",
"* This analysis is predicated on the assumption that the majority of calls and puts are bought or sold without the buyer or seller, depending on if it is a put or call option respectively, **owning** the stock for the contract. \n",
"\n",
"* Instead, on the expiry date of the contract, these individuals will purchase the stock at the market price if the contract is exercised. At a large enough volume, this will cause the stock price to go up since buyers are forced to purchase the stock, regardless of the price, resulting in a price inelastic demand curve for the company’s shares. Since this only works for the state of the options contract near the exercise date, we only analyze the past week’s options data.\n",
"\n",
"* Our code will pull the number of in the money options contracts for each stock that we have complete historical data for into a dictionary `options_interest_dict` as a cache for our api calls.\n",
"* If our code does not find any options data for the stock, we will ignore it and move on to the next stock.\n",
"* Below is a list of the stocks with the highest ratio of in the money options compared to its daily volume. If there are less than 10 stocks in this list, the code will not use this list to determine the final portfolio.\n",
"***"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"# get_option_interest takes in a ticker and outputs the total number of in the money options expiring within a week\n",
"def get_option_interest(ticker):\n",
" stock = yf.Ticker(ticker)\n",
" options = stock.option_chain(stock.options[0])\n",
" calls = pd.DataFrame().append(options.calls)\n",
" puts = pd.DataFrame().append(options.puts)\n",
" option_interest = calls.loc[calls['inTheMoney']]['openInterest'].sum() + puts.loc[puts['inTheMoney']]['openInterest'].sum()\n",
" return option_interest"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dropped OTEX - no data\n",
"Dropped WCN - no data\n",
"Dropped CM - no dataDropped IMO - no data\n",
"Dropped MON - no data\n",
"\n",
"Dropped SLF - no data\n",
"Dropped TRI - no data\n",
"Dropped ENGH - no data\n",
"Dropped CAE - no data\n",
"Dropped BNS - no data\n",
"Dropped BMO - no data\n",
"Dropped CTS - no data\n",
"Dropped CSU - no data\n",
"Dropped TRP - no data\n"
]
}
],
"source": [
"# We will now parse through the entire stock list to import all of the options data for the second analysis.\n",
"\n",
"option_interest_dict = {}\n",
"opt_start = (datetime.now() - timedelta(days=7)).strftime(\"%Y-%m-%d\")\n",
"opt_end = (datetime.now() - pd.tseries.offsets.BDay(DELTA)).strftime(\"%Y-%m-%d\")\n",
"\n",
"def import_options(ticker):\n",
" try:\n",
" open_interest = get_option_interest(ticker)\n",
" daily_vol = get_daily_volume(ticker, start=opt_start, end=opt_end)\n",
" option_interest_dict[ticker] = open_interest / daily_vol\n",
" # yFinance's historical data is sometimes incomplete. This try except will catch any tickers that have insufficient data and drops them from our analysis.\n",
" except IndexError as error:\n",
" print(f'Dropped {ticker} - no data') \n",
"\n",
"# Threaded Calls\n",
"threads = []\n",
"\n",
"for ticker in list(filtered_tickers_info.keys()):\n",
" thread = Thread(target=import_options, args=(ticker,))\n",
" threads.append(thread)\n",
" thread.start()\n",
"\n",
"for thread in threads:\n",
" thread.join()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Option Interest / dailyVol\n",
"GM 0.010267\n",
"AMZN 0.010993\n",
"SLB 0.011616\n",
"BIIB 0.011776\n",
"ACB 0.013752\n",
"UPS 0.015071\n",
"GOOG 0.016257\n",
"SPG 0.016993\n",
"BHC 0.020913\n",
"CVS 0.021753\n"
]
}
],
"source": [
"if len(option_interest_dict.keys()) >= 10:\n",
" # Creates a dataframe that corresponds tickers with the option interest over the daily volume\n",
" option_interest_df = pd.DataFrame.from_dict(option_interest_dict, orient='index')\n",
" option_interest_df.columns = ['Option Interest / dailyVol']\n",
" sorted_option_interest_df = option_interest_df.sort_values('Option Interest / dailyVol').copy()\n",
" sorted_option_interest_df.dropna(inplace=True)\n",
" final_option_df = sorted_option_interest_df.tail(10)\n",
" print(final_option_df)\n",
"else:\n",
" print('Error - Insufficient options data for tickers in Tickers.csv, skipping...')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['GM', 'AMZN', 'SLB', 'BIIB', 'ACB', 'UPS', 'GOOG', 'SPG', 'BHC', 'CVS']\n"
]
}
],
"source": [
"if len(option_interest_dict.keys()) >= 10:\n",
" # Creates a new list of 10 tickers that will be the second candidate for our final list of 10 tickers.\n",
" opt_tickers = list(final_option_df.index)\n",
" print(opt_tickers)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Portfolio Weightings"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To determine how our final output portfolio should be weighted, we have two options:\n",
"\n",
"### Option `1`\n",
"\n",
"We can iterate through **all** permutations of weightings for all of the stocks in our final stock list (10 stocks), which indeed is less than the inputted list of tickers (>10 stocks), but we quickly find that this is quite computationally intensive. For example, if we take a similar approach as we did in `Assignment 4`, each stock could possibly have a weight of $35\\% - 5\\%$ different values (since each stock can only have a minumum of $\\frac{100}{2 \\times 10} = 5\\% $, and a maximum of $35\\%$) supposing that the granularity of our weights are 1%, while the rest of the list of stocks would each have to share all possible permuations of $ 100 - \\text{weight of Stock A} $. \n",
"\n",
"Some math tells us that the number of iterations that we would need to loop through are:\n",
"\n",
"* At a minimum (easy for calculation, sufficient for explanation), let's assume that each stock can only have a very restrictive 10 unique weights. Then the permutations that we would need to compute are: $10^{10}$ permutations, which is a lot.\n",
"\n",
"*So, we need to find a more efficient way to calculate our weights.*\n",
"\n",
"***\n",
"### Option `2`\n",
"* We might not need to calculate all iterations. That is, an approximately optimal weight is still acceptable. \n",
"\n",
"So, we can pick **random** weights, and somehow **quantify** the portfolio in such a way that we can rank them and pick the best one of those to be our \"optimal\" portfolio.\n",
"\n",
"**This method is also referred to as the Monte Carlo Method**, which is a method commonly used in finance when there are too many variables to analytically determine the best weight.\n",
"\n",
"* First, we need to come up with a way to randomize weightings that fit our criteria.\n",
"\n",
"#### Observe that:\n",
"\n",
"$$ \\Large{\\frac{n_1}{\\sum_{i=1}^{10} n_i} + \\frac{n_2}{\\sum_{i=1}^{10} n_i} + \\ldots + \\frac{n_{10}}{\\sum_{i=1}^{10} n_i} = \\text{1, } \\text{where } n \\in \\mathbb{R^+}} $$\n",
"\n",
"### So what?\n",
"* This means that we can use this relationship to randomize our weightings. For example, if we had:\n",
"```\n",
"n1 = random.random()\n",
"n2 = random.random()\n",
".\n",
".\n",
".\n",
"n10 = random.random()\n",
"```\n",
"\n",
"Then,\n",
"```\n",
"numbers = [n1, n2, ..., n10]\n",
"for number in numbers:\n",
" number /= sum of numbers\n",
"```\n",
"And we then have that\n",
"```\n",
"sum(numbers) = 1\n",
"```\n",
"\n",
"### The actual code to get this result is shown below"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"weightings = []\n",
"min_weight = 0.05\n",
"max_weight = 0.35\n",
"\n",
"# get_weight_list randomly generates a list of 10 numbers from 0 to 1 that correspond to the weightings of each stock\n",
"def get_weight_list():\n",
" # We will pick 10 random numbers from a range of 100 numbers\n",
" # random.sample is O(n), so we want to minimize this number\n",
" random_num_list = random.sample(range(100), 10)\n",
" \n",
" listsum = sum(random_num_list)\n",
" for i in range(len(random_num_list)):\n",
" random_num_list[i] /= listsum\n",
" \n",
" # Check if the randomized weightings match those from the assignment's specifications.\n",
" if (min(random_num_list) < min_weight) or (max(random_num_list) > max_weight):\n",
" # If not, recurse back and try again\n",
" return get_weight_list()\n",
" else:\n",
" return random_num_list"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"# Monte Carlo Method\n",
"\n",
"As stated before, to calculate weightings, we can run 2000 iterations of randomized weightings to approximate what an ideal weighting would be. Of course, running more iterations will net greater accuracy, however at a cost of more computation time. For the sake of the assignment, we chose to only run 2000 iterations as we believe it to be sufficient, while also not hoarding loads of runtime.\n",
"\n",
"### However, before that:\n",
"\n",
"* We still need some way to quantify our portfolios such that we can rank them at the end.\n",
"* In `Assignment 4`, we ranked portfolios using their Sharpe Ratios to find the best weighting. Now, we will do something similar.\n",
"***"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### \"\"\"Risk Coefficent\"\"\"\n",
"* In `Assignment 4`, we used the Sharpe Ratio to quantify how well the portfolio performs per unit risk. However, for this assignment, we do not care too much about how our returns stack up **per** unit risk. Instead, we just want a portfolio that will yield us a high magnitude of return (positive or negative), and also stocks that will have high amounts of volatility so that they move as much as possible.\n",
"\n",
"Thus, We will modify the sharpe ratio equation to **reward** high volatility stocks. \n",
"\n",
"Recall the equation for the Sharpe Ratio:\n",
"\n",
"$$ S=\\frac{R_P-R_f}{\\sigma_P} $$\n",
"\n",
"* So we can quantify the risk and reward coefficient of a portfolio by multiplying the sharpe ratio by the variance (standard deviation squared)\n",
"\n",
"\\begin{align*}\n",
"R_\\alpha &= S \\times \\sigma_p^2\\\\\n",
"&= \\frac{R_p - R_f}{\\sigma_p} \\times \\sigma_p^2\\\\\n",
"&= \\left(R_p - R_f \\right) \\sigma_p\\\\\n",
"\\end{align*}\n",
"\n",
"* We get rewarded for having high returns, but we also get rewarded for having high risk due to multiplication.\n",
"* To not have to deal with negative values, we will square both sides to obtain some positive amount that only accounts for the magnitude of the risk of the portfolio times the return of the stock squared.\n",
"\n",
"$$ R_\\alpha = \\left[{\\left(R_p - R_f \\right) \\sigma_p}\\right]^2 $$\n",
"\n",
"***\n",
"After calculating each portfolio's ${R_\\alpha}$, we can now compare them amongst each other, with higher ${R_\\alpha}$ being more desireable. (note: we can just take the max() of these values to get the best weights later).\n",
"\n",
"# Code:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"# On weekends, or holidays, the entire market will not have any data. Therefore, we will be removing just those to make our return numbers more accurate.\n",
"# since we are working on smaller timescales.\n",
"\n",
"# Cryptocurrencies will have data on weekends and holidays, and afterhours, but:\n",
"# Note that any Cryptocurrency is not traded on US markets (according to yFinance at least), so they were dropped. \n",
"# Therefore, we do not need to worry about these messing with our data.\n",
"\n",
"# Drops all rows if and only if the entire row is empty.\n",
"filtered_ticker_hist.dropna(how='all', inplace=True)\n",
"\n",
"# Fills all remaining spots in the dataframe that do not have data.\n",
"filtered_ticker_hist.fillna(method='ffill', inplace=True)\n",
"filtered_ticker_hist.fillna(method='bfill', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"# monte_carlo is a function that determines the optimal amount of shares to buy for each stock and what the \n",
"# risk coefficient would be.\n",
"def monte_carlo(weight_list, start_date, end_date, ticker_list, r_f=0, cash=100000):\n",
" portfolio = pd.DataFrame(index=pd.date_range(start=start_date, end=end_date))\n",
" \n",
" portfolio_shares = {}\n",
" total = 0\n",
" for i in range(len(ticker_list)):\n",
" allocation = weight_list[i] * cash\n",
" # Simulate purchasing $100,000 worth of shares at the beginning of the time period\n",
" initial_ticker_price = filtered_ticker_hist[ticker_list[i]].Close.iloc[0]\n",
" shares = allocation / initial_ticker_price\n",
" \n",
" # Alongside this, create a portfolio of shares with the same weightings, but priced in the present.\n",
" present_ticker_price = filtered_ticker_hist[ticker_list[i]].Close.loc[end_date]\n",
" shares_present = allocation / present_ticker_price\n",
" portfolio_shares[ticker_list[i]] = shares_present\n",
" total += present_ticker_price * shares_present\n",
" \n",
" # Simulate Purchasing of the shares and perform analysis on the past data\n",
" portfolio[ticker_list[i]] = shares * filtered_ticker_hist[ticker_list[i]].loc[pd.to_datetime(start_date) : pd.to_datetime(end_date)].Close\n",
" portfolio.dropna(how='all', inplace=True)\n",
" portfolio.fillna(method='ffill', inplace=True)\n",
" portfolio.fillna(method='bfill', inplace=True)\n",
" portfolio['Total Value'] = portfolio.sum(axis=1)\n",
" portfolio['Percent Return'] = portfolio['Total Value'].pct_change() * 100\n",
"\n",
" std = portfolio['Percent Return'].std()\n",
" avg_return = portfolio['Percent Return'].mean()\n",
" risk_coefficient = (avg_return * std) ** 2\n",
" return (risk_coefficient, portfolio_shares)\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"# Running the Monte Carlo Simulation"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'GM': 143.98799800259656,\n",
" 'SU': 346.0154368112557,\n",
" 'AXP': 39.77408335505635,\n",
" 'BA': 56.792152593646094,\n",
" 'SPG': 91.03754080575513,\n",
" 'BB': 613.7479790805365,\n",
" 'CAE': 319.75150450268274,\n",
" 'OXY': 168.69096163835331,\n",
" 'CVE': 1078.6489547519845,\n",
" 'ERF': 1680.702020383795}"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Number of trials; the higher this number, the more accurate our approximation is, but the slower it becomes.\n",
"trials = TRIALS\n",
"\n",
"#Applies the Monte Carlo method to find the optimal weighting for the first potential candidate\n",
"\n",
"start_day = (datetime.now() - timedelta(days=60)).strftime(\"%Y-%m-%d\")\n",
"end_day = (datetime.now() - pd.tseries.offsets.BDay(DELTA)).strftime(\"%Y-%m-%d\")\n",
"beta_risk_coefficients = {}\n",
"\n",
"# We will be trading space efficiency for time efficiency\n",
"def run_monte_carlo(start, end, tickers):\n",
" weight_list = get_weight_list()\n",
" result = monte_carlo(weight_list, start, end, tickers)\n",
" beta_risk_coefficients[result[0]] = result[1]\n",
"\n",
" \n",
"# Threaded Calls\n",
"threads = []\n",
"\n",
"for i in range(trials):\n",
" thread = Thread(target=run_monte_carlo, args=(start_day, end_day, beta_final_ticker_list))\n",
" threads.append(thread)\n",
" thread.start()\n",
"\n",
"for thread in threads:\n",
" thread.join()\n",
"\n",
"\n",
"# deprecated code to run custom weights\n",
"def run_monte_carlo_custom(start, end, weight_list, tickers=beta_final_ticker_list):\n",
" result = monte_carlo(weight_list, start, end, tickers)\n",
" beta_risk_coefficients[result[0]] = result[1]\n",
"\n",
"\n",
"optimal_weight = beta_risk_coefficients[max(beta_risk_coefficients.keys())]\n",
"optimal_weight"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The maximum risk coefficient for our beta portfolio was 0.04238588320411071\n"
]
}
],
"source": [
"print(f'The maximum risk coefficient for our beta portfolio was {max(beta_risk_coefficients.keys())}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Results of our simulation\n",
"* Below is a histogram that shows the distribution of our risk coefficients for each iteration of our simulation. We chose the highest one as the \"riskiest\" portfolio since it is the portfolio with the highest magnitude of standard deviation times returns, as shown in the proof above.\n",
"* So, the portfolios to the right of the graph are more risky, and thus more desireable for us compared to those way on the left."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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AAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGmVukrqqrVdUnqurTVXVWVf35dPzQqvp4VW2pqjdW1VWm41ed9rdM5zfMazYAAAAAAFaGeT5JfXGSe3T3bZMcnuS+VXVkkuckOam7b5rkO0mOm64/Lsl3puMnTdcBAAAAALCKzS1S94KLpt0rT786yT2SvHk6fkqSY6bto6f9TOfvWVU1r/kAAAAAABhvrmtSV9U+VXVmkguTvDvJl5J8t7svmS45P8mB0/aBSc5Lkun895Lst5P3PL6qNlfV5m3bts1zfAAAAAAA5myukbq7L+3uw5MclOQOSW62BO/5su7e2N0b169fv6dvBwAAAADAQHON1Nt193eTvD/J/0yyb1Wtm04dlOSCafuCJAcnyXT+ukm+tRzzAQAAAAAw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\n",
"text/plain": [
"<Figure size 1800x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Plots the distribution of risk coefficients.\n",
"plt.figure(figsize=(25,10))\n",
"\n",
"plt.hist(beta_risk_coefficients, bins=25)\n",
"plt.title('Risk Coefficients')\n",
"plt.xlabel('Coefficient')\n",
"plt.ylabel('Frequency')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Risk Coefficient Histogram\n",
"* Above, we have the distribution of the risk coefficients of the various itterations from the simulation. Notice, that there is distinct region with higher frequency. This is caused from the nature of stock weightings. From this graph, we can conclude that it is easier to acheive lower/average risk coefficients compared to those with higher risk coefficients at the right."
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": []
},
"source": [
"# We will also create a backdated plot comparing the portfolio with the lowest risk coefficient to the one with the highest risk coefficient."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"low_coeff_beta_shares = beta_risk_coefficients[min(beta_risk_coefficients.keys())]\n",
"low_coeff_beta_df = pd.DataFrame()\n",
"low_coeff_beta_df.index = filtered_ticker_hist.index\n",
"for ticker in list(low_coeff_beta_shares.keys()):\n",
" low_coeff_beta_df[ticker] = filtered_ticker_hist[ticker].Close * low_coeff_beta_shares[ticker]\n",
"low_coeff_beta_df['Portfolio Value'] = low_coeff_beta_df.sum(axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"high_coeff_beta_shares = beta_risk_coefficients[max(beta_risk_coefficients.keys())]\n",
"high_coeff_beta_df = pd.DataFrame()\n",
"high_coeff_beta_df.index = filtered_ticker_hist.index\n",
"for ticker in list(high_coeff_beta_shares.keys()):\n",
" high_coeff_beta_df[ticker] = filtered_ticker_hist[ticker].Close * high_coeff_beta_shares[ticker]\n",
"high_coeff_beta_df['Portfolio Value'] = high_coeff_beta_df.sum(axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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+AOA3377jdjYWF/l88GDBxkyZAhz5swhNjaWV155Jd25hIaG0qZNG7ZssY0pUldwBztvagsXLvRVWqf21ltv0bdvX9q1a+fb1qtXLypVqsSePXu4/PLLadasGW3btuXvv/8G4PDhw9x66620adOGFi1a8PXXtm74ggsuYMuWLcTGxvLUU0/x6quvMmbMGDp37gz4V9CPHDmSpk2b0rx5c4YMsXHrzTffzOTJkwFYvHgxnTp1omXLllx44YVs27YNgPPOO4/BgwfTpk0b6tevz5w5czh+/DhDhw5l0qRJxMbGMmnSpMx9czPJdfJdssdxnN7pDE1JZ/9ngWeDbJ8OBMT9juOsB9oE2X4UuDpLkxUREREREREREZFsuf9+WLo0d88ZGwuvvpr14/r06cMbb7xBp06dGDp0qC/IPXr0KAcOHGDOnDm0atWKOXPm0KFDBypWrEhkZCS33347DzzwAB06dGDjxo1ceOGFrFq1ilGjRvHWW2/Rvn17Dh06RHh4OM8//zyjRo3i22+/zXAuR48eZf78+bz22msBY8HOm2Lu3Lncc889fP3119SsWdPvuOXLl9O3b9+0pwPgySefpEWLFkydOpWff/6ZPn36sHTpUp599lm6dOnC2LFj2bdvH23atKFr165MmzaNSy65hKXeb57jOBQvXpxBgwb5nXfGjBl8/fXXzJ8/n8jISPbs2eM37na7ffOtUKECkyZN4rHHHmPs2LEAeDweFixYwPTp03nqqaf48ccfGT58OIsWLeLNN9/M8DHMjjwLvEVERERERERERETyy/79+9m3bx+dOnUCoG/fvlx9ta2LPeecc/jjjz+YPXs2jz76KN9//z2O49CxY0cAfvzxR1auXOk714EDBzh06BDt27fnwQcf5IYbbuDKK6+kevXqJ53HunXriI2NZcOGDVx88cU0a9YsYJ/0zrtq1Sr69evHrFmzqFq1apbu/++//86XX34JQJcuXdi9ezcHDhxg1qxZTJs2jVGjRgE2iN+4cSMRERGZOu+PP/7ILbfcQmRkJABly5b1G4+Li2P58uV069YNgKSkJKpUqeIbv/LKKwFo2bIl8fHxWbpP2aHAW0RERERERERERLItO5XY+e3cc89lzpw5JCQkcNlllzFy5EiMMVx88cUAJCcn8+eff/pVWgMMGTKEiy++mOnTp9O+fXtmzpx50mul9PDetWsX7du3Z9q0afTs2TNT561SpQpHjx5lyZIlQQPvxo0bs3jxYi677LJM33fHcfjyyy+JiYnx255b4bPjODRu3Jh58+YFHS9atChgW7x4PJ5cuWZGCsuilSIiIiIiIiIiIiLZVqpUKcqUKcOcOXMA+Oijj3zV3h07duTjjz8mOjqakJAQypYty/Tp0+nQoQNg+1m/8cYbvnOltPlYt24dTZs2ZfDgwbRu3ZrVq1dTokSJTC0SWb58eZ5//nlGjBgRMBbsvAClS5fmu+++45FHHuHXX38NOO7uu+9mwoQJzJ8/37ftq6++4r///qNjx4588skngO0XXr58eUqWLMmFF17IG2+8geM4ACxZsuSkc0+tW7dujBs3jsTERICAliYxMTHs3LnTF3i73W5WrFgRcJ7UMvsYZocCbxERERERERERETnlJCYmUr16dd/Hyy+/zIQJE3j44Ydp1qwZS5cuZejQoQDUrl0bx3E499xzAejQoQOlS5emTJkyALz++ussWrSIZs2a0ahRI95++20AXn31VZo0aUKzZs0ICwvjoosuolmzZoSGhtK8efMMF60EuPzyy0lMTPSF8CmCnTdFpUqV+Pbbbxk4cKBfsJ0y9tlnnzFo0CBiYmJo2LAhM2fOpESJEgwbNozFixfTrFkzhgwZwoQJEwB44okncLvdNGvWjMaNG/PEE09k6XHu3r07PXv2pFWrVsTGxvpao6QoUqQIkydPZvDgwTRv3pzY2Fjmzp2b4Tk7d+7MypUr82TRSpOS7J/pWrVq5SxatKigpyEiIiIiIiIiIlLorVq1ioYNGxb0NOQMEOy5ZoxZ7DhOq2D7q8JbRERERERERERERE4LCrxFRERERERERERE5LSgwFtERERERERERERETgsKvEVERERERERERETktKDAW0REREREREREREROCwq8RURERERERCTPJCfDY4/BRRfBt9/ar0VERPKKAm8RERERERERyRNuN/TtC889B/Pnw6WXQsOGMHo0HD5c0LMTkVNd8eLF/b4eP348d999NwBvv/02H374YYbHp94/J6ZOncrKlSuDjg0bNoxq1aoRGxtLo0aN+PTTT31jQ4cO5ccff0z3vDfffDOTJ08+6fVHjRpFgwYNiI2NpXXr1ie93+lZvXo1sbGxtGjRgnXr1vH666/TsGFDbrjhBqZNm8bzzz+f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zmCrV/vWiSw8gXdMDPz7r20ufopp1QpeeQVmzIARIwp6NiIiZx4F3iIiIiIiIiJnKMexhdQxMcD+/fajsATeR47A5s0FPZNsufNOu6Dm0KHwyy8FPRsRkTOLAm8RERERERGRM9SOHTbjbtAAW90NhSfwBlt+XlisX28frEwwBt59F+rXh969YevWPJ6biIj4KPAWEREREREROUOl5Mm+BSuhcATeDRrY21R9vAvMwoVw+eVQrx706ZPpw0qUgMmT4eBBaN0avvkm76YoIiInKPAWEREREREROUOl5MmFLvCuVAlKlizYwPv336F7d2jTBn77za5E+c03EB+f6VM0bgyzZ0PZstCzJ9xwA+zalXdTFhERBd4iIiIiIiIiZ6y4OAgPh5o1sYF30aJQsWJBT8v2BImJyf+WJo4DP/wA550HHTvCX3/B88/bx2biRDuv997L0ilbtoTFi2HYMPj8c2jUyN46Tp7cAxGRM54CbxEREREREZEzVFyc7TMdEoINdWvW9H5RCDRokH8V3o5jq7fbtoULLoC1a+G112w19+DBttq8Zk24+GJ4/304fjxLpy9SBJ580ubntWrBtdfCVVfBtm15c3dERM5kheRfMRERERERERHJb6tXn1gfkoSEwtHOJEVMDGzeDIcO5d01kpLgiy+gRQvbc2THDnjnHVi3Du69FyIj/fe/8067z5Qp2bpc06Ywbx6MHAnTp9tq7z/+yIX7ISIiPgq8RURERERERM5Ax47Bhg2pAu/4+MIXeAP8+2/un9vthg8/tE22r7kGjh6FCRPstfr1s61dgrnwQqhTB8aMyfalXS743//g779tYfn48dk+lYiIBKHAW0REREREROQMtG4dJCfbziEcOWIrlwtT4N2ggb3NzbYmx47Bu+/aML1vXxtsf/45rFgBffpAWFjGx4eEQP/+dhHLVatyNJX69aFhQ/t9EBGR3KPAW0REREREROQMlJIjx8QAGzfaLwpT4B0VZReJzI3AOzERXn8d6tWzgXWFCjBtGixdCldfDaGhmT/XLbfYYPztt3M8rXr1YP36HJ9GRERSUeAtIiIiIiIicgZavdre1q+P7d8NhSvwDg+H2rVPTDQ7Dh60DbNr14b77rMh+g8/wJ9/wqWX2kA9qypWhF69bAuUw4ezPzds4L1pU5bXwMxXO3bY1wTWrCnomYiIZI4CbxER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\n",
"text/plain": [
"<Figure size 1800x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Plots the distribution of risk coefficients.\n",
"plt.figure(figsize=(25,10))\n",
"\n",
"plt.plot(low_coeff_beta_df.index, low_coeff_beta_df['Portfolio Value'], color='blue', label='Lowest Risk Coefficient')\n",
"plt.plot(high_coeff_beta_df.index, high_coeff_beta_df['Portfolio Value'], color='red', label='Highest Risk Coefficient')\n",
"\n",
"# Plot line that connects first day's price to current price\n",
"plt.plot([high_coeff_beta_df.index[0], high_coeff_beta_df.index[-1]], [high_coeff_beta_df['Portfolio Value'].iloc[0], high_coeff_beta_df['Portfolio Value'].iloc[-1]], color='purple', linewidth=3, linestyle=':')\n",
"plt.plot([low_coeff_beta_df.index[0], low_coeff_beta_df.index[-1]], [low_coeff_beta_df['Portfolio Value'].iloc[0], low_coeff_beta_df['Portfolio Value'].iloc[-1]], color='black', linewidth=3, linestyle=':')\n",
"\n",
"plt.legend(loc='best')\n",
"plt.title('Comparison of Low vs. High Risk Coefficient Portfolios')\n",
"plt.xlabel('Date')\n",
"plt.ylabel('Portfolio Value ($USD)')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Comparison of Low vs. High Risk Coefficient Portfolios\n",
"* As you can see, we have back tested both portfolios and plotted the average return lines (connects first and last points). The portfolio with the higher risk coefficient has ***a much*** higher slope in relation to the portfolio with the lower risk coefficient. This then proves that the higher the risk coefficient, the greater the magnitude of change is. \n",
"* Note, that the direction of change is apparent on both portfolios since they contain the same stocks. However, the weightings of stocks are drastically different, which results in the amplitude of change being different. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*** \n",
"# Options Analysis"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"if len(option_interest_dict.keys()) >= 10:\n",
" # Number of iterations - Larger Numbers produce higher accuracy but take longer\n",
" trials = TRIALS\n",
"\n",
" #Uses the Monte Carlo Method on the second potential final list (the one derived from options analysis)\n",
" start_day = (datetime.now() - timedelta(days=60)).strftime(\"%Y-%m-%d\")\n",
" opt_end = (datetime.now() - pd.tseries.offsets.BDay(DELTA)).strftime(\"%Y-%m-%d\")\n",
" options_risk_coefficients = {}\n",
"\n",
" # We will be trading space efficiency for time efficiency\n",
" def run_monte_carlo_opt(start, end, tickers):\n",
" weight_list = get_weight_list()\n",
" result = monte_carlo(weight_list, start, end, tickers)\n",
" options_risk_coefficients[result[0]] = result[1]\n",
"\n",
"\n",
" # Threaded Calls\n",
" threads = []\n",
"\n",
" for i in range(trials):\n",
" thread = Thread(target=run_monte_carlo_opt, args=(start_day, end_day, opt_tickers))\n",
" threads.append(thread)\n",
" thread.start()\n",
"\n",
" for thread in threads:\n",
" thread.join()\n",
"\n",
" # deprecated code to run custom weights \n",
" def run_monte_carlo_custom_opt(start, end, weight_list, tickers=opt_tickers):\n",
" result = monte_carlo(weight_list, start, end, tickers)\n",
" options_risk_coefficients[result[0]] = result[1]\n",
"\n",
"else:\n",
" print('Error - Insufficient Options Data for tickers in Tickers.csv, skipping analysis...')"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'GM': 143.98799800259656,\n",
" 'SU': 346.0154368112557,\n",
" 'AXP': 39.77408335505635,\n",
" 'BA': 56.792152593646094,\n",
" 'SPG': 91.03754080575513,\n",
" 'BB': 613.7479790805365,\n",
" 'CAE': 319.75150450268274,\n",
" 'OXY': 168.69096163835331,\n",
" 'CVE': 1078.6489547519845,\n",
" 'ERF': 1680.702020383795}"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"optimal_weight"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The maximum risk coefficient for our beta portfolio was 0.009451681515909237\n"
]
}
],
"source": [
"if len(option_interest_dict.keys()) >= 10:\n",
" print(f'The maximum risk coefficient for our beta portfolio was {max(options_risk_coefficients.keys())}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Below, is the histogram of the distribution of risk coefficients of the iterations of the options method"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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+jlyWq+qemlVbauqc6rq3nPNBgAAAADA6rBhxnNfleRB3X1lVd0wyUeq6t3TY7/V3W/Z5fiHJTli+rlvkpdPvwIAAAAAsEbNdiV1L7lyunvD6af38pRjk7xuet7HkhxYVYfMNR8AAAAAAOPNuid1VR1QVWcnuSzJe7v7jOmhF0xbepxcVTee1g5NctGyp188re16zuOramtVbd2xY8ec4wMAAAAAMLNZI3V3X9PdRybZlOSoqrp7khOT3DXJfZLcNslzr+M5T+nuLd29ZePGjft6ZAAAAAAAVtCskXqn7r48yQeTPLS7L5229Lgqyf9KctR02CVJDlv2tE3TGgAAAAAAa9RskbqqNlbVgdPtmyZ5SJLP7NxnuqoqyaOSnDs95fQkv1FL7pfkW9196VzzAQAAAAAw3oYZz31IklOr6oAsxfDTuvsdVfWBqtqYpJKcneQp0/HvSvLwJNuSfDfJE2ecDQAAAACAVWC2SN3d5yS5127WH7SH4zvJU+eaBwAAAACA1WdF9qQGAAAAAIDdEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhGpAYAAAAAYBiRGgAAAACAYURqAAAAAACGEakBAAAAABhmtkhdVTepqjOr6lNVdV5V/d60fnhVnVFV26rqzVV1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\n",
"text/plain": [
"<Figure size 1800x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"if len(option_interest_dict.keys()) >= 10:\n",
" # Plots the risk coefficients of all the weights of the second final list candidate\n",
" plt.figure(figsize=(25,10))\n",
"\n",
" plt.hist(options_risk_coefficients, bins=25)\n",
" plt.title('Risk Coefficients')\n",
" plt.xlabel('Coefficient')\n",
" plt.ylabel('Frequency')\n",
"\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Note, we are not able to show a backtested plot for the range of portfolios from the options analysis as it relies on very recent data, so it is only effective in the forwards direction. These stocks may not have been correlated in the past, but we expect them to be correlated in the short term in the future, so for the sake of the competition, this method is quite effective."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"# Final Portfolio Approach\n",
"* Now that we have completed the simulations for both methods, we can now compare our results to see which one provides us with a more desireable (higher) risk coefficient."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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L700SfLAAw/k7LPPzkYbbZRbb701z372s/Oyl73sYS8P/OEPf5htttkm2267bWbMmJGvf/3rOeSQQ5KMhMuzZs3Kpz/96bzqVa/KV77ylRx++OE5+OCD8/rXvz5J8s53vjOf/exnc9xxxy2+5rbbbpuNN944l156aaZNm5Z//ud/zlFHHZXbbrstZ599dubMmZOqyoIFCx523yeddFJ+8YtfZL311lvm8bE2zJXUAAAAAABrrEXtPubMmZNvfetbOeKII9Jay7e//e18+9vfzi677JJdd901c+bMyTXXXPOw81trecc73pGddtopL3zhC3PTTTflN7/5zcPmzZo1a/GK5UMPPfQhLT+22WabTJs2LUmy2267Ze7cuUmSK664Is973vMyderUnHnmmbnyyisfdt3Xve51+ed//ucsXLgwX/rSl/Ka17wmG2+8caZMmZKjjz46//qv/5oNNtjgYefttNNOOeyww/L5z38+kycP9bWFo9K/AgAAAACAzp7znOfk1ltvzfz589Nay9vf/va84Q1veMicRQHyImeeeWbmz5+fSy65JOuuu2623nrrxa08Flm4cGG+8pWv5Jxzzsl73vOetNZy22235a677kqSrLfeeovnTpo0aXG7jyOPPDJf/epXs/POO+e0007LhRde+LCaDznkkLzrXe/KC17wguy2227ZZJNNkiQXX3xxvvvd7+bLX/5yTjnllMUrxBf5+te/nu9///v5t3/7t7znPe/J5Zdf3jWstpIaAAAAAJjw5syZk4ULF2aTTTbJi170opx66qm5++67kyQ33XRTbrnllmy44YaLw+UkueOOO/LEJz4x6667bi644ILccMMND7vud7/73ey000658cYbM3fu3Nxwww055JBDcvbZZz9iPXfddVe22GKL3H///TnzzDOXOWfKlCl50YtelDe96U056qijkiR333137rjjjhx44IE5+eSTc9lllz3knAcffDA33nhjnv/85+f9739/7rjjjsX32YuV1AAAAABAdzNnjv1nLupJnYy07jj99NMzadKk7Lfffrn66qvznOc8J0nyuMc9Lp///Oez7bbbZq+99sqOO+6YAw44ICeccEJe+tKXZurUqZk+fXq23377h33GrFmz8opXvOIhY4ccckg+8YlPZO+9915ube9+97uz5557ZrPNNsuee+75kHB8SYcddljOPvvs7LfffklGwu2DDjoo9913X1pr+dCHPvSQ+QsXLszhhx+eO+64I621HH/88Xn84x8/2m/ZUNTI+wrXTtOnT2+zZ8/uXQYAAAAAsIKuvvrqPPOZz+xdxlrvgx/8YO644468+93v7l3KYsv62VbVJa216cuabyU1AAAAAMBa6BWveEWuu+66h/WcXtsIqQEAAAAA1kKP1td6beHFiQAAAAAAdCOkBgAAAACgGyE1AAAAAADdCKkBAAAAAOjGixMBAAAAgP5mzhzz682bNy9vfvObc9VVV+XBBx/MS17yknzgAx/IYx7zmOWes2DBgnzhC1/IsccemyS5+eabc/zxx+fLX/7y6qp8maZNm5btt98+X/ziF1f6GnPnzs1LXvKSXHHFFSt03rDvUUi9llrd/872NJ7uBQAAAIC1Q2stBx98cN70pjflnHPOycKFC3PMMcfkf/yP/5EPfOADyz1vwYIF+fjHP744pH7Sk5409ID66quvzsKFC3PRRRfld7/7XR772McO9fOWNux71O4DAAAAAJhwzj///EyZMiVHHXVUkmTSpEk5+eSTc+qpp+aee+7JaaedloMOOigzZszIdtttl3e9611JkhNPPDHXXXddpk2blre97W2ZO3dudtxxxyTJfffdl6OOOipTp07NLrvskgsuuCBJctppp+Xggw/O/vvvn+222y5/+7d/myRZuHBhjjzyyOy4446ZOnVqTj755GXWOmvWrPzFX/xF9ttvv5xzzjmLx2fMmJETTjghe+yxR/7kT/4kF110UZKRFdPPe97zsuuuu2bXXXfND3/4w4ddc++9986ll166eP+5z31uLrvssnzve9/LtGnTMm3atOyyyy656667HnKPV155ZfbYY49MmzYtO+20U6655ppV+TEksZIaAAAAAJiArrzyyuy2224PGdtoo43ylKc8Jddee22S5OKLL84VV1yRDTbYILvvvnte/OIX56STTsoVV1yxOOCdO3fu4vM/9rGPpapy+eWXZ86cOdlvv/3y85//PEly6aWX5qc//WnWW2+9POMZz8hxxx2XW265JTfddNPi9hsLFixYZq1f+tKXct5552XOnDn5x3/8x7zmNa9ZfOyBBx7IxRdfnG984xt517vele985zt54hOfmPPOOy9TpkzJNddck1e/+tWZPXv2Q6559NFH57TTTsuHP/zh/PznP899992XnXfeOS996UvzsY99LHvttVfuvvvuTJky5SHnffKTn8xf/dVf5bDDDssf/vCHLFy4cIW/90uzkhoAAAAAYBn23XffbLLJJll//fVz8MEH5wc/+MEjzv/BD36Qww8/PEmy/fbb56lPferikHqfffbJxhtvnClTpmSHHXbIDTfckKc97Wm5/vrrc9xxx+Vb3/pWNtpoo4ddc/bs2dl0003zlKc8Jfvss09++tOf5vbbb198/OCDD06S7LbbbosD8/vvvz+vf/3rM3Xq1Lzyla/MVVdd9bDrvvKVr8zXvva13H///Tn11FNz5JFHJkn22muvvOUtb8lHP/rRLFiwIJMnP3Sd83Oe85y8973vzfvf//7ccMMNWX/99Uf3zXwEQmoAAAAAYMLZYYcdcskllzxk7M4778wvf/nLPP3pT0+SVNVDji+9vyLWW2+9xduTJk3KAw88kCc84Qm57LLLMmPGjHzyk5/M6173uoedN2vWrMyZMydbb711tt1229x55535yle+8rDrLrpmkpx88snZfPPNc9lll2X27Nn5wx/+8LDrbrDBBtl3331zzjnn5Kyzzsphhx2WZKSdyWc+85nce++92WuvvTJnzpyHnPea17wm5557btZff/0ceOCBOf/881f6e7KIkBoAAAAAmHD22Wef3HPPPTnjjDOSjPSHfutb35ojjzwyG2ywQZLkvPPOy+2335577703X/3qV7PXXntlww03zF133bXMaz7vec/LmWeemST5+c9/nl/+8pd5xjOesdwabr311jz44IM55JBD8g//8A/5yU9+8pDjDz74YM4666xcfvnlmTt3bubOnZtzzjkns2bNesR7u+OOO7LFFltknXXWyec+97nltuR43etel+OPPz677757nvCEJyRJrrvuukydOjUnnHBCdt9994eF1Ndff32e9rSn5fjjj89BBx2Un/3sZ49Yy2joSQ0AAAAA9Ddz5ph+XFXl7LPPzrHHHpt3v/vdefDBB3PggQfmve997+I5e+yxRw455JDMmzcvhx9+eKZPn55kpCXGjjvumAMOOCBvfvObF88/9thj86Y3vSlTp07N5MmTc9pppz1kBfXSbrrpphx11FF58MEHkyTve9/7HnL8oosuypZbbpknPelJi8f23nvvXHXVVfnVr3613Osee+yxOeSQQ3LGGWdk//33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\n",
"text/plain": [
"<Figure size 1800x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"if len(option_interest_dict.keys()) >= 10:\n",
" # Plots the risk coefficients of all the weights of the second final list candidate\n",
" plt.figure(figsize=(25,10))\n",
"\n",
"\n",
" plt.hist(beta_risk_coefficients, bins=25, color='blue', alpha=0.50, label='Beta Analysis')\n",
" plt.hist(options_risk_coefficients, bins=25, color='red', alpha=0.5, label='Options Analysis')\n",
" plt.legend(loc='best')\n",
" plt.title('Risk Coefficients')\n",
" plt.xlabel('Coefficient')\n",
" plt.ylabel('Frequency')\n",
"\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* We can see the comparison between both methods above. Our program will choose the portfolio with the highest risk coefficient, regardless of whichever method it came from."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"## Comparing the two methods\n",
"\n",
"* After we have calculated the \"best\" portfolios for each method, we will determine which one is best before outputting it as the final portfolio."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"final_risk_coefficients_dict = beta_risk_coefficients.copy()\n",
"\n",
"if len(option_interest_dict.keys()) >= 10:\n",
" final_risk_coefficients_dict.update(options_risk_coefficients)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"final_optimal_weight = final_risk_coefficients_dict[max(final_risk_coefficients_dict.keys())]"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The data used for the final portfolio came from the Beta Method\n"
]
}
],
"source": [
"if len(option_interest_dict.keys()) < 10:\n",
" print(\"The data used for the final portfolio came from the Beta Method\")\n",
" \n",
"elif final_optimal_weight in beta_risk_coefficients.values():\n",
" print(\"The data used for the final portfolio came from the Beta Method\")\n",
" \n",
"else:\n",
" print(\"The data used for the final portfolio came from the Options Method\")\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"# Moves final_optimal_weight into a dataframe.\n",
"final_stocks_df = pd.DataFrame.from_dict(final_optimal_weight, orient='index')\n",
"final_stocks_df.reset_index(inplace=True)\n",
"final_stocks_df.columns = ['Ticker', 'Shares']"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Ticker</th>\n",
" <th>Shares</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>GM</td>\n",
" <td>143.987998</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>SU</td>\n",
" <td>346.015437</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>AXP</td>\n",
" <td>39.774083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>BA</td>\n",
" <td>56.792153</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>SPG</td>\n",
" <td>91.037541</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>BB</td>\n",
" <td>613.747979</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>CAE</td>\n",
" <td>319.751505</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>OXY</td>\n",
" <td>168.690962</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>CVE</td>\n",
" <td>1078.648955</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>ERF</td>\n",
" <td>1680.702020</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Ticker Shares\n",
"0 GM 143.987998\n",
"1 SU 346.015437\n",
"2 AXP 39.774083\n",
"3 BA 56.792153\n",
"4 SPG 91.037541\n",
"5 BB 613.747979\n",
"6 CAE 319.751505\n",
"7 OXY 168.690962\n",
"8 CVE 1078.648955\n",
"9 ERF 1680.702020"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"final_stocks_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create final output DataFrame\n",
"* Finally, we have our desired list of stocks, along with their respective weightings. We can now build our final portfolio.\n",
"* We will first format the DataFrame to meet the assignment specifications."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"# Create a new DataFrame that matches the assignment requirements\n",
"FinalPortfolio = pd.DataFrame(final_stocks_df['Ticker'].copy())\n",
"\n",
"# Create a series of closing prices for the tickers in our final portfolio\n",
"closing_prices = [filtered_ticker_hist[ticker].Close.loc[end_day] for ticker in FinalPortfolio['Ticker'].values]\n",
"\n",
"# Add necessary columns to the final DataFrame, as required\n",
"FinalPortfolio['Price'] = pd.Series(closing_prices)\n",
"FinalPortfolio['Shares'] = final_stocks_df['Shares']\n",
"FinalPortfolio['Value'] = FinalPortfolio['Shares'] * FinalPortfolio['Price']\n",
"\n",
"FinalPortfolio['Weight'] = FinalPortfolio['Value'] / FinalPortfolio['Value'].sum()\n",
"FinalPortfolio.index += 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"# Double Check that Stock Values add to $100,000"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The portfolio's total value is $100000.00\n"
]
}
],
"source": [
"print(f\"The portfolio's total value is ${FinalPortfolio['Value'].sum():.2f}\")"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The total weight of all stocks in the portfolio is 100%\n"
]
}
],
"source": [
"print(f\"The total weight of all stocks in the portfolio is {FinalPortfolio['Weight'].sum()*100:.0f}%\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"# Output Final DataFrame as CSV"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"FinalPortfolio[['Ticker', 'Shares']].to_csv('Portfolio.csv')"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Ticker</th>\n",
" <th>Price</th>\n",
" <th>Shares</th>\n",
" <th>Value</th>\n",
" <th>Weight</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>GM</td>\n",
" <td>57.430000</td>\n",
" <td>143.987998</td>\n",
" <td>8269.230769</td>\n",
" <td>0.082692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>SU</td>\n",
" <td>25.010000</td>\n",
" <td>346.015437</td>\n",
" <td>8653.846154</td>\n",
" <td>0.086538</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AXP</td>\n",
" <td>164.389999</td>\n",
" <td>39.774083</td>\n",
" <td>6538.461538</td>\n",
" <td>0.065385</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>BA</td>\n",
" <td>203.169998</td>\n",
" <td>56.792153</td>\n",
" <td>11538.461538</td>\n",
" <td>0.115385</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>SPG</td>\n",
" <td>158.429993</td>\n",
" <td>91.037541</td>\n",
" <td>14423.076923</td>\n",
" <td>0.144231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>BB</td>\n",
" <td>9.400000</td>\n",
" <td>613.747979</td>\n",
" <td>5769.230769</td>\n",
" <td>0.057692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>CAE</td>\n",
" <td>25.260000</td>\n",
" <td>319.751505</td>\n",
" <td>8076.923077</td>\n",
" <td>0.080769</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>OXY</td>\n",
" <td>29.639999</td>\n",
" <td>168.690962</td>\n",
" <td>5000.000000</td>\n",
" <td>0.050000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CVE</td>\n",
" <td>12.480000</td>\n",
" <td>1078.648955</td>\n",
" <td>13461.538462</td>\n",
" <td>0.134615</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>ERF</td>\n",
" <td>10.870000</td>\n",
" <td>1680.702020</td>\n",
" <td>18269.230769</td>\n",
" <td>0.182692</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Ticker Price Shares Value Weight\n",
"1 GM 57.430000 143.987998 8269.230769 0.082692\n",
"2 SU 25.010000 346.015437 8653.846154 0.086538\n",
"3 AXP 164.389999 39.774083 6538.461538 0.065385\n",
"4 BA 203.169998 56.792153 11538.461538 0.115385\n",
"5 SPG 158.429993 91.037541 14423.076923 0.144231\n",
"6 BB 9.400000 613.747979 5769.230769 0.057692\n",
"7 CAE 25.260000 319.751505 8076.923077 0.080769\n",
"8 OXY 29.639999 168.690962 5000.000000 0.050000\n",
"9 CVE 12.480000 1078.648955 13461.538462 0.134615\n",
"10 ERF 10.870000 1680.702020 18269.230769 0.182692"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"FinalPortfolio"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "cfm101",
"language": "python",
"name": "cfm101"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment