ml-finance-python
python scripts for finance machine learning
git clone https://9o.is/git/ml-finance-python.git
lab_102.ipynb
(58808B)
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "# Volatility and Risk\n",
8 "\n",
9 "We've seen that the volatility is measured by the average squared deviation from the mean, which is the standard deviation.\n",
10 "\n",
11 "Let's read the sample returns that we've been working with."
12 ]
13 },
14 {
15 "cell_type": "code",
16 "execution_count": 1,
17 "metadata": {},
18 "outputs": [
19 {
20 "data": {
21 "text/html": [
22 "<div>\n",
23 "<style scoped>\n",
24 " .dataframe tbody tr th:only-of-type {\n",
25 " vertical-align: middle;\n",
26 " }\n",
27 "\n",
28 " .dataframe tbody tr th {\n",
29 " vertical-align: top;\n",
30 " }\n",
31 "\n",
32 " .dataframe thead th {\n",
33 " text-align: right;\n",
34 " }\n",
35 "</style>\n",
36 "<table border=\"1\" class=\"dataframe\">\n",
37 " <thead>\n",
38 " <tr style=\"text-align: right;\">\n",
39 " <th></th>\n",
40 " <th>BLUE</th>\n",
41 " <th>ORANGE</th>\n",
42 " </tr>\n",
43 " </thead>\n",
44 " <tbody>\n",
45 " <tr>\n",
46 " <th>0</th>\n",
47 " <td>NaN</td>\n",
48 " <td>NaN</td>\n",
49 " </tr>\n",
50 " <tr>\n",
51 " <th>1</th>\n",
52 " <td>0.023621</td>\n",
53 " <td>0.039662</td>\n",
54 " </tr>\n",
55 " <tr>\n",
56 " <th>2</th>\n",
57 " <td>-0.021807</td>\n",
58 " <td>-0.033638</td>\n",
59 " </tr>\n",
60 " <tr>\n",
61 " <th>3</th>\n",
62 " <td>-0.031763</td>\n",
63 " <td>0.082232</td>\n",
64 " </tr>\n",
65 " <tr>\n",
66 " <th>4</th>\n",
67 " <td>0.034477</td>\n",
68 " <td>0.044544</td>\n",
69 " </tr>\n",
70 " <tr>\n",
71 " <th>5</th>\n",
72 " <td>0.037786</td>\n",
73 " <td>-0.026381</td>\n",
74 " </tr>\n",
75 " <tr>\n",
76 " <th>6</th>\n",
77 " <td>-0.011452</td>\n",
78 " <td>-0.049187</td>\n",
79 " </tr>\n",
80 " <tr>\n",
81 " <th>7</th>\n",
82 " <td>0.032676</td>\n",
83 " <td>0.117008</td>\n",
84 " </tr>\n",
85 " <tr>\n",
86 " <th>8</th>\n",
87 " <td>-0.012581</td>\n",
88 " <td>0.067353</td>\n",
89 " </tr>\n",
90 " <tr>\n",
91 " <th>9</th>\n",
92 " <td>0.029581</td>\n",
93 " <td>0.078249</td>\n",
94 " </tr>\n",
95 " <tr>\n",
96 " <th>10</th>\n",
97 " <td>0.006151</td>\n",
98 " <td>-0.168261</td>\n",
99 " </tr>\n",
100 " <tr>\n",
101 " <th>11</th>\n",
102 " <td>0.012162</td>\n",
103 " <td>0.024041</td>\n",
104 " </tr>\n",
105 " <tr>\n",
106 " <th>12</th>\n",
107 " <td>0.021149</td>\n",
108 " <td>-0.055623</td>\n",
109 " </tr>\n",
110 " </tbody>\n",
111 "</table>\n",
112 "</div>"
113 ],
114 "text/plain": [
115 " BLUE ORANGE\n",
116 "0 NaN NaN\n",
117 "1 0.023621 0.039662\n",
118 "2 -0.021807 -0.033638\n",
119 "3 -0.031763 0.082232\n",
120 "4 0.034477 0.044544\n",
121 "5 0.037786 -0.026381\n",
122 "6 -0.011452 -0.049187\n",
123 "7 0.032676 0.117008\n",
124 "8 -0.012581 0.067353\n",
125 "9 0.029581 0.078249\n",
126 "10 0.006151 -0.168261\n",
127 "11 0.012162 0.024041\n",
128 "12 0.021149 -0.055623"
129 ]
130 },
131 "execution_count": 1,
132 "metadata": {},
133 "output_type": "execute_result"
134 }
135 ],
136 "source": [
137 "import pandas as pd\n",
138 "prices = pd.read_csv(\"data/sample_prices.csv\")\n",
139 "returns = prices.pct_change()\n",
140 "returns"
141 ]
142 },
143 {
144 "cell_type": "markdown",
145 "metadata": {},
146 "source": [
147 "Notice that the first set of returns are NaN, which is Pandas way of saying that it's an NA. We can drop that row using the `.dropna()` method."
148 ]
149 },
150 {
151 "cell_type": "code",
152 "execution_count": 2,
153 "metadata": {},
154 "outputs": [
155 {
156 "data": {
157 "text/html": [
158 "<div>\n",
159 "<style scoped>\n",
160 " .dataframe tbody tr th:only-of-type {\n",
161 " vertical-align: middle;\n",
162 " }\n",
163 "\n",
164 " .dataframe tbody tr th {\n",
165 " vertical-align: top;\n",
166 " }\n",
167 "\n",
168 " .dataframe thead th {\n",
169 " text-align: right;\n",
170 " }\n",
171 "</style>\n",
172 "<table border=\"1\" class=\"dataframe\">\n",
173 " <thead>\n",
174 " <tr style=\"text-align: right;\">\n",
175 " <th></th>\n",
176 " <th>BLUE</th>\n",
177 " <th>ORANGE</th>\n",
178 " </tr>\n",
179 " </thead>\n",
180 " <tbody>\n",
181 " <tr>\n",
182 " <th>1</th>\n",
183 " <td>0.023621</td>\n",
184 " <td>0.039662</td>\n",
185 " </tr>\n",
186 " <tr>\n",
187 " <th>2</th>\n",
188 " <td>-0.021807</td>\n",
189 " <td>-0.033638</td>\n",
190 " </tr>\n",
191 " <tr>\n",
192 " <th>3</th>\n",
193 " <td>-0.031763</td>\n",
194 " <td>0.082232</td>\n",
195 " </tr>\n",
196 " <tr>\n",
197 " <th>4</th>\n",
198 " <td>0.034477</td>\n",
199 " <td>0.044544</td>\n",
200 " </tr>\n",
201 " <tr>\n",
202 " <th>5</th>\n",
203 " <td>0.037786</td>\n",
204 " <td>-0.026381</td>\n",
205 " </tr>\n",
206 " <tr>\n",
207 " <th>6</th>\n",
208 " <td>-0.011452</td>\n",
209 " <td>-0.049187</td>\n",
210 " </tr>\n",
211 " <tr>\n",
212 " <th>7</th>\n",
213 " <td>0.032676</td>\n",
214 " <td>0.117008</td>\n",
215 " </tr>\n",
216 " <tr>\n",
217 " <th>8</th>\n",
218 " <td>-0.012581</td>\n",
219 " <td>0.067353</td>\n",
220 " </tr>\n",
221 " <tr>\n",
222 " <th>9</th>\n",
223 " <td>0.029581</td>\n",
224 " <td>0.078249</td>\n",
225 " </tr>\n",
226 " <tr>\n",
227 " <th>10</th>\n",
228 " <td>0.006151</td>\n",
229 " <td>-0.168261</td>\n",
230 " </tr>\n",
231 " <tr>\n",
232 " <th>11</th>\n",
233 " <td>0.012162</td>\n",
234 " <td>0.024041</td>\n",
235 " </tr>\n",
236 " <tr>\n",
237 " <th>12</th>\n",
238 " <td>0.021149</td>\n",
239 " <td>-0.055623</td>\n",
240 " </tr>\n",
241 " </tbody>\n",
242 "</table>\n",
243 "</div>"
244 ],
245 "text/plain": [
246 " BLUE ORANGE\n",
247 "1 0.023621 0.039662\n",
248 "2 -0.021807 -0.033638\n",
249 "3 -0.031763 0.082232\n",
250 "4 0.034477 0.044544\n",
251 "5 0.037786 -0.026381\n",
252 "6 -0.011452 -0.049187\n",
253 "7 0.032676 0.117008\n",
254 "8 -0.012581 0.067353\n",
255 "9 0.029581 0.078249\n",
256 "10 0.006151 -0.168261\n",
257 "11 0.012162 0.024041\n",
258 "12 0.021149 -0.055623"
259 ]
260 },
261 "execution_count": 2,
262 "metadata": {},
263 "output_type": "execute_result"
264 }
265 ],
266 "source": [
267 "returns = returns.dropna()\n",
268 "returns"
269 ]
270 },
271 {
272 "cell_type": "markdown",
273 "metadata": {},
274 "source": [
275 "Let's compute the standard deviation from first principals:"
276 ]
277 },
278 {
279 "cell_type": "code",
280 "execution_count": 3,
281 "metadata": {},
282 "outputs": [
283 {
284 "data": {
285 "text/plain": [
286 "BLUE 0.022957\n",
287 "ORANGE 0.076212\n",
288 "dtype: float64"
289 ]
290 },
291 "execution_count": 3,
292 "metadata": {},
293 "output_type": "execute_result"
294 }
295 ],
296 "source": [
297 "deviations = returns - returns.mean()\n",
298 "squared_deviations = deviations**2\n",
299 "mean_squared_deviations = squared_deviations.mean()\n",
300 "\n",
301 "import numpy as np\n",
302 "\n",
303 "volatility = np.sqrt(mean_squared_deviations)\n",
304 "volatility"
305 ]
306 },
307 {
308 "cell_type": "markdown",
309 "metadata": {},
310 "source": [
311 "Let's see if we get the same answer when we use the built-in `.std()` method."
312 ]
313 },
314 {
315 "cell_type": "code",
316 "execution_count": 4,
317 "metadata": {},
318 "outputs": [
319 {
320 "data": {
321 "text/plain": [
322 "BLUE 0.023977\n",
323 "ORANGE 0.079601\n",
324 "dtype: float64"
325 ]
326 },
327 "execution_count": 4,
328 "metadata": {},
329 "output_type": "execute_result"
330 }
331 ],
332 "source": [
333 "returns.std()"
334 ]
335 },
336 {
337 "cell_type": "markdown",
338 "metadata": {},
339 "source": [
340 "Why don't they match? Because, by default, the `.std()` method computes the _sample standard deviation_ which means that it uses the denominator of $n-1$. On the other hand, we computed the _population_ standard deviation, which uses a numerator of $n$. Since the observed returns are thought of as observed samples from a distribution, it is probably more accurate to use the denominator of $n-1$, so let's redo our calculation to see if we get the same number.\n",
341 "\n",
342 "To get the number of observations, we can use the `.shape` attribute of a DataFrame that returns a tuple of the number of rows and columns."
343 ]
344 },
345 {
346 "cell_type": "code",
347 "execution_count": 5,
348 "metadata": {},
349 "outputs": [
350 {
351 "data": {
352 "text/plain": [
353 "(12, 2)"
354 ]
355 },
356 "execution_count": 5,
357 "metadata": {},
358 "output_type": "execute_result"
359 }
360 ],
361 "source": [
362 "returns.shape"
363 ]
364 },
365 {
366 "cell_type": "markdown",
367 "metadata": {},
368 "source": [
369 "Just as we can with a list, we can access the elements of a tuple using an index, starting at 0. Therefore, to get the number of rows in the DataFrame, we extract the 0th element of the tuple."
370 ]
371 },
372 {
373 "cell_type": "code",
374 "execution_count": 6,
375 "metadata": {},
376 "outputs": [
377 {
378 "data": {
379 "text/plain": [
380 "BLUE 0.023977\n",
381 "ORANGE 0.079601\n",
382 "dtype: float64"
383 ]
384 },
385 "execution_count": 6,
386 "metadata": {},
387 "output_type": "execute_result"
388 }
389 ],
390 "source": [
391 "number_of_obs = returns.shape[0]\n",
392 "mean_squared_deviations = squared_deviations.sum()/(number_of_obs-1)\n",
393 "volatility = np.sqrt(mean_squared_deviations)\n",
394 "volatility"
395 ]
396 },
397 {
398 "cell_type": "code",
399 "execution_count": 7,
400 "metadata": {},
401 "outputs": [
402 {
403 "data": {
404 "text/plain": [
405 "BLUE 0.023977\n",
406 "ORANGE 0.079601\n",
407 "dtype: float64"
408 ]
409 },
410 "execution_count": 7,
411 "metadata": {},
412 "output_type": "execute_result"
413 }
414 ],
415 "source": [
416 "returns.std()"
417 ]
418 },
419 {
420 "cell_type": "markdown",
421 "metadata": {},
422 "source": [
423 "# Annualizing Volatility\n",
424 "\n",
425 "We annualize volatility by scaling (multiplying) it by the square root of the number of periods per observation\n",
426 "\n",
427 "Therefore, to annualize the volatility of a monthly series, we muiltiply it by the square root of 12. Instead of using the `np.sqrt()` we can raise it to the power of $0.5$"
428 ]
429 },
430 {
431 "cell_type": "code",
432 "execution_count": 8,
433 "metadata": {},
434 "outputs": [
435 {
436 "data": {
437 "text/plain": [
438 "BLUE 0.083060\n",
439 "ORANGE 0.275747\n",
440 "dtype: float64"
441 ]
442 },
443 "execution_count": 8,
444 "metadata": {},
445 "output_type": "execute_result"
446 }
447 ],
448 "source": [
449 "annualized_vol = returns.std()*(12**0.5)\n",
450 "annualized_vol"
451 ]
452 },
453 {
454 "cell_type": "markdown",
455 "metadata": {},
456 "source": [
457 "# Risk Adjusted Returns\n",
458 "\n",
459 "Let's get beyond the sample data series and start working with some real data. Read in the monthly returns of a set of 10 portfolios formed on market caps, or market equities of the companies. Of the 10 portfolios, we only want to look at the largest cap and the smallest cap companies:"
460 ]
461 },
462 {
463 "cell_type": "code",
464 "execution_count": 9,
465 "metadata": {},
466 "outputs": [
467 {
468 "data": {
469 "text/html": [
470 "<div>\n",
471 "<style scoped>\n",
472 " .dataframe tbody tr th:only-of-type {\n",
473 " vertical-align: middle;\n",
474 " }\n",
475 "\n",
476 " .dataframe tbody tr th {\n",
477 " vertical-align: top;\n",
478 " }\n",
479 "\n",
480 " .dataframe thead th {\n",
481 " text-align: right;\n",
482 " }\n",
483 "</style>\n",
484 "<table border=\"1\" class=\"dataframe\">\n",
485 " <thead>\n",
486 " <tr style=\"text-align: right;\">\n",
487 " <th></th>\n",
488 " <th><= 0</th>\n",
489 " <th>Lo 30</th>\n",
490 " <th>Med 40</th>\n",
491 " <th>Hi 30</th>\n",
492 " <th>Lo 20</th>\n",
493 " <th>Qnt 2</th>\n",
494 " <th>Qnt 3</th>\n",
495 " <th>Qnt 4</th>\n",
496 " <th>Hi 20</th>\n",
497 " <th>Lo 10</th>\n",
498 " <th>Dec 2</th>\n",
499 " <th>Dec 3</th>\n",
500 " <th>Dec 4</th>\n",
501 " <th>Dec 5</th>\n",
502 " <th>Dec 6</th>\n",
503 " <th>Dec 7</th>\n",
504 " <th>Dec 8</th>\n",
505 " <th>Dec 9</th>\n",
506 " <th>Hi 10</th>\n",
507 " </tr>\n",
508 " </thead>\n",
509 " <tbody>\n",
510 " <tr>\n",
511 " <th>192607</th>\n",
512 " <td>NaN</td>\n",
513 " <td>-0.43</td>\n",
514 " <td>1.52</td>\n",
515 " <td>2.68</td>\n",
516 " <td>-0.57</td>\n",
517 " <td>0.59</td>\n",
518 " <td>1.60</td>\n",
519 " <td>1.47</td>\n",
520 " <td>3.33</td>\n",
521 " <td>-1.45</td>\n",
522 " <td>0.29</td>\n",
523 " <td>-0.15</td>\n",
524 " <td>1.33</td>\n",
525 " <td>1.24</td>\n",
526 " <td>1.98</td>\n",
527 " <td>1.55</td>\n",
528 " <td>1.38</td>\n",
529 " <td>3.38</td>\n",
530 " <td>3.29</td>\n",
531 " </tr>\n",
532 " <tr>\n",
533 " <th>192608</th>\n",
534 " <td>NaN</td>\n",
535 " <td>3.90</td>\n",
536 " <td>3.04</td>\n",
537 " <td>2.09</td>\n",
538 " <td>3.84</td>\n",
539 " <td>3.59</td>\n",
540 " <td>3.71</td>\n",
541 " <td>1.61</td>\n",
542 " <td>2.33</td>\n",
543 " <td>5.12</td>\n",
544 " <td>2.59</td>\n",
545 " <td>4.03</td>\n",
546 " <td>3.15</td>\n",
547 " <td>2.72</td>\n",
548 " <td>4.72</td>\n",
549 " <td>1.60</td>\n",
550 " <td>1.63</td>\n",
551 " <td>0.98</td>\n",
552 " <td>3.70</td>\n",
553 " </tr>\n",
554 " <tr>\n",
555 " <th>192609</th>\n",
556 " <td>NaN</td>\n",
557 " <td>-1.08</td>\n",
558 " <td>-0.54</td>\n",
559 " <td>0.16</td>\n",
560 " <td>-0.48</td>\n",
561 " <td>-1.40</td>\n",
562 " <td>0.00</td>\n",
563 " <td>-0.50</td>\n",
564 " <td>-0.09</td>\n",
565 " <td>0.93</td>\n",
566 " <td>-1.87</td>\n",
567 " <td>-2.27</td>\n",
568 " <td>-0.53</td>\n",
569 " <td>0.07</td>\n",
570 " <td>-0.07</td>\n",
571 " <td>-1.64</td>\n",
572 " <td>0.64</td>\n",
573 " <td>-0.86</td>\n",
574 " <td>0.67</td>\n",
575 " </tr>\n",
576 " <tr>\n",
577 " <th>192610</th>\n",
578 " <td>NaN</td>\n",
579 " <td>-3.32</td>\n",
580 " <td>-3.52</td>\n",
581 " <td>-3.06</td>\n",
582 " <td>-3.29</td>\n",
583 " <td>-4.10</td>\n",
584 " <td>-2.89</td>\n",
585 " <td>-3.36</td>\n",
586 " <td>-2.95</td>\n",
587 " <td>-4.84</td>\n",
588 " <td>-1.77</td>\n",
589 " <td>-3.36</td>\n",
590 " <td>-4.83</td>\n",
591 " <td>-2.98</td>\n",
592 " <td>-2.80</td>\n",
593 " <td>-3.45</td>\n",
594 " <td>-3.27</td>\n",
595 " <td>-3.47</td>\n",
596 " <td>-2.43</td>\n",
597 " </tr>\n",
598 " <tr>\n",
599 " <th>192611</th>\n",
600 " <td>NaN</td>\n",
601 " <td>-0.46</td>\n",
602 " <td>3.82</td>\n",
603 " <td>3.09</td>\n",
604 " <td>-0.55</td>\n",
605 " <td>2.18</td>\n",
606 " <td>3.41</td>\n",
607 " <td>3.39</td>\n",
608 " <td>3.16</td>\n",
609 " <td>-0.78</td>\n",
610 " <td>-0.32</td>\n",
611 " <td>-0.29</td>\n",
612 " <td>4.65</td>\n",
613 " <td>3.24</td>\n",
614 " <td>3.57</td>\n",
615 " <td>3.82</td>\n",
616 " <td>2.95</td>\n",
617 " <td>3.61</td>\n",
618 " <td>2.70</td>\n",
619 " </tr>\n",
620 " </tbody>\n",
621 "</table>\n",
622 "</div>"
623 ],
624 "text/plain": [
625 " <= 0 Lo 30 Med 40 Hi 30 Lo 20 Qnt 2 Qnt 3 Qnt 4 Hi 20 Lo 10 \\\n",
626 "192607 NaN -0.43 1.52 2.68 -0.57 0.59 1.60 1.47 3.33 -1.45 \n",
627 "192608 NaN 3.90 3.04 2.09 3.84 3.59 3.71 1.61 2.33 5.12 \n",
628 "192609 NaN -1.08 -0.54 0.16 -0.48 -1.40 0.00 -0.50 -0.09 0.93 \n",
629 "192610 NaN -3.32 -3.52 -3.06 -3.29 -4.10 -2.89 -3.36 -2.95 -4.84 \n",
630 "192611 NaN -0.46 3.82 3.09 -0.55 2.18 3.41 3.39 3.16 -0.78 \n",
631 "\n",
632 " Dec 2 Dec 3 Dec 4 Dec 5 Dec 6 Dec 7 Dec 8 Dec 9 Hi 10 \n",
633 "192607 0.29 -0.15 1.33 1.24 1.98 1.55 1.38 3.38 3.29 \n",
634 "192608 2.59 4.03 3.15 2.72 4.72 1.60 1.63 0.98 3.70 \n",
635 "192609 -1.87 -2.27 -0.53 0.07 -0.07 -1.64 0.64 -0.86 0.67 \n",
636 "192610 -1.77 -3.36 -4.83 -2.98 -2.80 -3.45 -3.27 -3.47 -2.43 \n",
637 "192611 -0.32 -0.29 4.65 3.24 3.57 3.82 2.95 3.61 2.70 "
638 ]
639 },
640 "execution_count": 9,
641 "metadata": {},
642 "output_type": "execute_result"
643 }
644 ],
645 "source": [
646 "me_m = pd.read_csv(\"data/Portfolios_Formed_on_ME_monthly_EW.csv\",\n",
647 " header=0, index_col=0, parse_dates=True, na_values=-99.99)\n",
648 "me_m.head()"
649 ]
650 },
651 {
652 "cell_type": "code",
653 "execution_count": 10,
654 "metadata": {},
655 "outputs": [
656 {
657 "data": {
658 "text/html": [
659 "<div>\n",
660 "<style scoped>\n",
661 " .dataframe tbody tr th:only-of-type {\n",
662 " vertical-align: middle;\n",
663 " }\n",
664 "\n",
665 " .dataframe tbody tr th {\n",
666 " vertical-align: top;\n",
667 " }\n",
668 "\n",
669 " .dataframe thead th {\n",
670 " text-align: right;\n",
671 " }\n",
672 "</style>\n",
673 "<table border=\"1\" class=\"dataframe\">\n",
674 " <thead>\n",
675 " <tr style=\"text-align: right;\">\n",
676 " <th></th>\n",
677 " <th>Lo 10</th>\n",
678 " <th>Hi 10</th>\n",
679 " </tr>\n",
680 " </thead>\n",
681 " <tbody>\n",
682 " <tr>\n",
683 " <th>192607</th>\n",
684 " <td>-1.45</td>\n",
685 " <td>3.29</td>\n",
686 " </tr>\n",
687 " <tr>\n",
688 " <th>192608</th>\n",
689 " <td>5.12</td>\n",
690 " <td>3.70</td>\n",
691 " </tr>\n",
692 " <tr>\n",
693 " <th>192609</th>\n",
694 " <td>0.93</td>\n",
695 " <td>0.67</td>\n",
696 " </tr>\n",
697 " <tr>\n",
698 " <th>192610</th>\n",
699 " <td>-4.84</td>\n",
700 " <td>-2.43</td>\n",
701 " </tr>\n",
702 " <tr>\n",
703 " <th>192611</th>\n",
704 " <td>-0.78</td>\n",
705 " <td>2.70</td>\n",
706 " </tr>\n",
707 " </tbody>\n",
708 "</table>\n",
709 "</div>"
710 ],
711 "text/plain": [
712 " Lo 10 Hi 10\n",
713 "192607 -1.45 3.29\n",
714 "192608 5.12 3.70\n",
715 "192609 0.93 0.67\n",
716 "192610 -4.84 -2.43\n",
717 "192611 -0.78 2.70"
718 ]
719 },
720 "execution_count": 10,
721 "metadata": {},
722 "output_type": "execute_result"
723 }
724 ],
725 "source": [
726 "cols = ['Lo 10', 'Hi 10']\n",
727 "returns = me_m[cols]\n",
728 "returns.head()"
729 ]
730 },
731 {
732 "cell_type": "markdown",
733 "metadata": {},
734 "source": [
735 "Note that the data is already given in percentages (i.e 4.5 instead of 0.045) and we typically want to use the actual numbers (i.e. 0.045 instead of 4.5) so we should divide the raw data from the file by 100."
736 ]
737 },
738 {
739 "cell_type": "code",
740 "execution_count": 11,
741 "metadata": {},
742 "outputs": [],
743 "source": [
744 "returns = returns/100"
745 ]
746 },
747 {
748 "cell_type": "code",
749 "execution_count": 12,
750 "metadata": {},
751 "outputs": [
752 {
753 "data": {
754 "text/plain": [
755 "<matplotlib.axes._subplots.AxesSubplot at 0x1202f0eb8>"
756 ]
757 },
758 "execution_count": 12,
759 "metadata": {},
760 "output_type": "execute_result"
761 }
762 ],
763 "source": [
764 "returns.plot()"
765 ]
766 },
767 {
768 "cell_type": "code",
769 "execution_count": 13,
770 "metadata": {},
771 "outputs": [],
772 "source": [
773 "returns.columns = ['SmallCap', 'LargeCap']"
774 ]
775 },
776 {
777 "cell_type": "code",
778 "execution_count": 14,
779 "metadata": {},
780 "outputs": [
781 {
782 "data": {
783 "text/plain": [
784 "<matplotlib.axes._subplots.AxesSubplot at 0x1209290b8>"
785 ]
786 },
787 "execution_count": 14,
788 "metadata": {},
789 "output_type": "execute_result"
790 },
791 {
792 "data": {
793 "image/png": "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\n",
794 "text/plain": [
795 "<Figure size 432x288 with 1 Axes>"
796 ]
797 },
798 "metadata": {
799 "needs_background": "light"
800 },
801 "output_type": "display_data"
802 }
803 ],
804 "source": [
805 "returns.plot()"
806 ]
807 },
808 {
809 "cell_type": "code",
810 "execution_count": 15,
811 "metadata": {},
812 "outputs": [
813 {
814 "data": {
815 "text/plain": [
816 "SmallCap 0.368193\n",
817 "LargeCap 0.186716\n",
818 "dtype: float64"
819 ]
820 },
821 "execution_count": 15,
822 "metadata": {},
823 "output_type": "execute_result"
824 }
825 ],
826 "source": [
827 "annualized_vol = returns.std()*np.sqrt(12)\n",
828 "annualized_vol"
829 ]
830 },
831 {
832 "cell_type": "markdown",
833 "metadata": {},
834 "source": [
835 "We can now compute the annualized returns as follows:"
836 ]
837 },
838 {
839 "cell_type": "code",
840 "execution_count": 16,
841 "metadata": {},
842 "outputs": [
843 {
844 "data": {
845 "text/plain": [
846 "SmallCap 0.012986\n",
847 "LargeCap 0.007423\n",
848 "dtype: float64"
849 ]
850 },
851 "execution_count": 16,
852 "metadata": {},
853 "output_type": "execute_result"
854 }
855 ],
856 "source": [
857 "n_months = returns.shape[0]\n",
858 "return_per_month = (returns+1).prod()**(1/n_months) - 1\n",
859 "return_per_month"
860 ]
861 },
862 {
863 "cell_type": "code",
864 "execution_count": 17,
865 "metadata": {},
866 "outputs": [],
867 "source": [
868 "annualized_return = (return_per_month + 1)**12-1"
869 ]
870 },
871 {
872 "cell_type": "code",
873 "execution_count": 18,
874 "metadata": {},
875 "outputs": [
876 {
877 "data": {
878 "text/plain": [
879 "SmallCap 0.167463\n",
880 "LargeCap 0.092810\n",
881 "dtype: float64"
882 ]
883 },
884 "execution_count": 18,
885 "metadata": {},
886 "output_type": "execute_result"
887 }
888 ],
889 "source": [
890 "annualized_return = (returns+1).prod()**(12/n_months) - 1\n",
891 "annualized_return"
892 ]
893 },
894 {
895 "cell_type": "code",
896 "execution_count": 23,
897 "metadata": {},
898 "outputs": [
899 {
900 "data": {
901 "text/plain": [
902 "SmallCap 0.454825\n",
903 "LargeCap 0.497063\n",
904 "dtype: float64"
905 ]
906 },
907 "execution_count": 23,
908 "metadata": {},
909 "output_type": "execute_result"
910 }
911 ],
912 "source": [
913 "annualized_return/annualized_vol"
914 ]
915 },
916 {
917 "cell_type": "code",
918 "execution_count": 22,
919 "metadata": {},
920 "outputs": [
921 {
922 "data": {
923 "text/plain": [
924 "SmallCap 0.373346\n",
925 "LargeCap 0.336392\n",
926 "dtype: float64"
927 ]
928 },
929 "execution_count": 22,
930 "metadata": {},
931 "output_type": "execute_result"
932 }
933 ],
934 "source": [
935 "riskfree_rate = 0.03\n",
936 "excess_return = annualized_return - riskfree_rate\n",
937 "sharpe_ratio = excess_return/annualized_vol\n",
938 "sharpe_ratio"
939 ]
940 },
941 {
942 "cell_type": "code",
943 "execution_count": null,
944 "metadata": {},
945 "outputs": [],
946 "source": []
947 }
948 ],
949 "metadata": {
950 "kernelspec": {
951 "display_name": "Python 3",
952 "language": "python",
953 "name": "python3"
954 },
955 "language_info": {
956 "codemirror_mode": {
957 "name": "ipython",
958 "version": 3
959 },
960 "file_extension": ".py",
961 "mimetype": "text/x-python",
962 "name": "python",
963 "nbconvert_exporter": "python",
964 "pygments_lexer": "ipython3",
965 "version": "3.8.8"
966 }
967 },
968 "nbformat": 4,
969 "nbformat_minor": 2
970 }