Files
ArtStudies/M1/Portfolio Management/TP1.ipynb
Arthur DANJOU d5a6bfd339 Refactor code for improved readability and consistency across multiple Jupyter notebooks
- Added missing commas in various print statements and function calls for better syntax.
- Reformatted code to enhance clarity, including breaking long lines and aligning parameters.
- Updated function signatures to use float type for sigma parameters instead of int for better precision.
- Cleaned up comments and documentation strings for clarity and consistency.
- Ensured consistent formatting in plotting functions and data handling.
2025-12-13 23:38:17 +01:00

636 lines
136 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"id": "initial_id",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T16:35:10.621604Z",
"start_time": "2024-11-14T16:35:10.207160Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"import yfinance as yf\n",
"\n",
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "b9829b865bba9017",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T16:35:13.813794Z",
"start_time": "2024-11-14T16:35:12.131350Z"
}
},
"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>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2010-01-04 00:00:00-05:00</th>\n",
" <td>1116.560059</td>\n",
" <td>1133.869995</td>\n",
" <td>1116.560059</td>\n",
" <td>1132.989990</td>\n",
" <td>3991400000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-05 00:00:00-05:00</th>\n",
" <td>1132.660034</td>\n",
" <td>1136.630005</td>\n",
" <td>1129.660034</td>\n",
" <td>1136.520020</td>\n",
" <td>2491020000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-06 00:00:00-05:00</th>\n",
" <td>1135.709961</td>\n",
" <td>1139.189941</td>\n",
" <td>1133.949951</td>\n",
" <td>1137.140015</td>\n",
" <td>4972660000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-07 00:00:00-05:00</th>\n",
" <td>1136.270020</td>\n",
" <td>1142.459961</td>\n",
" <td>1131.319946</td>\n",
" <td>1141.689941</td>\n",
" <td>5270680000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-08 00:00:00-05:00</th>\n",
" <td>1140.520020</td>\n",
" <td>1145.390015</td>\n",
" <td>1136.219971</td>\n",
" <td>1144.979980</td>\n",
" <td>4389590000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close \\\n",
"Date \n",
"2010-01-04 00:00:00-05:00 1116.560059 1133.869995 1116.560059 1132.989990 \n",
"2010-01-05 00:00:00-05:00 1132.660034 1136.630005 1129.660034 1136.520020 \n",
"2010-01-06 00:00:00-05:00 1135.709961 1139.189941 1133.949951 1137.140015 \n",
"2010-01-07 00:00:00-05:00 1136.270020 1142.459961 1131.319946 1141.689941 \n",
"2010-01-08 00:00:00-05:00 1140.520020 1145.390015 1136.219971 1144.979980 \n",
"\n",
" Volume Dividends Stock Splits \n",
"Date \n",
"2010-01-04 00:00:00-05:00 3991400000 0.0 0.0 \n",
"2010-01-05 00:00:00-05:00 2491020000 0.0 0.0 \n",
"2010-01-06 00:00:00-05:00 4972660000 0.0 0.0 \n",
"2010-01-07 00:00:00-05:00 5270680000 0.0 0.0 \n",
"2010-01-08 00:00:00-05:00 4389590000 0.0 0.0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Tickers = [\"^SPX\"]\n",
"start_input = \"2010-01-01\"\n",
"end_input = \"2024-10-01\"\n",
"\n",
"S = yf.Ticker(Tickers[0]).history(start=start_input, end=end_input)\n",
"display(S.head())"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c9cd06bad60fb4cd",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T16:41:20.086199Z",
"start_time": "2024-11-14T16:41:19.960219Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGrCAYAAADeuK1yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABzuUlEQVR4nO3dd3iT1dsH8G+apuluaaEthQJlU/ZumWWPgiIVQdGCgrwgqIDCz4EKOEAUcKGIIODAgYoDZJS9ypS9R6GMLkb3SpPz/lHyNGnSkZI2SfP9XJeXec5z8vTcnTdnyoQQAkREREQ2xMHSDSAiIiIyFRMYIiIisjlMYIiIiMjmMIEhIiIim8MEhoiIiGwOExgiIiKyOUxgiIiIyOYwgSEiIiKbwwSGiIiIbA4TGCIyq7Fjx6JevXqWbgYRVXFMYIhIsmrVKshkMuk/Z2dnNG7cGFOmTEFiYqKlm/fQ/vnnH/Ts2RN+fn5wdXVF/fr18cQTT2DTpk1SnWvXrul9DuRyOerUqYPHHnsMx48fl+pFR0dDJpNhzpw5Bh8nNjYWrq6uePzxxysjLCK7JONZSESktWrVKjz77LOYO3cugoODkZOTg7179+L7779H3bp1cfr0abi6upb4DJVKBY1GA6VSWUmtLpuPP/4YM2bMQM+ePfHoo4/C1dUVly9fxtatW9G6dWusWrUKQEECExwcjCeffBKDBw+GWq3GuXPn8NVXXyE3NxcHDhxAmzZtAACjR4/G77//jpMnT6Jx48bSxxo0aBD279+Pc+fOITAw0ALREtkBQUT0wMqVKwUAcfjwYb3y6dOnCwBizZo1xb43IyOjoptXbiqVSnh6eop+/foZvZ+YmCi9jo2NFQDERx99pFfn77//FgDEhAkT9N5XrVo10atXL6nsp59+EgDEZ599ZuYoiEgXh5CIqFS9e/cGUDA0AhTMc3F3d8eVK1cwePBgeHh4YPTo0dK9onNgNBoNPv30U7Rs2RLOzs6oUaMGBg4ciCNHjujV++GHH9C+fXu4uLjAx8cHo0aNwo0bN/TqXLp0CZGRkQgICICzszNq166NUaNGITU1tdj237lzB2lpaejatavR+35+fiZ/DrTv+/DDD7Fjxw6sXr0aKSkpmDZtGjp27IjJkyeX+kwiKj9HSzeAiKzflStXAAC+vr5SWX5+PgYMGIBu3brh448/LnFoady4cVi1ahUGDRqE8ePHIz8/H3v27MGBAwfQoUMHAMD777+Pt956C0888QTGjx+P5ORkfP755+jRoweOHTsGb29v5OXlYcCAAcjNzcWLL76IgIAA3Lp1C+vXr0dKSgq8vLyMfnw/Pz+4uLjgn3/+wYsvvggfHx+zfA4AYPz48Vi9ejVeffVVbN68GcnJyfj333/h4MB/HxJVKEt3ARGR9dAOIW3dulUkJyeLGzduiJ9//ln4+voKFxcXcfPmTSGEEGPGjBEAxGuvvWbwjDFjxoi6detK19u3bxcAxEsvvWRQV6PRCCGEuHbtmpDL5eL999/Xu3/q1Cnh6OgolR87dkwAEGvXrjU5trffflsAEG5ubmLQoEHi/fffF0ePHjWopx1CmjNnjkhOThYJCQli586dom3btgKA+P333w3ec/r0aaFQKAQAMXXqVJPbRkSm4z8RiMhA3759UaNGDQQFBWHUqFFwd3fHunXrUKtWLb16kyZNKvVZv//+O2QyGd555x2DezKZDADwxx9/QKPR4IknnsCdO3ek/wICAtCoUSPs2LEDAKQels2bNyMrK8ukmObMmYM1a9agbdu22Lx5M9588020b98e7dq1w7lz5wzqv/POO6hRowYCAgIQHh6OK1eu4MMPP8Tw4cMN6np6esLJyQkA0L9/f5PaRUTlwyEkIjKwZMkSNG7cGI6OjvD390eTJk0MhkQcHR1Ru3btUp915coVBAYGljhsc+nSJQgh0KhRI6P3FQoFACA4OBjTp0/HokWL8OOPP6J79+545JFH8PTTTxc7fKTrySefxJNPPom0tDQcPHgQq1atwpo1azB06FCcPn0azs7OUt0JEyZgxIgRcHBwgLe3N5o3b17syqopU6bAwcEBdevWxSuvvIK+fftKbSaiisEEhogMdOrUSZqbUhylUmm2eR4ajQYymQwbN26EXC43uO/u7i69XrhwIcaOHYu//voLW7ZswUsvvYR58+bhwIEDZUqogIIek379+qFfv35QKBRYvXo1Dh48iJ49e0p1GjVqhL59+5b6rD/++AN///03PvnkEzRq1AgRERH46KOP8MYbb5SpLURUPkxgiKhCNWjQAJs3b8a9e/eK7YVp0KABhBAIDg7W20+lOC1btkTLli0xa9Ys7N+/H127dsXSpUvx3nvvmdy+Dh06YPXq1YiPjzf5venp6Xjp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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from matplotlib import pyplot as plt\n",
"\n",
"S[\"Close\"].plot(label=\"SPX\")\n",
"plt.title(\"Prices SPX\")\n",
"plt.grid()\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "d9ff78437c5acd79",
"metadata": {},
"source": "There is a first jump in 2020 due to the covid and a second one in 2022 due to the war in Ukraine."
},
{
"cell_type": "code",
"execution_count": 13,
"id": "b6dc4cd7bc49b198",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T16:50:28.028431Z",
"start_time": "2024-11-14T16:50:27.977810Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"shortName: S&P 500\n",
"currency: USD\n",
"previousClose: 5985.38\n",
"open: 5989.68\n",
"dayLow: 5967.09\n",
"dayHigh: 5993.88\n",
"bid: 5973.44\n",
"ask: 5976.5\n",
"fiftyTwoWeekLow: 4487.83\n",
"fiftyTwoWeekHigh: 6017.31\n",
"dict_keys(['maxAge', 'priceHint', 'previousClose', 'open', 'dayLow', 'dayHigh', 'regularMarketPreviousClose', 'regularMarketOpen', 'regularMarketDayLow', 'regularMarketDayHigh', 'volume', 'regularMarketVolume', 'averageVolume', 'averageVolume10days', 'averageDailyVolume10Day', 'bid', 'ask', 'fiftyTwoWeekLow', 'fiftyTwoWeekHigh', 'fiftyDayAverage', 'twoHundredDayAverage', 'currency', 'exchange', 'quoteType', 'symbol', 'underlyingSymbol', 'shortName', 'longName', 'firstTradeDateEpochUtc', 'timeZoneFullName', 'timeZoneShortName', 'uuid', 'messageBoardId', 'gmtOffSetMilliseconds', 'trailingPegRatio'])\n"
]
}
],
"source": [
"SPY = yf.Ticker(\"^GSPC\")\n",
"print(\"shortName:\", SPY.info[\"shortName\"])\n",
"print(\"currency:\", SPY.info[\"currency\"])\n",
"print(\"previousClose:\", SPY.info[\"previousClose\"])\n",
"print(\"open:\", SPY.info[\"open\"])\n",
"print(\"dayLow:\", SPY.info[\"dayLow\"])\n",
"print(\"dayHigh:\", SPY.info[\"dayHigh\"])\n",
"print(\"bid:\", SPY.info[\"bid\"])\n",
"print(\"ask:\", SPY.info[\"ask\"])\n",
"print(\"fiftyTwoWeekLow:\", SPY.info[\"fiftyTwoWeekLow\"])\n",
"print(\"fiftyTwoWeekHigh:\", SPY.info[\"fiftyTwoWeekHigh\"])\n",
"\n",
"print(SPY.info.keys())"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "b76cc24f25dab3ea",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T16:58:05.667830Z",
"start_time": "2024-11-14T16:58:05.592788Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dict_keys(['address1', 'city', 'state', 'zip', 'country', 'phone', 'website', 'industry', 'industryKey', 'industryDisp', 'sector', 'sectorKey', 'sectorDisp', 'longBusinessSummary', 'fullTimeEmployees', 'companyOfficers', 'auditRisk', 'boardRisk', 'compensationRisk', 'shareHolderRightsRisk', 'overallRisk', 'governanceEpochDate', 'compensationAsOfEpochDate', 'irWebsite', 'maxAge', 'priceHint', 'previousClose', 'open', 'dayLow', 'dayHigh', 'regularMarketPreviousClose', 'regularMarketOpen', 'regularMarketDayLow', 'regularMarketDayHigh', 'beta', 'trailingPE', 'forwardPE', 'volume', 'regularMarketVolume', 'averageVolume', 'averageVolume10days', 'averageDailyVolume10Day', 'bid', 'ask', 'bidSize', 'askSize', 'marketCap', 'fiftyTwoWeekLow', 'fiftyTwoWeekHigh', 'priceToSalesTrailing12Months', 'fiftyDayAverage', 'twoHundredDayAverage', 'currency', 'enterpriseValue', 'profitMargins', 'floatShares', 'sharesOutstanding', 'sharesShort', 'sharesShortPriorMonth', 'sharesShortPreviousMonthDate', 'dateShortInterest', 'sharesPercentSharesOut', 'heldPercentInsiders', 'heldPercentInstitutions', 'shortRatio', 'shortPercentOfFloat', 'impliedSharesOutstanding', 'bookValue', 'priceToBook', 'lastFiscalYearEnd', 'nextFiscalYearEnd', 'mostRecentQuarter', 'earningsQuarterlyGrowth', 'netIncomeToCommon', 'trailingEps', 'forwardEps', 'lastSplitFactor', 'lastSplitDate', 'enterpriseToRevenue', 'enterpriseToEbitda', '52WeekChange', 'SandP52WeekChange', 'exchange', 'quoteType', 'symbol', 'underlyingSymbol', 'shortName', 'longName', 'firstTradeDateEpochUtc', 'timeZoneFullName', 'timeZoneShortName', 'uuid', 'messageBoardId', 'gmtOffSetMilliseconds', 'currentPrice', 'targetHighPrice', 'targetLowPrice', 'targetMeanPrice', 'targetMedianPrice', 'recommendationMean', 'recommendationKey', 'numberOfAnalystOpinions', 'totalCash', 'totalCashPerShare', 'ebitda', 'totalDebt', 'quickRatio', 'currentRatio', 'totalRevenue', 'debtToEquity', 'revenuePerShare', 'returnOnAssets', 'returnOnEquity', 'freeCashflow', 'operatingCashflow', 'earningsGrowth', 'revenueGrowth', 'grossMargins', 'ebitdaMargins', 'operatingMargins', 'financialCurrency', 'trailingPegRatio'])\n"
]
}
],
"source": [
"Amazon = yf.Ticker(\"AMZN\")\n",
"print(Amazon.info.keys())"
]
},
{
"cell_type": "code",
"execution_count": 113,
"id": "be13381cff28863e",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:53:05.789879Z",
"start_time": "2024-11-14T18:53:05.360311Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dict_keys(['address1', 'city', 'state', 'zip', 'country', 'phone', 'website', 'industry', 'industryKey', 'industryDisp', 'sector', 'sectorKey', 'sectorDisp', 'longBusinessSummary', 'fullTimeEmployees', 'companyOfficers', 'auditRisk', 'boardRisk', 'compensationRisk', 'shareHolderRightsRisk', 'overallRisk', 'governanceEpochDate', 'compensationAsOfEpochDate', 'irWebsite', 'maxAge', 'priceHint', 'previousClose', 'open', 'dayLow', 'dayHigh', 'regularMarketPreviousClose', 'regularMarketOpen', 'regularMarketDayLow', 'regularMarketDayHigh', 'dividendRate', 'dividendYield', 'exDividendDate', 'payoutRatio', 'fiveYearAvgDividendYield', 'beta', 'trailingPE', 'forwardPE', 'volume', 'regularMarketVolume', 'averageVolume', 'averageVolume10days', 'averageDailyVolume10Day', 'bid', 'ask', 'bidSize', 'askSize', 'marketCap', 'fiftyTwoWeekLow', 'fiftyTwoWeekHigh', 'priceToSalesTrailing12Months', 'fiftyDayAverage', 'twoHundredDayAverage', 'trailingAnnualDividendRate', 'trailingAnnualDividendYield', 'currency', 'enterpriseValue', 'profitMargins', 'floatShares', 'sharesOutstanding', 'sharesShort', 'sharesShortPriorMonth', 'sharesShortPreviousMonthDate', 'dateShortInterest', 'sharesPercentSharesOut', 'heldPercentInsiders', 'heldPercentInstitutions', 'shortRatio', 'shortPercentOfFloat', 'impliedSharesOutstanding', 'bookValue', 'priceToBook', 'lastFiscalYearEnd', 'nextFiscalYearEnd', 'mostRecentQuarter', 'earningsQuarterlyGrowth', 'netIncomeToCommon', 'trailingEps', 'forwardEps', 'lastSplitFactor', 'lastSplitDate', 'enterpriseToRevenue', 'enterpriseToEbitda', '52WeekChange', 'SandP52WeekChange', 'lastDividendValue', 'lastDividendDate', 'exchange', 'quoteType', 'symbol', 'underlyingSymbol', 'shortName', 'longName', 'firstTradeDateEpochUtc', 'timeZoneFullName', 'timeZoneShortName', 'uuid', 'messageBoardId', 'gmtOffSetMilliseconds', 'currentPrice', 'targetHighPrice', 'targetLowPrice', 'targetMeanPrice', 'targetMedianPrice', 'recommendationMean', 'recommendationKey', 'numberOfAnalystOpinions', 'totalCash', 'totalCashPerShare', 'ebitda', 'totalDebt', 'quickRatio', 'currentRatio', 'totalRevenue', 'debtToEquity', 'revenuePerShare', 'returnOnAssets', 'returnOnEquity', 'freeCashflow', 'operatingCashflow', 'earningsGrowth', 'revenueGrowth', 'grossMargins', 'ebitdaMargins', 'operatingMargins', 'financialCurrency', 'trailingPegRatio'])\n"
]
},
{
"data": {
"text/plain": [
"<Axes: xlabel='Date'>"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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xo2TgQMHykMPPVTr+LS0NGnTpo2cOXPGui0nJ6exy6xVXeawevVq8ff3l9tvv11ELv68bN68WQICAmTbtm2OLNnKZDJJamqqdO7cWd577z0xGo3yyy+/SFJSkgwfPtwapKZMmSKxsbGqfB1fbQ5lZWUiInLixAkZO3asal/H9nCZwFL1Bj5hwoQrknFUVJT8+eef1r+fPHlSWrZsKcePHxeRym9mQUGB9OnTR15++WWH1n250tJSGTp0qHVBXtUv4cGDB0u7du1k3bp1NttPnTolbdu2lX379omIyB9//KHoC622+sPCwuSbb74REZFXX31V9Hq9fPbZZ9bn5ubmSkxMjHz88ccOr/vSWo8cOSItWrSQtLQ0m8cnTJggUVFRkpeXJwaDQXr16iXjx4+3LtoTERkxYoQ8+eSTDq37UnWZQ3R0tJw4cUKys7NFp9OJh4eHPPLII3L27FnZvXu3JCYmysCBA5Uov071d+7cWQ4dOiQilT9HI0eOlMLCQuuYV155RQYPHiylpaWOK/yCS9+wZ86cKcePH5cFCxZIp06drG+K1b15PPTQQzJ+/HgRqfzkf+ONN8odd9yhyIeOusyh6tN8SUmJPPHEE6LT6WTDhg3WfSxatEiGDh2q2IemgoIC+X//7//J/PnzbWqYP3++DBgwQAoKCkSk8venGl/HIlefQ9XC5szMTNW9juvLZQJLlV69eskDDzxg/XQyffp06dSpk8ybN08yMjKktLRUjEajdO/eXYYPHy5//fWXHDt2TCZPniydO3e2rg5XitFolFatWsnq1atFRKxXL915550SEhIi9957r+Tm5lrHf/TRRzJ48GApKiqS+++/Xzw8POT2228Xs9msyArxq9V/zz33yNmzZ6WkpETuuOMOCQsLk7lz58off/whkydPll69esnJkycdWvOBAwds/q3Onz8vgYGBsnz5cuucRCp/gTRt2tR6JcfatWtl0KBB0q5dO3nttdfk3nvvlcDAQPnpp58cWr+9c2jSpIl1DqtXr5bffvvNZl/Lli2ThQsXisVicdjPkL3fg1dffVVERFatWiV9+/aVoUOHyhdffCH333+/BAQEyLJlyxxSd031i4j1lNSuXbvkb3/7m4wYMcL62OWnd2+//XZZuHChPProo+Lm5iZJSUkOP71r7xyqgs2RI0ckKSlJfHx8ZPTo0TJ+/Hhp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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Apple = yf.Ticker(\"AAPL\")\n",
"print(Apple.info.keys())\n",
"\n",
"Apple.dividends[\"1970-01-01\":\"2024-10-01\"].plot()"
]
},
{
"cell_type": "raw",
"id": "1502803e92dc1956",
"metadata": {},
"source": "# Mean Variance Analysis"
},
{
"cell_type": "code",
"execution_count": 143,
"id": "55ab9b7066bff14c",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:43.437695Z",
"start_time": "2024-11-14T18:56:43.419618Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ALV.DE BMW.DE\n",
"Date \n",
"2024-01-02 00:00:00+01:00 232.545197 95.845306\n",
"2024-01-03 00:00:00+01:00 230.266739 93.707672\n",
"2024-01-04 00:00:00+01:00 233.067337 95.110786\n",
"2024-01-05 00:00:00+01:00 231.548370 94.790619\n",
"2024-01-08 00:00:00+01:00 232.165451 95.299126\n",
" ALV.DE BMW.DE\n",
"Date \n",
"2024-09-24 00:00:00+02:00 295.700012 78.120003\n",
"2024-09-25 00:00:00+02:00 294.100006 75.660004\n",
"2024-09-26 00:00:00+02:00 295.799988 78.540001\n",
"2024-09-27 00:00:00+02:00 296.500000 81.139999\n",
"2024-09-30 00:00:00+02:00 295.000000 79.180000\n",
"(192, 2)\n"
]
}
],
"source": [
"Tickers = [\"ALV.DE\", \"BMW.DE\"] # Alliance & BMW Stock\n",
"start_input = \"2024-01-01\"\n",
"end_input = \"2024-10-01\"\n",
"\n",
"S = pd.DataFrame()\n",
"\n",
"for t in Tickers:\n",
" S[t] = yf.Ticker(t).history(start=start_input, end=end_input)[\"Close\"]\n",
"\n",
"print(S.head())\n",
"print(S.tail())\n",
"print(S.shape)"
]
},
{
"cell_type": "code",
"execution_count": 144,
"id": "13364c6369726018",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:43.720652Z",
"start_time": "2024-11-14T18:56:43.717111Z"
}
},
"outputs": [],
"source": [
"R = S / S.shift() - 1\n",
"R = R[1:]\n",
"mean_d = R.mean()\n",
"covar_d = R.cov()\n",
"corr = R.corr()"
]
},
{
"cell_type": "code",
"execution_count": 145,
"id": "c44b402b6708dd31",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:43.925286Z",
"start_time": "2024-11-14T18:56:43.922807Z"
}
},
"outputs": [],
"source": [
"mean = mean_d * 252\n",
"covar = covar_d * 252\n",
"std = np.sqrt(np.diag(covar))\n",
"# 252 is the annual working days count"
]
},
{
"cell_type": "code",
"execution_count": 146,
"id": "5962c9633cf174f",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:44.134395Z",
"start_time": "2024-11-14T18:56:44.131229Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean:\n",
"\n",
"ALV.DE 0.325187\n",
"BMW.DE -0.215868\n",
"dtype: float64\n",
"\n",
"Covariance:\n",
"\n",
" ALV.DE BMW.DE\n",
"ALV.DE 0.022292 0.012378\n",
"BMW.DE 0.012378 0.071163\n",
"\n",
"Standard Deviation:\n",
"\n",
"[0.14930589 0.26676463]\n",
"\n",
"Correlation:\n",
"\n",
" ALV.DE BMW.DE\n",
"ALV.DE 1.000000 0.310781\n",
"BMW.DE 0.310781 1.000000\n"
]
}
],
"source": [
"print(\"Mean:\\n\")\n",
"print(mean)\n",
"print(\"\\nCovariance:\\n\")\n",
"print(covar)\n",
"print(\"\\nStandard Deviation:\\n\")\n",
"print(std)\n",
"print(\"\\nCorrelation:\\n\")\n",
"print(corr)"
]
},
{
"cell_type": "code",
"execution_count": 147,
"id": "9260dbd9c9cc7363",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:44.433173Z",
"start_time": "2024-11-14T18:56:44.431212Z"
}
},
"outputs": [],
"source": [
"from numpy import linalg as LA"
]
},
{
"cell_type": "code",
"execution_count": 148,
"id": "e115dfab1684d913",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:44.763281Z",
"start_time": "2024-11-14T18:56:44.758797Z"
}
},
"outputs": [],
"source": [
"r = 0.05\n",
"d = len(Tickers)\n",
"vec1 = np.linspace(1, 1, d)\n",
"sigma = covar\n",
"inv_sigma = LA.inv(sigma)\n",
"\n",
"a = vec1.T.dot(inv_sigma).dot(vec1)\n",
"b = mean.T.dot(inv_sigma).dot(vec1)"
]
},
{
"cell_type": "code",
"execution_count": 149,
"id": "64a3ac84d552ed55",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:45.086748Z",
"start_time": "2024-11-14T18:56:45.079059Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Check mean equality: 0.24710709858148827 0.24710709858148827\n",
"Check var equality: 0.02086155601274889 0.02086155601274888\n",
"\n",
"Portfolio of minimal variance:\n",
"Expected return m_a: 0.24710709858148827\n",
"Standard deviation sd_a: 0.14443530043846237\n",
"Allocation pi_a: [0.85568955 0.14431045]\n",
"Sharpe ration pi_a: 1.3646739957830951\n",
"\n",
"Tangent portfolio:\n",
"Expected return m_T: 0.6981063766853705\n",
"Standard deviation sd_T: 0.2619059493450272\n",
"Allocation pi_T: [ 1.68924511 -0.68924511]\n",
"Sharpe ration pi_T: 2.4745767643161636\n"
]
}
],
"source": [
"# Portfolio of minimal variance\n",
"pi_a = inv_sigma.dot(vec1) / a\n",
"sd_a = 1 / np.sqrt(a) # Standard deviation\n",
"m_a = b / a # Expected return\n",
"\n",
"print(\"Check mean equality:\", m_a, pi_a.T.dot(mean))\n",
"print(\"Check var equality:\", sd_a**2, pi_a.T.dot(sigma).dot(pi_a))\n",
"print()\n",
"\n",
"# Self financing portfolio\n",
"m_w = np.sqrt(\n",
" (mean - b / a * vec1).T.dot(inv_sigma).dot(mean - b / a * vec1),\n",
") # Expected return\n",
"\n",
"# Tangent portfolio\n",
"pi_T = inv_sigma.dot(mean - r * vec1) / (b - r * a)\n",
"sd_T = np.sqrt(pi_T.T.dot(sigma).dot(pi_T)) # Variance\n",
"m_T = pi_T.T.dot(mean) # expected return\n",
"\n",
"print(\"Portfolio of minimal variance:\")\n",
"print(f\"Expected return m_a: {m_a}\")\n",
"print(f\"Standard deviation sd_a: {sd_a}\")\n",
"print(f\"Allocation pi_a: {pi_a}\")\n",
"print(f\"Sharpe ration pi_a: {(m_a - r) / sd_a}\")\n",
"print()\n",
"print(\"Tangent portfolio:\")\n",
"print(f\"Expected return m_T: {m_T}\")\n",
"print(f\"Standard deviation sd_T: {sd_T}\")\n",
"print(f\"Allocation pi_T: {pi_T}\")\n",
"print(f\"Sharpe ration pi_T: {(m_T - r) / sd_T}\")"
]
},
{
"cell_type": "code",
"execution_count": 150,
"id": "66268b2ce7129e8e",
"metadata": {
"ExecuteTime": {
"end_time": "2024-11-14T18:56:45.753370Z",
"start_time": "2024-11-14T18:56:45.670383Z"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(123)\n",
"colors = np.random.rand(len(std))\n",
"range_inf = np.min(mean) - 0.5\n",
"range_sup = np.max(mean) + 1\n",
"y = np.linspace(range_inf, range_sup, 50)\n",
"x_1 = np.array(\n",
" [np.sqrt(((y - m_a) / m_w) ** 2 + sd_a**2)],\n",
") # Sigma values for the frontier\n",
"x_2 = np.array([(y - r) / (m_T - r) * sd_T]) # Sigma values for the Capital Market Line\n",
"\n",
"fix, ax = plt.subplots()\n",
"\n",
"plt.xlim(0, np.max(std) + 0.2)\n",
"plt.plot(x_1[0], y, alpha=1) # Frontier\n",
"plt.plot(x_2[0], y, alpha=1) # CML\n",
"plt.legend([\"Frontier\", \"Capital Market Line\"], loc=2)\n",
"plt.scatter(std, mean, c=colors, alpha=0.5) # Plot the assets\n",
"plt.xlabel(\"Annualised standard deviation\")\n",
"plt.ylabel(\"Annualised return\")\n",
"plt.grid()\n",
"plt.scatter(sd_T, m_T, color=\"red\", s=50, alpha=1) # Tangent Portfolio\n",
"ax.annotate(\"Tangent Portfolio\", (sd_T, m_T))\n",
"for i, t in enumerate(Tickers):\n",
" ax.annotate(t, (std[i], mean.iloc[i]))\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c35ff26ade565825",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}