python-pour-finance/07-Projet-Analyse-Boursière/.ipynb_checkpoints/Projet Analyse Boursière S...

2011 lines
974 KiB
Plaintext
Raw Normal View History

2023-08-21 15:12:19 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"___\n",
"\n",
"<a href='http://www.pieriandata.com'> <img src='../Pierian_Data_Logo.png' /></a>\n",
"___\n",
"<center>*Copyright Pierian Data 2017*</center>\n",
"<center>*For more information, visit us at www.pieriandata.com*</center>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Stock Market Analysis Project\n",
"\n",
"### Please Note: You are free to treat this as a full exercise, or just view the solutions video as a code along project. This project is meant to be pretty challenging as it will introduce a few new concepts through some hints!\n",
"\n",
"Welcome to your first capstone project! This project is meant to cap off the first half of the course, which mainly dealt with learning the libraries that we use in this course, the second half of the course will deal a lot more with quantitative trading techniques and platforms.\n",
"\n",
"We'll be analyzing stock data related to a few car companies, from Jan 1 2012 to Jan 1 2017. Keep in mind that this project is mainly just to practice your skills with matplotlib, pandas, and numpy. Don't infer financial trading advice from the analysis we do here!\n",
"\n",
"### Part 0: Import\n",
"\n",
"** Import the various libraries you will need-you can always just come back up here or import as you go along :) **"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"____\n",
"## Part 1: Getting the Data\n",
"\n",
"### Tesla Stock (Ticker: TSLA on the NASDAQ)\n",
"\n",
"** *Note! Not everyone will be working on a computer that will give them open access to download the stock information using pandas_datareader (firewalls, admin permissions, etc...). Because of this, the csv file for the Tesla is provided in a data folder inside this folder. It is called Tesla_Stock.csv. Feel free to just use this with read_csv! **\n",
"\n",
"** Use pandas_datareader to obtain the historical stock information for Tesla from Jan 1, 2012 to Jan 1, 2017.**\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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",
" </tr>\n",
" <tr>\n",
" <th>Date</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>2012-01-03</th>\n",
" <td>28.94</td>\n",
" <td>29.50</td>\n",
" <td>27.65</td>\n",
" <td>28.08</td>\n",
" <td>928052</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>28.21</td>\n",
" <td>28.67</td>\n",
" <td>27.50</td>\n",
" <td>27.71</td>\n",
" <td>630036</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>27.76</td>\n",
" <td>27.93</td>\n",
" <td>26.85</td>\n",
" <td>27.12</td>\n",
" <td>1005432</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>27.20</td>\n",
" <td>27.79</td>\n",
" <td>26.41</td>\n",
" <td>26.89</td>\n",
" <td>687081</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>27.00</td>\n",
" <td>27.49</td>\n",
" <td>26.12</td>\n",
" <td>27.25</td>\n",
" <td>896951</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume\n",
"Date \n",
"2012-01-03 28.94 29.50 27.65 28.08 928052\n",
"2012-01-04 28.21 28.67 27.50 27.71 630036\n",
"2012-01-05 27.76 27.93 26.85 27.12 1005432\n",
"2012-01-06 27.20 27.79 26.41 26.89 687081\n",
"2012-01-09 27.00 27.49 26.12 27.25 896951"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Other Car Companies\n",
"\n",
"** Repeat the same steps to grab data for Ford and GM (General Motors), **"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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",
" </tr>\n",
" <tr>\n",
" <th>Date</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>2012-01-03</th>\n",
" <td>11.00</td>\n",
" <td>11.25</td>\n",
" <td>10.99</td>\n",
" <td>11.13</td>\n",
" <td>45709811</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>11.15</td>\n",
" <td>11.53</td>\n",
" <td>11.07</td>\n",
" <td>11.30</td>\n",
" <td>79725188</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>11.33</td>\n",
" <td>11.63</td>\n",
" <td>11.24</td>\n",
" <td>11.59</td>\n",
" <td>67877467</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>11.74</td>\n",
" <td>11.80</td>\n",
" <td>11.52</td>\n",
" <td>11.71</td>\n",
" <td>59840605</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>11.83</td>\n",
" <td>11.95</td>\n",
" <td>11.70</td>\n",
" <td>11.80</td>\n",
" <td>53981467</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume\n",
"Date \n",
"2012-01-03 11.00 11.25 10.99 11.13 45709811\n",
"2012-01-04 11.15 11.53 11.07 11.30 79725188\n",
"2012-01-05 11.33 11.63 11.24 11.59 67877467\n",
"2012-01-06 11.74 11.80 11.52 11.71 59840605\n",
"2012-01-09 11.83 11.95 11.70 11.80 53981467"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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",
" </tr>\n",
" <tr>\n",
" <th>Date</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>2012-01-03</th>\n",
" <td>20.83</td>\n",
" <td>21.18</td>\n",
" <td>20.75</td>\n",
" <td>21.05</td>\n",
" <td>9321420</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>21.05</td>\n",
" <td>21.37</td>\n",
" <td>20.75</td>\n",
" <td>21.15</td>\n",
" <td>7856752</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>21.10</td>\n",
" <td>22.29</td>\n",
" <td>20.96</td>\n",
" <td>22.17</td>\n",
" <td>17884040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>22.26</td>\n",
" <td>23.03</td>\n",
" <td>22.24</td>\n",
" <td>22.92</td>\n",
" <td>18234608</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>23.20</td>\n",
" <td>23.43</td>\n",
" <td>22.70</td>\n",
" <td>22.84</td>\n",
" <td>12091714</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume\n",
"Date \n",
"2012-01-03 20.83 21.18 20.75 21.05 9321420\n",
"2012-01-04 21.05 21.37 20.75 21.15 7856752\n",
"2012-01-05 21.10 22.29 20.96 22.17 17884040\n",
"2012-01-06 22.26 23.03 22.24 22.92 18234608\n",
"2012-01-09 23.20 23.43 22.70 22.84 12091714"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part 2: Visualizing the Data\n",
"\n",
"** Time to visualize the data. **\n",
"\n",
"** Follow along and recreate the plots below according to the instructions and explanations. **"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"____\n",
"\n",
"** Recreate this linear plot of all the stocks' Open price ! Hint: For the legend, use label parameter and plt.legend()**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Code Here"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x2145b62dfd0>"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nkbHI7RdgM+lhMerxzX9
"text/plain": [
"<matplotlib.figure.Figure at 0x2145b62df28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"____"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Plot the Volume of stock traded each day.**"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x214543b3828>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nOuaYY3TMMcfo4IMP1qGHHur/PDMzE/l1TjvtNF155ZUprukcxpQCAAAAwIg44IADtHLlSknSueee\nq6VLl+pDH/pQzmvVHZlSAAAAACiBCy+8UCeccIKOOeYYvfe975XnearVajr99NO1bNkyvehFL9KX\nv/zlec8755xz9JKXvEQvetGL9O53v1vW2kTXi0wpAAAAAKTgE1ffp/uf3JHoa77g1/bWOX/ywtjP\nu/fee3XFFVfojjvu0NjYmM466yxdeumlOvLII7Vp0yatXr1akrRt27Z5z/3rv/5rfeITn5C1Vm97\n29t0/fXX6+STTx74vThkSgEAAABgxN1www1avny5jj/+eB1zzDG6+eabtXbtWj3/+c/XmjVr9P73\nv18//OEPtc8++8x77o033qgTTjhBv/M7v6Obb75Z9913X6LrRqYUAAAAAFLQT0YzLdZavfOd79Sn\nPvWpeX9btWqVrrvuOn31q1/V5ZdfrgsuuMD/2549e/S+971Pd911lw499FB97GMfG2j6l07IlAIA\nAADAiDvppJN02WWXadOmTZIaXXoff/xxbdy4UdZavelNb9InP/lJ3XXXXS3Pm5ycVKVS0YEHHqid\nO3fq8ssvT3zdyJQCQAlM1aZ019N36eWHvjzvVQEAADlYtmyZzjnnHJ100knyPE/j4+M6//zzVa1W\n9Rd/8Rey1soYo8997nMtzzvggAN05pln6gUveIEOOeQQvfSlL0183UzSnZOiOv744+2KFStyWTYA\nlM3Hb/+4rnjoCn3/lO/rN/b7jbxXBwCAkfXAAw/oqKOOyns1MtfpfRtj7rTWHt/ruZTvAkAJPLL9\nEUnSrtldOa8JAABAK4JSAAAAAEBuCEoBoETyGrIBAAAQhqAUAAAAAJAbglIAAAAAQG4ISgGgBIwx\nea8CAABARwSlAAAAAIDcEJQCAAAAAHIzlvcKAAAAAACS86lPfUrf/va3ddBBB+k5z3mOjjvuOF1z\nzTV68YtfrFtvvVW7d+/WRRddpM985jNavXq13vzmN+sf/uEfcltfglIAKBErpoQBACAz1/2ttGF1\nsq958DLp5M+G/nn58uW6/PLLdc8992h2dlbHHnusjjvuOEnSggULtGLFCn3pS1/SG97wBt15553a\nf//9deSRR+oDH/iADjjggGTXNSLKdwEAAABgRNx+++16wxveoImJCe211176kz/5E/9vp5xyiiRp\n2bJleuELX6hDDjlECxcu1POe9zw98cQTea0ymVIAAAAASEWXjGYeFi5cKEmqVCr+v93PtVotr9Ui\nUwoAZWDElDAAAJTBK17xCl199dWamprSrl27dM011+S9Sj2RKQUAAACAEfGSl7xEp5xyio4++mg9\n+9nP1rJly7TPPvvkvVpdEZQCAAAAwAj50Ic+pHPPPVd79uzRK1/5Sh133HF617ve5f/9xBNP1Ikn\nnuj/fNNNN2W/kgEEpQAAAAAwQs466yzdf//9mpqa0plnnqljjz0271XqiqAUAErEWqaEAQBg1F1y\nySV5r0IsNDoCAAAAAOS
"text/plain": [
"<matplotlib.figure.Figure at 0x214543adc88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Interesting, looks like Ford had a really big spike somewhere in late 2013. What was the date of this maximum trading volume for Ford?**\n",
"\n",
"**Bonus: What happened that day? **"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Timestamp('2013-12-18 00:00:00')"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"____"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** The Open Price Time Series Visualization makes Tesla look like its always been much more valuable as a company than GM and Ford. But to really understand this we would need to look at the total market cap of the company, not just the stock price. Unfortunately our current data doesn't have that information of total units of stock present. But what we can do as a simple calcualtion to try to represent total money traded would be to multply the Volume column by the Open price. Remember that this still isn't the actual Market Cap, its just a visual representation of the total amount of money being traded around using the time series. (e.g. 100 units of stock at \\$10 each versus 100000 units of stock at $1 each)**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Create a new column for each dataframe called \"Total Traded\" which is the Open Price multiplied by the Volume Traded.**"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Code Here "
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Plot this \"Total Traded\" against the time index.**"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Code here"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x2145f5b9c88>"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nJ5c9jKlD6S8AoHQEqgA
"text/plain": [
"<matplotlib.figure.Figure at 0x2145e46a5f8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Interesting, looks like there was huge amount of money traded for Tesla somewhere in early 2014. What date was that and what happened? **"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Timestamp('2014-02-25 00:00:00')"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"____"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Let's practice plotting out some MA (Moving Averages). Plot out the MA50 and MA200 for GM. **"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Code here"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x2145e911518>"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAKWlpTz00EMsX76cFSt
"text/plain": [
"<matplotlib.figure.Figure at 0x2145eef4dd8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"______"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Finally lets see if there is a relationship between these stocks, after all, they are all related to the car industry. We can see this easily through a scatter matrix plot. Import scatter_matrix from pandas.plotting and use it to create a scatter matrix plot of all the stocks'opening price. You may need to rearrange the columns into a new single dataframe. Hints and info can be found here: https://pandas.pydata.org/pandas-docs/stable/visualization.html#scatter-matrix-plot **"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nKis0iwuubHpcGPi4pk5
"text/plain": [
"<matplotlib.figure.Figure at 0x2145f4d0eb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"_____\n",
"### Bonus Visualization Task! (Note: This is hard!)\n",
"**Let's now create a candlestick chart! Watch the video if you get stuck on trying to recreate this visualization, there are quite a few steps involved!Refer to the video to understand how to interpret and read this chart. Hints: https://matplotlib.org/examples/pylab_examples/finance_demo.html**\n",
"\n",
"** Create a CandleStick chart for Ford in January 2012 (too many dates won't look good for a candlestick chart)**"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nACSdRG4+5XurLW9mPW5
"text/plain": [
"<matplotlib.figure.Figure at 0x214667b24e0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"____\n",
"# Part 3: Basic Financial Analysis\n",
"\n",
"Now it is time to focus on a few key financial calculations. This will serve as your transition to the second half of the course. All you need to do is follow along with the instructions, this will mainly be an exercise in converting a mathematical equation or concept into code using python and pandas, something we will do often when working with quantiative data! If you feel very lost in this section, don't worry! Just go to the solutions lecture and treat it as a code-along lecture, use whatever style of learning works best for you!\n",
"\n",
"Let's begin!\n",
"____"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Daily Percentage Change\n",
"First we will begin by calculating the daily percentage change. Daily percentage change is defined by the following formula:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$ r_t = \\frac{p_t}{p_{t-1}} -1$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This defines r_t (return at time t) as equal to the price at time t divided by the price at time t-1 (the previous day) minus 1. Basically this just informs you of your percent gain (or loss) if you bought the stock on day and then sold it the next day. While this isn't necessarily helpful for attempting to predict future values of the stock, its very helpful in analyzing the volatility of the stock. If daily returns have a wide distribution, the stock is more volatile from one day to the next. Let's calculate the percent returns and then plot them with a histogram, and decide which stock is the most stable!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Create a new column for each dataframe called returns. This column will be calculated from the Close price column. There are two ways to do this, either a simple calculation using the .shift() method that follows the formula above, or you can also use pandas' built in pct_change method. **"
]
},
{
"cell_type": "code",
"execution_count": 133,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 134,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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>Total Traded</th>\n",
" <th>returns</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>2012-01-03</th>\n",
" <td>28.94</td>\n",
" <td>29.50</td>\n",
" <td>27.65</td>\n",
" <td>28.08</td>\n",
" <td>928052</td>\n",
" <td>26857824.88</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>28.21</td>\n",
" <td>28.67</td>\n",
" <td>27.50</td>\n",
" <td>27.71</td>\n",
" <td>630036</td>\n",
" <td>17773315.56</td>\n",
" <td>-0.013177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>27.76</td>\n",
" <td>27.93</td>\n",
" <td>26.85</td>\n",
" <td>27.12</td>\n",
" <td>1005432</td>\n",
" <td>27910792.32</td>\n",
" <td>-0.021292</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>27.20</td>\n",
" <td>27.79</td>\n",
" <td>26.41</td>\n",
" <td>26.89</td>\n",
" <td>687081</td>\n",
" <td>18688603.20</td>\n",
" <td>-0.008481</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>27.00</td>\n",
" <td>27.49</td>\n",
" <td>26.12</td>\n",
" <td>27.25</td>\n",
" <td>896951</td>\n",
" <td>24217677.00</td>\n",
" <td>0.013388</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Total Traded returns\n",
"Date \n",
"2012-01-03 28.94 29.50 27.65 28.08 928052 26857824.88 NaN\n",
"2012-01-04 28.21 28.67 27.50 27.71 630036 17773315.56 -0.013177\n",
"2012-01-05 27.76 27.93 26.85 27.12 1005432 27910792.32 -0.021292\n",
"2012-01-06 27.20 27.79 26.41 26.89 687081 18688603.20 -0.008481\n",
"2012-01-09 27.00 27.49 26.12 27.25 896951 24217677.00 0.013388"
]
},
"execution_count": 134,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 135,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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>Total Traded</th>\n",
" <th>returns</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>2012-01-03</th>\n",
" <td>28.94</td>\n",
" <td>29.50</td>\n",
" <td>27.65</td>\n",
" <td>28.08</td>\n",
" <td>928052</td>\n",
" <td>26857824.88</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>28.21</td>\n",
" <td>28.67</td>\n",
" <td>27.50</td>\n",
" <td>27.71</td>\n",
" <td>630036</td>\n",
" <td>17773315.56</td>\n",
" <td>-0.013177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>27.76</td>\n",
" <td>27.93</td>\n",
" <td>26.85</td>\n",
" <td>27.12</td>\n",
" <td>1005432</td>\n",
" <td>27910792.32</td>\n",
" <td>-0.021292</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>27.20</td>\n",
" <td>27.79</td>\n",
" <td>26.41</td>\n",
" <td>26.89</td>\n",
" <td>687081</td>\n",
" <td>18688603.20</td>\n",
" <td>-0.008481</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>27.00</td>\n",
" <td>27.49</td>\n",
" <td>26.12</td>\n",
" <td>27.25</td>\n",
" <td>896951</td>\n",
" <td>24217677.00</td>\n",
" <td>0.013388</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Total Traded returns\n",
"Date \n",
"2012-01-03 28.94 29.50 27.65 28.08 928052 26857824.88 NaN\n",
"2012-01-04 28.21 28.67 27.50 27.71 630036 17773315.56 -0.013177\n",
"2012-01-05 27.76 27.93 26.85 27.12 1005432 27910792.32 -0.021292\n",
"2012-01-06 27.20 27.79 26.41 26.89 687081 18688603.20 -0.008481\n",
"2012-01-09 27.00 27.49 26.12 27.25 896951 24217677.00 0.013388"
]
},
"execution_count": 136,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 137,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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>Total Traded</th>\n",
" <th>mpl_time</th>\n",
" <th>returns</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",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2012-01-03</th>\n",
" <td>11.00</td>\n",
" <td>11.25</td>\n",
" <td>10.99</td>\n",
" <td>11.13</td>\n",
" <td>45709811</td>\n",
" <td>5.028079e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>11.15</td>\n",
" <td>11.53</td>\n",
" <td>11.07</td>\n",
" <td>11.30</td>\n",
" <td>79725188</td>\n",
" <td>8.889358e+08</td>\n",
" <td>NaN</td>\n",
" <td>0.015274</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>11.33</td>\n",
" <td>11.63</td>\n",
" <td>11.24</td>\n",
" <td>11.59</td>\n",
" <td>67877467</td>\n",
" <td>7.690517e+08</td>\n",
" <td>NaN</td>\n",
" <td>0.025664</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>11.74</td>\n",
" <td>11.80</td>\n",
" <td>11.52</td>\n",
" <td>11.71</td>\n",
" <td>59840605</td>\n",
" <td>7.025287e+08</td>\n",
" <td>NaN</td>\n",
" <td>0.010354</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>11.83</td>\n",
" <td>11.95</td>\n",
" <td>11.70</td>\n",
" <td>11.80</td>\n",
" <td>53981467</td>\n",
" <td>6.386008e+08</td>\n",
" <td>NaN</td>\n",
" <td>0.007686</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Total Traded mpl_time \\\n",
"Date \n",
"2012-01-03 11.00 11.25 10.99 11.13 45709811 5.028079e+08 NaN \n",
"2012-01-04 11.15 11.53 11.07 11.30 79725188 8.889358e+08 NaN \n",
"2012-01-05 11.33 11.63 11.24 11.59 67877467 7.690517e+08 NaN \n",
"2012-01-06 11.74 11.80 11.52 11.71 59840605 7.025287e+08 NaN \n",
"2012-01-09 11.83 11.95 11.70 11.80 53981467 6.386008e+08 NaN \n",
"\n",
" returns \n",
"Date \n",
"2012-01-03 NaN \n",
"2012-01-04 0.015274 \n",
"2012-01-05 0.025664 \n",
"2012-01-06 0.010354 \n",
"2012-01-09 0.007686 "
]
},
"execution_count": 138,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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>Total Traded</th>\n",
" <th>MA50</th>\n",
" <th>MA200</th>\n",
" <th>returns</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",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2012-01-03</th>\n",
" <td>20.83</td>\n",
" <td>21.18</td>\n",
" <td>20.75</td>\n",
" <td>21.05</td>\n",
" <td>9321420</td>\n",
" <td>1.941652e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>21.05</td>\n",
" <td>21.37</td>\n",
" <td>20.75</td>\n",
" <td>21.15</td>\n",
" <td>7856752</td>\n",
" <td>1.653846e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.004751</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>21.10</td>\n",
" <td>22.29</td>\n",
" <td>20.96</td>\n",
" <td>22.17</td>\n",
" <td>17884040</td>\n",
" <td>3.773532e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.048227</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>22.26</td>\n",
" <td>23.03</td>\n",
" <td>22.24</td>\n",
" <td>22.92</td>\n",
" <td>18234608</td>\n",
" <td>4.059024e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.033829</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>23.20</td>\n",
" <td>23.43</td>\n",
" <td>22.70</td>\n",
" <td>22.84</td>\n",
" <td>12091714</td>\n",
" <td>2.805278e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.003490</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Total Traded MA50 MA200 \\\n",
"Date \n",
"2012-01-03 20.83 21.18 20.75 21.05 9321420 1.941652e+08 NaN NaN \n",
"2012-01-04 21.05 21.37 20.75 21.15 7856752 1.653846e+08 NaN NaN \n",
"2012-01-05 21.10 22.29 20.96 22.17 17884040 3.773532e+08 NaN NaN \n",
"2012-01-06 22.26 23.03 22.24 22.92 18234608 4.059024e+08 NaN NaN \n",
"2012-01-09 23.20 23.43 22.70 22.84 12091714 2.805278e+08 NaN NaN \n",
"\n",
" returns \n",
"Date \n",
"2012-01-03 NaN \n",
"2012-01-04 0.004751 \n",
"2012-01-05 0.048227 \n",
"2012-01-06 0.033829 \n",
"2012-01-09 -0.003490 "
]
},
"execution_count": 139,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Now plot a histogram of each companies returns. Either do them separately, or stack them on top of each other. Which stock is the most \"volatile\"? (as judged by the variance in the daily returns we will discuss volatility in a lot more detail in future lectures.)**"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x21466bb6f98>"
]
},
"execution_count": 141,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nEMxKarwnmlt9ktbMR/R
"text/plain": [
"<matplotlib.figure.Figure at 0x214664857b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 142,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x21466c7e710>"
]
},
"execution_count": 142,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n8BOvGrHcpzYBbNm4ykF
"text/plain": [
"<matplotlib.figure.Figure at 0x214666f4390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x21466ea6048>"
]
},
"execution_count": 143,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nX42jYP/zfdvdISbWHzO
"text/plain": [
"<matplotlib.figure.Figure at 0x21466ecbb00>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x21469288978>"
]
},
"execution_count": 150,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHVCAYAAAApVVV6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2wnVV9L/DvSghEE3kJYERShBkBJ5ILhIjRtt6El17t\ntUDnUhCrguJkLII0U8axvZ2B0XEK7Z1y6wg6qbZwR4cExZf0zlVvDEbreFHMMSMgElMd01gkvAiH\nAIkC6/6RfWJITsg5Z5919tknn8+Ms/fz7OflF1f24Zu11llPqbUGAIDxN63XBQAATFWCFgBAI4IW\nAEAjghYAQCOCFgBAI4IWAEAjghYAQCOCFgBAI4IWAEAjB/W6gCQ56qij6vHHH9/1dZ566qnMmjWr\n+4KYFLTn1KI9pxbtObVoz9FZv379I7XWo0dy7KQIWscff3y+//3vd32ddevWZcmSJd0XxKSgPacW\n7Tm1aM+pRXuOTinl5yM91tAhAEAjghYAQCOCFgBAI5NijhYAMLn95je/yZYtW7J9+/ZelzJhZs6c\nmXnz5mXGjBljvoagBQDs15YtW/Kyl70sxx9/fEopvS6nuVprHn300WzZsiUnnHDCmK9j6BAA2K/t\n27fnyCOPPCBCVpKUUnLkkUd23YMnaAEAI3KghKwh4/HnFbQAABoxRwsAGLUb12wc1+stP/ekF/38\n0Ucfzdlnn50k+eUvf5np06fn6KN3Ls7+ve99LwcffPCI7vOOd7wjF154YS644ILuCh4hQQsAmPSO\nPPLIbNiwIUly3XXXZfbs2bnmmmt6XNX+GToEAPrarbfemjPPPDOnnXZarrjiijz//PN59tln8853\nvjMLFizIKaecko997GN7nXfttdfmda97XU455ZS8733vS6113GsTtACAvnXvvffmi1/8Yr7zne9k\nw4YNefbZZ7Ny5cqsX78+jzzySO65557ce++9ede73rXXuVdffXXuvvvu3HPPPXniiSfy1a9+ddzr\nE7QAgL719a9/PXfffXcWLVqU0047Ld/85jfzb//2b3n1q1+dBx54IB/4wAfyta99LYcddthe565d\nuzZnnnlmTj311Hzzm9/MfffdN+71maMFAPStWmve85735CMf+chen/3whz/MV77yldx000254447\nsmLFil2fPf3007nyyiszMDCQY489Nn/913/dZNV7PVoAQN8655xzcvvtt+eRRx5JsvO3Ezdv3pyH\nH344tdb8yZ/8ST784Q9nYGDgBec988wzmTZtWo466qg8+eSTueOOO5rUp0cLABi1/S3HMFEWLFiQ\na6+9Nuecc06ef/75zJgxI5/85Cczffr0XH755am1ppSSG2644QXnHXnkkbn00kszf/78HHPMMXn9\n61/fpD5BCwDoK9ddd90Ltt/+9rfn7W9/+17H/eAHP9hr32c+85ld76+//vpcf/31417f7gwdAgA0\nImgBADRi6BAYV8M9lmOyzOUAmGh6tAAAGhG0AAAaMXQINHfjmo05dvuOFwwrGk4EDgSCFgAwet/4\nm/G93tK/3O8hDz30UJYvX5677rorRxxxRA4++OB88IMfzBFHHJGlS5fmH//xH/Pe9743SbJhw4ac\nfvrp+bu/+7tcc80141vrKBg6BAAmvVprLrjggrzpTW/KT3/606xfvz4rV67Mli1bkiSnnHJKbr/9\n9l3H33bbbTn11FN7Ve4ughYAMOndeeedOfjgg/O+971v175XvepVueqqq3a93759ex566KHUWvPV\nr341b3nLW3pV7i6GDgGASe++++7LwoULX/SYCy+8MJ/73Ody+umnZ+HChTnkkEMmqLp906MFAPSd\n97///Tn11FPzute9bte+iy66KJ/73Ody22235ZJLLulhdb8laAEAk95rX/vaDAwM7Nq+6aabsnbt\n2jz88MO79r3iFa/IjBkzsmbNmpx99tm9KHMvghYAMOmdddZZ2b59ez7xiU/s2vf000/vddyHP/zh\n3HDDDZk+ffpElrdP5mgBAKM3guUYxlMpJV/60peyfPny/O3f/m2OPvrozJo1KzfccMMLjnvjG984\noXXtj6AFAPSFY445JitXrhz2syVLluy177rrrmtb0AgYOgQAaETQAgBoRNACAGhE0AIAaETQAgBo\nRNACAGjE8g4AwKjdvOHmcb3eFaddsd9jpk+fngULFuza/tKXvpTjjz9+TPe77LLL8ta3vjUXXnjh\nmM4fKUELAOgLL3nJS7Jhw4ZRn/fss8/moIN6E3kMHQIAfWv79u1597vfnQULFuT000/PN77xjSTJ\nLbfckvPOOy9nnXVWzj777NRac+WVV+bkk0/OOeeck61bt05IfXq0AIC+8Mwzz+S0005Lkpxwwgn5\n4he/mJtuuimllNxzzz358Y9/nD/4gz/Ixo0bkyQDAwP54Q9/mDlz5uQLX/hCHnjggfzoRz/KQw89\nlPnz5+c973lP85oFLQCgLww3dPjtb387V111VZLkNa95TV71qlftClrnnntu5syZkyT51re+lUsu\nuSTTp0/PK1/5ypx11lkTUrOhQwBgSpo1a1avSxC0AID+9fu///v57Gc/myTZuHFjNm/enJNPPnmv\n4970pjdl1apVee655/Lggw/umsvVmqFDAGDURrIcw0S44oor8md/9mdZsGBBDjrooNxyyy055JBD\n9jruj//4j3PnnXdm/vz5Oe644/KGN7xhQuoTtACAvrBt27a99s2cOTP//M//vNf+yy67LJdddtmu\n7VJKPv7xj7csb1iGDgEAGhG0AAAaEbQAgBGptfa6hAk1Hn9eQQsA2K+ZM2fm0UcfPWDCVq01jz76\naGbOnNnVdUyGBwD2a968edmyZUsefvjhXpcyYWbOnJl58+Z1dQ1BCwDYrxkzZuSEE07odRl9x9Ah\nAEAjghYAQCOCFgBAI4IWAEAjghYAQCOCFgBAI4IWAEAj+w1apZR/KqVsLaXcu9u+OaWUNaWUn3Re\nj9jts78spWwqpTxQSvkvrQoHAJjsRtKjdUuSN++x70NJ1tZaT0yytrOdUsr8JG9L8trOOTeXUqaP\nW7UAAH1kv0Gr1vqtJI/tsfv8JLd23t+a5ILd9q+ste6otf4syaYkZ45TrQAAfWWsj+CZW2t9sPP+\nl0nmdt4fm+Su3Y7b0tm3l1LKsiTLkmTu3LlZt27dGEv5rW3bto3LdZgctGd/Onb7jmH3z3h+R47d\n/rNd2+vW/cdElUQDvp9Ti/Zsp+tnHdZaayll1I/yrrWuSLIiSRYtWlSXLFnSbSlZt25dxuM6TA7a\nsz/duGbjsPuP3f6z/GLmb5+TdtGSkyaqJBrw/ZxatGc7Y/2tw4dKKcckSed1a2f/L5L8zm7Hzevs\nAwA44Iw1aK1Ocmnn/aVJvrzb/reVUg4ppZyQ5MQk3+uuRACA/rTfocNSym1JliQ5qpSyJcm1Sa5P\ncnsp5fIkP09yUZLUWu8rpdye5EdJnk3y/lrrc41qBwCY1PYbtGqtl+zjo7P3cfxHk3y0m6IAAKYC\nK8MDADQiaAEANCJoAQA0ImgBADQiaAEANCJoAQA0ImgBADQiaAEANCJoAQA0ImgBADQiaAEANCJo\nAQA0ImgBADQiaAEANCJoAQA0ImgBADQiaAEANCJoAQA0ImgBADQiaAEANCJoAQA0ImgBADQiaAEA\nNCJoAQA0ImgBADQiaAEANCJoAQA0ImgBzQwMrsrA4KpelwHQM4IWAEAjghYAQCOCFgBAI4IWAEAj\nghYAQCOCFgBAI4IWAEAjB/W6AKB/3bhmY69LAJjU9GgBADQiaAEANCJoAQA0ImgBADQiaAEANCJo\nAQA0ImgBADQiaAEANCJoAQA0ImgBADQiaAEANCJoAQA0ImgBADRyUK8LABhy45qNe+1bfu5JPagE\nYHzo0QIAaETQAgBoRNACAGjEHC2gJ4abjwUw1ejRAgBoRNACAGhE0AIAaETQAgBoRNACAGhE0AIA\naETQAgBoRNACAGhE0AI
"text/plain": [
"<matplotlib.figure.Figure at 0x21469288c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Try also plotting a KDE instead of histograms for another view point. Which stock has the widest plot? **"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x2146a1dde10>"
]
},
"execution_count": 156,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n0eqJFhE3VVdX09/ff1E
"text/plain": [
"<matplotlib.figure.Figure at 0x214668b6e48>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Try also creating some box plots comparing the returns. **"
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x2146e738da0>"
]
},
"execution_count": 205,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nEHQ501Ymk9HWrVu1YME
"text/plain": [
"<matplotlib.figure.Figure at 0x2146e843630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Comparing Daily Returns between Stocks\n",
"\n",
"** Create a scatter matrix plot to see the correlation between each of the stocks daily returns. This helps answer the questions of how related the car companies are. Is Tesla begin treated more as a technology company rather than a car company by the market?**"
]
},
{
"cell_type": "code",
"execution_count": 219,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAHyCAYAAAB2/c12AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvVmMZUl63/eLs59z11wrK2uv7unp6Z5pkZweiGORtixL\nkGkKhi2B8AK/WDCoB5kmYMMwYUCWXmwJkgBBlm3BtGUTgiwDEmx5IS1QpA2Kw6U5MxwOyZnp7unu\n2iuzMvPem3c7+4kIP8TN7Kzqquqq6sqpJeMHFPLc7ZzIrLgnvviW/ye01lgsFovFYjm5OM96ABaL\nxWKxWJ4t1hiwWCwWi+WEY40Bi8VisVhOONYYsFgsFovlhGONAYvFYrFYTjjWGLBYLBaL5YRjjQGL\nxWKxWE441hiwWCwWi+WEY40Bi8VisVhOON6zHsAPitXVVX3x4sVnPQzLS8S1a9ewc8ryNLFzyvI0\n+d3f/d2B1nrtUd57YoyBixcv8s1vfvNZD8PyEvH222/bOWV5qtg5ZXmaCCGuP+p7bZjAYjlB7M4K\nrg1S8ko+66FYLE+MncdPH2sMWCwnhLKR7ExKZkXD1iR/1sOxWJ6Iov54Hm/befzUsMaAxXJC8BwH\n3xMAxL77jEdjsTwZvuvguYt5HNh5/LQ4MTkDFstJx3UEn1vvUDXK3kQtLyxmHreppbbz+ClijQGL\n5QThOsLeQC0vPJ7r4Nlp/FSxxsAJ4OLP/dLh8bW/9pPPcCQWi8VieR6xOQMWi8VisZxwrDFgsVgs\nFssJxxoDFovFYrGccGzOwAnD5g9YLBaL5V6sZ8BisVgslhOONQYsFovFYjnhWGPAYrFYLJYTznNv\nDAgh/pYQ4mtCiL99z/N/WQjx24t//8qzGp/FYrFYLC86z7UxIIT4EaCttf5xIBBCfOXIy39fa/1V\n4CeAv/xMBmixWCwWy0vAc20MAD8K/Mri+FeBrx68oLW+ujgsAf0DHpfFYrFYLC8Nz7sx0Aemi+PJ\n4vG9/BXgv7/fh4UQPy2E+KYQ4pt7e3vHM0KLxWKxWF5wnndjYAJ0F8ddYHz0RSHEvwmsaK3/4f0+\nrLX+ea3121rrt9fW1o53pBaLxWKxvKA878bAbwMHyYF/Enjn4AUhxFvAX1z8s1gsFovF8oQ818aA\n1vpbQCGE+BogtdZfF0L8ncXLfwM4BfyyEOL/fGaDtFgsFovlBee5lyPWWv/sPY9/ZvHzTz+bEVks\nFovF8nLxXHsGLBaLxWKxHD/WGLBYLBaL5YRjjQGLxWKxWE441hiwWCx3Mc4qBvMSra2Wl+X5o6gl\nu7OCspHPeigvFc99AqHFYnk4ZSO5McwQAi6stPDdJ7fxZ0XNzVEOgFKa9W70tIZpOQHMy4Zb+xmR\n53JhJUEI8VTPr7Xmyl6KVJpJVvO5U52nev6TjPUMWCwvOJOspqgVeaWY5PVnOte9N2/rHbA8DsN5\nSd1oZkVDWj14527n1fOH9QxYLC84nchnb14iELTDz/aVboce51cSGqnwHMF3t6YEnsPl1RbeQzwO\njVRMi4Z26BF4do9xUunFPrOiIfAcYt+973vySnJlMEcguLzWInrA++6HEOYzs6KhF/ufaayTvEYI\n6Eaf7TwvC9YYsFhecOLA5Y3TRrX7abhlD26yN0cZWkNZK7Ja0n2IMXBtmJFXEs8VfOF094Hvs7zc\n9JOAXuw/dB5OixqlADTzsnksYwAg8t3H/sy97KcVt/ZNOOz8ckIvsQaBNeEtlpcAIcRTj88utwJ8\nT9AKXdrBw/cNauH2lUpbF/AJ59PmYT/xCX2HOHCe2a5cHpmj0s5XwHoGLBbLA2iFHq9vPNou//xy\nwn5W0Y0eviu0WELP5bVnnPi30gpQWiMQLFmvAGCNAYvlRKG1plH6M1Uc3I/Idzndi5/qOS0WgHqR\nv/I0jUwhBOsdWylzFGsMWCwnBK01H+3NySvFejfk1DGVDZaN5OogRWu4tPp4CWIWy1G2xjnDeUUS\nuryy1n6ic9RScXWQ0kjNxdWE5FNCXicVmzNgsZwQaqnJK8V+WvHe9pT8IaVfn4VZ0VA3mkZqpp+x\n1NFyspkVDQBZKQ/zUbbGOdeHKVWjHukc86KhrBVSacaZnY8PwhoDFssJIfAcOrHLrKwJfZftSX4s\n1+lEprzQ9wTdJyz/mmQ1H+7OGczLpzw6y4vERjci8h3WuyGuI5iVDcN5xTRv2J0Vj3SOduQR+Q6e\nK+h/xvyA4bzkw905+2n1mc7zPGL9JRbLCeLcUouiVtSNJg6Ox30fei6f3/hsCWJbk5xGavJKstIK\nbFLiCaWX+HeV/YWeg+OAUjxQx+BefNd5akqF25MCrWGryVlqBU/lnM8L1hiwWE4QriN4da1NLY/P\nGHgatEOPcVaThK41BCyHHFQiSKWfSS5KK/SYL8S1XjZevt/I8shc/LlfOjy+9td+8hmOxPKDxHMd\nvOfXDgDg3HLCelcSPOWqB8uLj+86PKuc1IsrCZVUL+W8PLbfSAjxV4UQXSGEJ4T4ZSHEjhDi3z2u\n61kslpeL0LNeAcvzhRDipZ2Xx2ne/ITWegr8GWALeB34z47xehaLxWKxWJ6A4zQGDkIQ/xrwj7XW\n+4DVfbRYLBaL5TnjOHMG/qkQ4juABP6iEGIVsHVCFovFYrE8ZxybMaC1/k+FEH8DGGmtGyFEDvzZ\n47qexWJ5dLTW3BhlzIqG072IlXb4rIdksaC15towIy0bzi7F9JOXq3zveea4qwkuAn9cCHH0Ov/w\nmK9psVg+hVpqprlRd9vPKtqRhysE3kuYJW15cSgbxXyhOjhKK/pJgFSaWiora33MHGc1wS8A/w3w\nJ4EfX/z7sSc4z98SQnxNCPG373n+zwshrgoh/sHTGK/FcpIIPIdu7CEEOELw/Ttz3rszo6g/XaK4\nkUba1WJ52oSeQzsy83K5ZQyBD3ZnfLAzZ3f6aIqD91I1yrbVfgSO0zPwo8AbWutHE5C+D0KIHwHa\nWusfF0L8XSHEV7TW31i8/H8Bvw78lc8+VIvl5HFhpQWYZjBpKdEayvrhO7C0bLg6SAG4vNayTV8s\nTxUhBJdWW4ePi1pSN2YhT5+gl8btcc7oMzY6Oikcp0/wu8DaZzzHjwK/sjj+VeCrBy9orQdA8xnP\nb7GceFbbIZ3IY6nl043N4l7UEnWf3X9aNWgNWkNaPvzmPC8bBvPSehEsT0zku6x1Qlqhy8YDumwW\ntXzgzv8g5DDOKu5MCsrmeJpzvQwcp1nfA74nhHiHI1UEWuvHSSLsA1cWxxPgzccZgBDip4GfBjh/\n/vzjfNRiOTEEnsPFI7uxg7axke/w6nr7LoGVpSQ4NAKWHtL0pWwk1xZtjPNKcm45eeLx7c1KZkXN\nejd6KWVgLQ9no/fgVtu39jP205o4cHl1/ZM7/41uxN68YDar2ZuVjPOK1ze6Dzxf1Si2xjmeKzjT\nj19KcaEHcZzfrL/6FM4xAQ7+57rA+HE+rLX+eeDnAd5++227PbFY7kEqzbxoSEIXf5E8mJZmN1XU\nikZpfPfjG6LvOne5cR+HcVaRVZK1Tnh4rU+jloo7ExMrvjPJeXX96TScsbwcHBimeWVaHLvO3Yv3\nQaOjRmnqRnPgQMiqhv20whGC5XZAuNDn3puXh22TO+HdTZJedo7FGBBCuMDPaa3/1Gc81W8DfwH4\nR5hExF/4jOezWCxH+O7WhBujjHbo8S+9toYQgo1exM60pBt5dy3a87Ih9JwHLuRZ1TArGvqJT+i5\nXFhJyGvJSiukqCU3R6Zlci0V55aMxvunZYh7jiD0HcpaEdv8BAuLEJbWJIHHRi9ib1bSClwG85Ik\ncJnkNWkpOd2P6EZmMb+40mKa14ctta8NMrbGOVkleWW9xedPdfBch8R3GQFCQOjff55XjUmDC7yX\nq/LmWL5dWmsphHCFEN2FJPGTnudbQohCCPE14Nta668LIf6O1vpnhBB/Bvg54BUhxP+mtf5zT+0X\nsFhOCINZSd1oxrImryR
"text/plain": [
"<matplotlib.figure.Figure at 0x2146ea55c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** It looks like Ford and GM do have some sort of possible relationship, let's plot just these two against eachother in scatter plot to view this more closely!**"
]
},
{
"cell_type": "code",
"execution_count": 229,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x21470b00128>"
]
},
"execution_count": 229,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nNuOcw7W00eFbiI0iQU8
"text/plain": [
"<matplotlib.figure.Figure at 0x21470a506a0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"____\n",
"## Cumulative Daily Returns\n",
"\n",
"Great! Now we can see which stock was the most wide ranging in daily returns (you should have realized it was Tesla, our original stock price plot should have also made that obvious).\n",
"\n",
"With daily cumulative returns, the question we are trying to answer is the following, if I invested $1 in the company at the beginning of the time series, how much would is be worth today? This is different than just the stock price at the current day, because it will take into account the daily returns. Keep in mind, our simple calculation here won't take into account stocks that give back a dividend. Let's look at some simple examples:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lets us say there is a stock 'ABC' that is being actively traded on an exchange. ABC has the following prices corresponding to the dates given"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Date Price\n",
" 01/01/2018 10\n",
" 01/02/2018 15\n",
" 01/03/2018 20\n",
" 01/04/2018 25"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Daily Return** : Daily return is the profit/loss made by the stock compared to the previous day. (This is what ew just calculated above). A value above one indicates profit, similarly a value below one indicates loss. It is also expressed in percentage to convey the information better. (When expressed as percentage, if the value is above 0, the stock had give you profit else loss). So for the above example the daily returns would be"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Date Daily Return %Daily Return\n",
" 01/01/2018 10/10 = 1 - \n",
" 01/02/2018 15/10 = 3/2 50%\n",
" 01/03/2018 20/15 = 4/3 33%\n",
" 01/04/2018 25/20 = 5/4 20%"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Cumulative Return**: While daily returns are useful, it doesn't give the investor a immediate insight into the gains he had made till date, especially if the stock is very volatile. Cumulative return is computed relative to the day investment is made. If cumulative return is above one, you are making profits else you are in loss. So for the above example cumulative gains are as follows"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Date Cumulative Return %Cumulative Return\n",
" 01/01/2018 10/10 = 1 100 % \n",
" 01/02/2018 15/10 = 3/2 150 %\n",
" 01/03/2018 20/10 = 2 200 %\n",
" 01/04/2018 25/10 = 5/2 250 %"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The formula for a cumulative daily return is:\n",
"\n",
"$ i_i = (1+r_t) * i_{t-1} $\n",
"\n",
"Here we can see we are just multiplying our previous investment at i at t-1 by 1+our percent returns. Pandas makes this very simple to calculate with its cumprod() method. Using something in the following manner:\n",
"\n",
" df[daily_cumulative_return] = ( 1 + df[pct_daily_return] ).cumprod()\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Create a cumulative daily return column for each car company's dataframe.**"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\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>Total Traded</th>\n",
" <th>returns</th>\n",
" <th>Cumulative Return</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",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2012-01-03</th>\n",
" <td>28.94</td>\n",
" <td>29.50</td>\n",
" <td>27.65</td>\n",
" <td>28.08</td>\n",
" <td>928052</td>\n",
" <td>26857824.88</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-04</th>\n",
" <td>28.21</td>\n",
" <td>28.67</td>\n",
" <td>27.50</td>\n",
" <td>27.71</td>\n",
" <td>630036</td>\n",
" <td>17773315.56</td>\n",
" <td>-0.013177</td>\n",
" <td>0.986823</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-05</th>\n",
" <td>27.76</td>\n",
" <td>27.93</td>\n",
" <td>26.85</td>\n",
" <td>27.12</td>\n",
" <td>1005432</td>\n",
" <td>27910792.32</td>\n",
" <td>-0.021292</td>\n",
" <td>0.965812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-06</th>\n",
" <td>27.20</td>\n",
" <td>27.79</td>\n",
" <td>26.41</td>\n",
" <td>26.89</td>\n",
" <td>687081</td>\n",
" <td>18688603.20</td>\n",
" <td>-0.008481</td>\n",
" <td>0.957621</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012-01-09</th>\n",
" <td>27.00</td>\n",
" <td>27.49</td>\n",
" <td>26.12</td>\n",
" <td>27.25</td>\n",
" <td>896951</td>\n",
" <td>24217677.00</td>\n",
" <td>0.013388</td>\n",
" <td>0.970442</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Total Traded returns \\\n",
"Date \n",
"2012-01-03 28.94 29.50 27.65 28.08 928052 26857824.88 NaN \n",
"2012-01-04 28.21 28.67 27.50 27.71 630036 17773315.56 -0.013177 \n",
"2012-01-05 27.76 27.93 26.85 27.12 1005432 27910792.32 -0.021292 \n",
"2012-01-06 27.20 27.79 26.41 26.89 687081 18688603.20 -0.008481 \n",
"2012-01-09 27.00 27.49 26.12 27.25 896951 24217677.00 0.013388 \n",
"\n",
" Cumulative Return \n",
"Date \n",
"2012-01-03 NaN \n",
"2012-01-04 0.986823 \n",
"2012-01-05 0.965812 \n",
"2012-01-06 0.957621 \n",
"2012-01-09 0.970442 "
]
},
"execution_count": 181,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Now plot the Cumulative Return columns against the time series index. Which stock showed the highest return for a $1 invested? Which showed the lowest?**"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x2146b9c26d8>"
]
},
"execution_count": 183,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nQoODzYYOD4BoKTjRpPb
"text/plain": [
"<matplotlib.figure.Figure at 0x2146b9b1e10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Great Job!\n",
"\n",
"That is it for thsi very basic analysis, this concludes this half of the course, which focuses much more on learning the tools of the trade. The second half of the course is where we really dive into functionality designed for time series, quantitative analysis, algorithmic trading, and much more!"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 1
}