├── Analisis_Oro_SP500.ipynb
├── Beta_indicador.ipynb
├── Dollar_impact.ipynb
├── Duo_renta_variable_bonos.ipynb
├── K-Means.ipynb
├── README.md
├── Relacion_TLT_SPY.ipynb
└── Widgets
├── Ipywidgets_Parte1.ipynb
├── Ipywidgets_Parte2.ipynb
├── README.md
└── SP500_Mensual.csv
/README.md:
--------------------------------------------------------------------------------
1 | # Analisis_con_Python
2 | Soporte para los artículos de análisis con Python de http://estrategiastrading.com/
3 |
--------------------------------------------------------------------------------
/Widgets/Ipywidgets_Parte1.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Utilizar IPython widgets\n",
8 | "La idea de este notebook es aprender a utilizar los widgets de Ipython.
\n",
9 | "\n",
10 | "Artículo completo en Estrategias de Trading: https://estrategiastrading.com/widgets-interactivos-en-python-ipywidgets/\n",
11 | "\n",
12 | "
\n",
13 | "\n",
14 | "(Recordar que hay que instalar primero las librerías que nos falten: en este caso ipywidgets
\n",
15 | "\n",
16 | "pip install ipywidgets
\n",
17 | "\n",
18 | "jupyter nbextension enable --py widgetsnbextension) \n",
19 | "\n",
20 | "En el caso de JupyterLab:
jupyter labextension install @jupyter-widgets/jupyterlab-manager \n",
21 | "
Yo también he necesitado intalar nodejs
\n",
22 | "Más instrucciones sobre intalación y compatibilidades: https://github.com/mwcraig/scipy2017-jupyter-widgets-tutorial/blob/master/README.md\n",
23 | "\n",
24 | "## 1. Cargar librerías y paquetes"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 1,
30 | "metadata": {},
31 | "outputs": [],
32 | "source": [
33 | "import ipywidgets as widgets"
34 | ]
35 | },
36 | {
37 | "cell_type": "markdown",
38 | "metadata": {},
39 | "source": [
40 | "## 2. Ejemplos de widgets sencillos\n",
41 | "\n",
42 | "### 2.1. Widgets numéricos"
43 | ]
44 | },
45 | {
46 | "cell_type": "code",
47 | "execution_count": 2,
48 | "metadata": {},
49 | "outputs": [
50 | {
51 | "data": {
52 | "application/vnd.jupyter.widget-view+json": {
53 | "model_id": "c6709753c062487eb0582ff3b96ca4db",
54 | "version_major": 2,
55 | "version_minor": 0
56 | },
57 | "text/plain": [
58 | "IntSlider(value=0)"
59 | ]
60 | },
61 | "metadata": {},
62 | "output_type": "display_data"
63 | }
64 | ],
65 | "source": [
66 | "slider = widgets.IntSlider()\n",
67 | "display(slider)"
68 | ]
69 | },
70 | {
71 | "cell_type": "markdown",
72 | "metadata": {},
73 | "source": [
74 | "Para poder leer el valor de un widget necesitamos acceder a su propiedad \"value\". Si mueves el cursor del widget, debajo al ejecutar la celda value su valor se actualizará"
75 | ]
76 | },
77 | {
78 | "cell_type": "code",
79 | "execution_count": 4,
80 | "metadata": {},
81 | "outputs": [
82 | {
83 | "data": {
84 | "text/plain": [
85 | "39"
86 | ]
87 | },
88 | "execution_count": 4,
89 | "metadata": {},
90 | "output_type": "execute_result"
91 | }
92 | ],
93 | "source": [
94 | "slider.value"
95 | ]
96 | },
97 | {
98 | "cell_type": "code",
99 | "execution_count": 5,
100 | "metadata": {},
101 | "outputs": [
102 | {
103 | "data": {
104 | "application/vnd.jupyter.widget-view+json": {
105 | "model_id": "f7ff987e95a24154a6d6e14d57a7cfe9",
106 | "version_major": 2,
107 | "version_minor": 0
108 | },
109 | "text/plain": [
110 | "IntSlider(value=0)"
111 | ]
112 | },
113 | "metadata": {},
114 | "output_type": "display_data"
115 | },
116 | {
117 | "data": {
118 | "application/vnd.jupyter.widget-view+json": {
119 | "model_id": "0e9b71f118a84931920786d19385d408",
120 | "version_major": 2,
121 | "version_minor": 0
122 | },
123 | "text/plain": [
124 | "IntText(value=0)"
125 | ]
126 | },
127 | "metadata": {},
128 | "output_type": "display_data"
129 | }
130 | ],
131 | "source": [
132 | "#Conectar el valor de dos widgets\n",
133 | "\n",
134 | "slider = widgets.IntSlider()\n",
135 | "text = widgets.IntText()\n",
136 | "display(slider, text)\n",
137 | "\n",
138 | "widgets.jslink((slider, 'value'), (text, 'value'));"
139 | ]
140 | },
141 | {
142 | "cell_type": "code",
143 | "execution_count": 6,
144 | "metadata": {},
145 | "outputs": [
146 | {
147 | "data": {
148 | "application/vnd.jupyter.widget-view+json": {
149 | "model_id": "85f76f460d254bad9e8b5cee4ca359da",
150 | "version_major": 2,
151 | "version_minor": 0
152 | },
153 | "text/plain": [
154 | "IntSlider(value=0, description='Nivel de riesgo', max=10, orientation='vertical')"
155 | ]
156 | },
157 | "metadata": {},
158 | "output_type": "display_data"
159 | }
160 | ],
161 | "source": [
162 | "widgets.IntSlider(\n",
163 | " min=0,\n",
164 | " max=10,\n",
165 | " step=1,\n",
166 | " orientation='vertical',\n",
167 | " description= \"Nivel de riesgo\")"
168 | ]
169 | },
170 | {
171 | "cell_type": "code",
172 | "execution_count": 7,
173 | "metadata": {},
174 | "outputs": [
175 | {
176 | "data": {
177 | "application/vnd.jupyter.widget-view+json": {
178 | "model_id": "5a74d0e6135d4c738aaf3c376f477eb3",
179 | "version_major": 2,
180 | "version_minor": 0
181 | },
182 | "text/plain": [
183 | "HBox(children=(Label(value='Elija su % de rentabililidad'), FloatSlider(value=0.0)))"
184 | ]
185 | },
186 | "metadata": {},
187 | "output_type": "display_data"
188 | }
189 | ],
190 | "source": [
191 | "# Cuando la descripción es demasiado larga, queda cortada. Entonces es mejor utilizando el widget Label para escribirla \n",
192 | "#y luego añadir el widget que necesitamos\n",
193 | "Rentabilidad = widgets.HBox([widgets.Label(value=\"Elija su % de rentabililidad\"), widgets.FloatSlider()])\n",
194 | "Rentabilidad"
195 | ]
196 | },
197 | {
198 | "cell_type": "code",
199 | "execution_count": 8,
200 | "metadata": {},
201 | "outputs": [
202 | {
203 | "data": {
204 | "application/vnd.jupyter.widget-view+json": {
205 | "model_id": "5a314b989d88419087422a4476b95aa6",
206 | "version_major": 2,
207 | "version_minor": 0
208 | },
209 | "text/plain": [
210 | "BoundedIntText(value=7, description='Text:', max=10)"
211 | ]
212 | },
213 | "metadata": {},
214 | "output_type": "display_data"
215 | }
216 | ],
217 | "source": [
218 | "widgets.BoundedIntText(\n",
219 | " value=7,\n",
220 | " min=0,\n",
221 | " max=10,\n",
222 | " step=1,\n",
223 | " description='Text:',\n",
224 | " disabled=False\n",
225 | ")"
226 | ]
227 | },
228 | {
229 | "cell_type": "code",
230 | "execution_count": 9,
231 | "metadata": {},
232 | "outputs": [
233 | {
234 | "data": {
235 | "application/vnd.jupyter.widget-view+json": {
236 | "model_id": "e830c4e145ec40d6a1dc4f1b1bb66d98",
237 | "version_major": 2,
238 | "version_minor": 0
239 | },
240 | "text/plain": [
241 | "HBox(children=(Label(value='Aquí puedo elegir cualquier valor:'), IntText(value=0)))"
242 | ]
243 | },
244 | "metadata": {},
245 | "output_type": "display_data"
246 | }
247 | ],
248 | "source": [
249 | "widgets.IntText(\n",
250 | " value=7,\n",
251 | " description='',\n",
252 | " ) \n",
253 | "widgets.HBox([widgets.Label('Aquí puedo elegir cualquier valor:'), widgets.IntText()])"
254 | ]
255 | },
256 | {
257 | "cell_type": "markdown",
258 | "metadata": {},
259 | "source": [
260 | "### 2.2 Widgets de selección"
261 | ]
262 | },
263 | {
264 | "cell_type": "code",
265 | "execution_count": 10,
266 | "metadata": {},
267 | "outputs": [
268 | {
269 | "data": {
270 | "application/vnd.jupyter.widget-view+json": {
271 | "model_id": "36a3b31a7f124ef086f386678a6fce90",
272 | "version_major": 2,
273 | "version_minor": 0
274 | },
275 | "text/plain": [
276 | "Checkbox(value=False, description='Casilla de verificación', indent=False)"
277 | ]
278 | },
279 | "metadata": {},
280 | "output_type": "display_data"
281 | }
282 | ],
283 | "source": [
284 | "widgets.Checkbox(\n",
285 | " value=False,\n",
286 | " description='Casilla de verificación',\n",
287 | " disabled=False,\n",
288 | " indent=False\n",
289 | ")"
290 | ]
291 | },
292 | {
293 | "cell_type": "code",
294 | "execution_count": 11,
295 | "metadata": {},
296 | "outputs": [
297 | {
298 | "data": {
299 | "application/vnd.jupyter.widget-view+json": {
300 | "model_id": "ee52251d4fd544c3af320ec5ef84fe25",
301 | "version_major": 2,
302 | "version_minor": 0
303 | },
304 | "text/plain": [
305 | "Dropdown(description='Mes:', options=('Enero', 'Febrero', 'Marzo', 'Abril'), value='Enero')"
306 | ]
307 | },
308 | "metadata": {},
309 | "output_type": "display_data"
310 | }
311 | ],
312 | "source": [
313 | "widgets.Dropdown(\n",
314 | " options=['Enero', 'Febrero', 'Marzo','Abril'],\n",
315 | " value='Enero',\n",
316 | " description='Mes:',\n",
317 | " disabled=False,\n",
318 | ")"
319 | ]
320 | },
321 | {
322 | "cell_type": "code",
323 | "execution_count": 12,
324 | "metadata": {},
325 | "outputs": [
326 | {
327 | "data": {
328 | "application/vnd.jupyter.widget-view+json": {
329 | "model_id": "d19d0b27eee14c408feabcd64222d562",
330 | "version_major": 2,
331 | "version_minor": 0
332 | },
333 | "text/plain": [
334 | "Select(description='ETF:', index=2, options=('SPY', 'TLT', 'GLD'), value='GLD')"
335 | ]
336 | },
337 | "metadata": {},
338 | "output_type": "display_data"
339 | }
340 | ],
341 | "source": [
342 | "widgets.Select(\n",
343 | " options=['SPY', 'TLT', 'GLD'],\n",
344 | " value='GLD',\n",
345 | " # rows=10,\n",
346 | " description='ETF:',\n",
347 | " disabled=False\n",
348 | ")"
349 | ]
350 | },
351 | {
352 | "cell_type": "code",
353 | "execution_count": 13,
354 | "metadata": {},
355 | "outputs": [
356 | {
357 | "data": {
358 | "application/vnd.jupyter.widget-view+json": {
359 | "model_id": "5c7c8db33f9a445cb5da0ddcce136b82",
360 | "version_major": 2,
361 | "version_minor": 0
362 | },
363 | "text/plain": [
364 | "RadioButtons(description='Perfil inversor:', layout=Layout(width='max-content'), options=('Conservador', 'Mode…"
365 | ]
366 | },
367 | "metadata": {},
368 | "output_type": "display_data"
369 | }
370 | ],
371 | "source": [
372 | "widgets.RadioButtons(\n",
373 | " options=['Conservador', 'Moderado', 'Arriesgado'],\n",
374 | " layout={'width': 'max-content'}, \n",
375 | " description='Perfil inversor:',\n",
376 | " disabled=False\n",
377 | ")"
378 | ]
379 | },
380 | {
381 | "cell_type": "code",
382 | "execution_count": 14,
383 | "metadata": {},
384 | "outputs": [
385 | {
386 | "data": {
387 | "application/vnd.jupyter.widget-view+json": {
388 | "model_id": "558aa57c05274af7b10a80603f69355c",
389 | "version_major": 2,
390 | "version_minor": 0
391 | },
392 | "text/plain": [
393 | "VBox(children=(Label(value='Seleccione su perfil inversor:'), RadioButtons(layout=Layout(width='max-content'),…"
394 | ]
395 | },
396 | "metadata": {},
397 | "output_type": "display_data"
398 | }
399 | ],
400 | "source": [
401 | "Perfil= widgets.VBox(\n",
402 | " [widgets.Label(value='Seleccione su perfil inversor:'),\n",
403 | " widgets.RadioButtons(options=['Conservador','Moderado','Arriesgado','Estoy en scalping con CDF... eso lo dice todo '],\n",
404 | " layout={'width': 'max-content'})\n",
405 | " ]\n",
406 | ")\n",
407 | "Perfil"
408 | ]
409 | },
410 | {
411 | "cell_type": "code",
412 | "execution_count": 22,
413 | "metadata": {},
414 | "outputs": [
415 | {
416 | "data": {
417 | "application/vnd.jupyter.widget-view+json": {
418 | "model_id": "7cdbf8432c0d4cfcb56ae6c2cd1dd76d",
419 | "version_major": 2,
420 | "version_minor": 0
421 | },
422 | "text/plain": [
423 | "ToggleButtons(button_style='info', description='Divisa:', options=('Euro', 'Dolar', 'CHF'), value='Euro')"
424 | ]
425 | },
426 | "metadata": {},
427 | "output_type": "display_data"
428 | }
429 | ],
430 | "source": [
431 | "Divisa = widgets.ToggleButtons(\n",
432 | " options=['Euro', 'Dolar', 'CHF'],\n",
433 | " description='Divisa:',\n",
434 | " disabled=False,\n",
435 | " button_style='info')\n",
436 | "Divisa"
437 | ]
438 | },
439 | {
440 | "cell_type": "markdown",
441 | "metadata": {},
442 | "source": [
443 | "### 2.2 Botones"
444 | ]
445 | },
446 | {
447 | "cell_type": "code",
448 | "execution_count": 16,
449 | "metadata": {},
450 | "outputs": [
451 | {
452 | "data": {
453 | "application/vnd.jupyter.widget-view+json": {
454 | "model_id": "5c372f89efb34e28b755f490c529874f",
455 | "version_major": 2,
456 | "version_minor": 0
457 | },
458 | "text/plain": [
459 | "Button(description='Click aquí', style=ButtonStyle())"
460 | ]
461 | },
462 | "metadata": {},
463 | "output_type": "display_data"
464 | }
465 | ],
466 | "source": [
467 | "btn = widgets.Button (description= \"Click aquí\")\n",
468 | "display(btn)\n",
469 | "\n",
470 | "def btn_eventhandler (obj):\n",
471 | " print (\"Gracias por hacer {}, intenta otra vez\".format (obj.description))\n",
472 | " \n",
473 | "btn.on_click(btn_eventhandler)"
474 | ]
475 | },
476 | {
477 | "cell_type": "markdown",
478 | "metadata": {},
479 | "source": [
480 | "### 2.3 Desplegables"
481 | ]
482 | },
483 | {
484 | "cell_type": "code",
485 | "execution_count": 17,
486 | "metadata": {
487 | "scrolled": true
488 | },
489 | "outputs": [
490 | {
491 | "data": {
492 | "application/vnd.jupyter.widget-view+json": {
493 | "model_id": "9e88f24880ff4a7eaf61feb8433e3e1d",
494 | "version_major": 2,
495 | "version_minor": 0
496 | },
497 | "text/plain": [
498 | "HBox(children=(Dropdown(description='Año', options=(2001, 2002, 2003), value=2001), Dropdown(description='Mes'…"
499 | ]
500 | },
501 | "metadata": {},
502 | "output_type": "display_data"
503 | }
504 | ],
505 | "source": [
506 | "Y = widgets.Dropdown(options =[2001,2002,2003],description = 'Año')\n",
507 | "M = widgets.Dropdown(options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], description= 'Mes')\n",
508 | "widgets.HBox([Y, M])"
509 | ]
510 | },
511 | {
512 | "cell_type": "code",
513 | "execution_count": 18,
514 | "metadata": {},
515 | "outputs": [
516 | {
517 | "data": {
518 | "text/plain": [
519 | "2001"
520 | ]
521 | },
522 | "execution_count": 18,
523 | "metadata": {},
524 | "output_type": "execute_result"
525 | }
526 | ],
527 | "source": [
528 | "Y.value"
529 | ]
530 | },
531 | {
532 | "cell_type": "code",
533 | "execution_count": 19,
534 | "metadata": {},
535 | "outputs": [
536 | {
537 | "data": {
538 | "text/plain": [
539 | "(2001, 2002, 2003)"
540 | ]
541 | },
542 | "execution_count": 19,
543 | "metadata": {},
544 | "output_type": "execute_result"
545 | }
546 | ],
547 | "source": [
548 | "Y.options"
549 | ]
550 | },
551 | {
552 | "cell_type": "code",
553 | "execution_count": 20,
554 | "metadata": {},
555 | "outputs": [
556 | {
557 | "data": {
558 | "application/vnd.jupyter.widget-view+json": {
559 | "model_id": "9aed30bc31234c67a302804afe99a901",
560 | "version_major": 2,
561 | "version_minor": 0
562 | },
563 | "text/plain": [
564 | "ColorPicker(value='blue', description='Pick a color')"
565 | ]
566 | },
567 | "metadata": {},
568 | "output_type": "display_data"
569 | }
570 | ],
571 | "source": [
572 | "widgets.ColorPicker(\n",
573 | " concise=False,\n",
574 | " description='Pick a color',\n",
575 | " value='blue',\n",
576 | " disabled=False\n",
577 | ")"
578 | ]
579 | },
580 | {
581 | "cell_type": "markdown",
582 | "metadata": {},
583 | "source": [
584 | "## 3. Layout"
585 | ]
586 | },
587 | {
588 | "cell_type": "markdown",
589 | "metadata": {},
590 | "source": [
591 | "Podemos controlar el layout de los widgets utilizando otros widgets como Box, HBox, VBox, Accordion y Tabs"
592 | ]
593 | },
594 | {
595 | "cell_type": "code",
596 | "execution_count": 23,
597 | "metadata": {},
598 | "outputs": [
599 | {
600 | "data": {
601 | "application/vnd.jupyter.widget-view+json": {
602 | "model_id": "34610e58299c41d8847de527788b69aa",
603 | "version_major": 2,
604 | "version_minor": 0
605 | },
606 | "text/plain": [
607 | "VBox(children=(VBox(children=(Label(value='Seleccione su perfil inversor:'), RadioButtons(layout=Layout(width=…"
608 | ]
609 | },
610 | "metadata": {},
611 | "output_type": "display_data"
612 | }
613 | ],
614 | "source": [
615 | "widgets.VBox([Perfil, Rentabilidad,Divisa])"
616 | ]
617 | },
618 | {
619 | "cell_type": "code",
620 | "execution_count": null,
621 | "metadata": {},
622 | "outputs": [],
623 | "source": []
624 | }
625 | ],
626 | "metadata": {
627 | "kernelspec": {
628 | "display_name": "Python 3",
629 | "language": "python",
630 | "name": "python3"
631 | },
632 | "language_info": {
633 | "codemirror_mode": {
634 | "name": "ipython",
635 | "version": 3
636 | },
637 | "file_extension": ".py",
638 | "mimetype": "text/x-python",
639 | "name": "python",
640 | "nbconvert_exporter": "python",
641 | "pygments_lexer": "ipython3",
642 | "version": "3.7.4"
643 | }
644 | },
645 | "nbformat": 4,
646 | "nbformat_minor": 4
647 | }
648 |
--------------------------------------------------------------------------------
/Widgets/Ipywidgets_Parte2.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Utilizar IPython widgets (parte2)\n",
8 | "\n",
9 | "En este notebook utilizamos widgets para filtrar y explorar un DataFrame
\n",
10 | "Es la segunda parte del artículo sobre widgets interactivos para Jupyter Notebook: https://estrategiastrading.com/widgets-interactivos-en-python-ipywidgets/\n",
11 | "\n",
12 | "En este ejemplo utilizo los datos de los cierres mensuales del SP500 entre 1970 y 2019.\n",
13 | "## 1.Cargar librerías, paquetes y data"
14 | ]
15 | },
16 | {
17 | "cell_type": "code",
18 | "execution_count": 1,
19 | "metadata": {},
20 | "outputs": [],
21 | "source": [
22 | "import pandas as pd\n",
23 | "import numpy as np\n",
24 | "import seaborn as sns\n",
25 | "import matplotlib.pyplot as plt\n",
26 | "%matplotlib inline\n",
27 | "sns.set()\n",
28 | "import ipywidgets as widgets"
29 | ]
30 | },
31 | {
32 | "cell_type": "code",
33 | "execution_count": 2,
34 | "metadata": {},
35 | "outputs": [
36 | {
37 | "data": {
38 | "text/html": [
39 | "
\n",
40 | "\n",
53 | "
\n",
54 | " \n",
55 | " \n",
56 | " | \n",
57 | " Close | \n",
58 | " LogRet | \n",
59 | " Year | \n",
60 | " Month | \n",
61 | "
\n",
62 | " \n",
63 | " Date | \n",
64 | " | \n",
65 | " | \n",
66 | " | \n",
67 | " | \n",
68 | "
\n",
69 | " \n",
70 | " \n",
71 | " \n",
72 | " 2019-08-30 | \n",
73 | " 2926.459961 | \n",
74 | " -0.018257 | \n",
75 | " 2019 | \n",
76 | " 8 | \n",
77 | "
\n",
78 | " \n",
79 | " 2019-09-30 | \n",
80 | " 2976.739990 | \n",
81 | " 0.017035 | \n",
82 | " 2019 | \n",
83 | " 9 | \n",
84 | "
\n",
85 | " \n",
86 | " 2019-10-31 | \n",
87 | " 3037.560059 | \n",
88 | " 0.020226 | \n",
89 | " 2019 | \n",
90 | " 10 | \n",
91 | "
\n",
92 | " \n",
93 | " 2019-11-29 | \n",
94 | " 3140.979980 | \n",
95 | " 0.033480 | \n",
96 | " 2019 | \n",
97 | " 11 | \n",
98 | "
\n",
99 | " \n",
100 | " 2019-12-31 | \n",
101 | " 3230.780029 | \n",
102 | " 0.028189 | \n",
103 | " 2019 | \n",
104 | " 12 | \n",
105 | "
\n",
106 | " \n",
107 | "
\n",
108 | "
"
109 | ],
110 | "text/plain": [
111 | " Close LogRet Year Month\n",
112 | "Date \n",
113 | "2019-08-30 2926.459961 -0.018257 2019 8\n",
114 | "2019-09-30 2976.739990 0.017035 2019 9\n",
115 | "2019-10-31 3037.560059 0.020226 2019 10\n",
116 | "2019-11-29 3140.979980 0.033480 2019 11\n",
117 | "2019-12-31 3230.780029 0.028189 2019 12"
118 | ]
119 | },
120 | "execution_count": 2,
121 | "metadata": {},
122 | "output_type": "execute_result"
123 | }
124 | ],
125 | "source": [
126 | "file = 'SP500_Mensual.csv'\n",
127 | "df = pd.read_csv(file,index_col=\"Date\", parse_dates = True)\n",
128 | "df = df.dropna()\n",
129 | "df.tail()"
130 | ]
131 | },
132 | {
133 | "cell_type": "markdown",
134 | "metadata": {},
135 | "source": [
136 | "## 2. Utilizando interact"
137 | ]
138 | },
139 | {
140 | "cell_type": "code",
141 | "execution_count": 3,
142 | "metadata": {},
143 | "outputs": [],
144 | "source": [
145 | "# utilizando interact \n",
146 | "from ipywidgets import interact"
147 | ]
148 | },
149 | {
150 | "cell_type": "markdown",
151 | "metadata": {},
152 | "source": [
153 | "interact autogenera controles para los argumentos de la función, y luego llama a la función con esos argumentos cuando manipulamos los controles de forma interactiva.
Para usar interact, necesitas definir una función que quieras explorar"
154 | ]
155 | },
156 | {
157 | "cell_type": "markdown",
158 | "metadata": {},
159 | "source": [
160 | "### 2.1 Estadísticas por columna"
161 | ]
162 | },
163 | {
164 | "cell_type": "code",
165 | "execution_count": 4,
166 | "metadata": {},
167 | "outputs": [
168 | {
169 | "data": {
170 | "application/vnd.jupyter.widget-view+json": {
171 | "model_id": "101b80c12107490e9b1124d6c31afdcd",
172 | "version_major": 2,
173 | "version_minor": 0
174 | },
175 | "text/plain": [
176 | "interactive(children=(Dropdown(description='column', options=('Close', 'LogRet', 'Year', 'Month'), value='Clos…"
177 | ]
178 | },
179 | "metadata": {},
180 | "output_type": "display_data"
181 | }
182 | ],
183 | "source": [
184 | "#En este caso con Interact como decorador que es la manera más sencilla de crear un widget\n",
185 | "@interact\n",
186 | "def describe(column=list(df.columns)):\n",
187 | " print(df[column].describe())"
188 | ]
189 | },
190 | {
191 | "cell_type": "markdown",
192 | "metadata": {},
193 | "source": [
194 | "### 2.2 Filtrar por filas según los valores del widget"
195 | ]
196 | },
197 | {
198 | "cell_type": "code",
199 | "execution_count": 5,
200 | "metadata": {},
201 | "outputs": [
202 | {
203 | "data": {
204 | "application/vnd.jupyter.widget-view+json": {
205 | "model_id": "accdd878484f4e90b18ff1037e1ccc13",
206 | "version_major": 2,
207 | "version_minor": 0
208 | },
209 | "text/plain": [
210 | "interactive(children=(Dropdown(description='Column', options=('LogRet',), value='LogRet'), FloatSlider(value=0…"
211 | ]
212 | },
213 | "metadata": {},
214 | "output_type": "display_data"
215 | }
216 | ],
217 | "source": [
218 | "# Con Interact como decorador para crear un widget\n",
219 | "@interact\n",
220 | "def mostrar_valores(\n",
221 | " Column =['LogRet'],\n",
222 | " x=(-0.25,0.25,0.05)):\n",
223 | " display(df.loc[df[Column] >= x])"
224 | ]
225 | },
226 | {
227 | "cell_type": "markdown",
228 | "metadata": {},
229 | "source": [
230 | "Como se ve en este ejemplo, se puede seleccionar el valor de la rentabilidad y podemos ver cuáles periodos han tenido una rentabilidad superior.Todo esto sin necesidad de reejecutar la celda cada vez que modificamos el filtro.
"
231 | ]
232 | },
233 | {
234 | "cell_type": "markdown",
235 | "metadata": {},
236 | "source": [
237 | "### 2.3 Grafico con interact"
238 | ]
239 | },
240 | {
241 | "cell_type": "code",
242 | "execution_count": 6,
243 | "metadata": {},
244 | "outputs": [
245 | {
246 | "data": {
247 | "application/vnd.jupyter.widget-view+json": {
248 | "model_id": "d8a698fd26e04c9cbfe4e3d4acff7179",
249 | "version_major": 2,
250 | "version_minor": 0
251 | },
252 | "text/plain": [
253 | "interactive(children=(IntSlider(value=21, description='bins', max=50, min=1, step=5), Checkbox(value=True, des…"
254 | ]
255 | },
256 | "metadata": {},
257 | "output_type": "display_data"
258 | }
259 | ],
260 | "source": [
261 | "@interact\n",
262 | "def grafico(\n",
263 | " bins=(1,50,5),\n",
264 | " grid= True ,\n",
265 | " color=['blue', 'red','gray'],\n",
266 | " ):\n",
267 | " df.loc[:,'LogRet'].plot(kind='hist', \n",
268 | " bins= bins, \n",
269 | " color=color, \n",
270 | " grid=grid)"
271 | ]
272 | },
273 | {
274 | "cell_type": "markdown",
275 | "metadata": {},
276 | "source": [
277 | "### 2.4. Otra forma de utilizar interact\n"
278 | ]
279 | },
280 | {
281 | "cell_type": "code",
282 | "execution_count": 7,
283 | "metadata": {},
284 | "outputs": [],
285 | "source": [
286 | "# Funcion\n",
287 | "def filtro1(Columna, x):\n",
288 | " return (df.loc[df[Columna]>x])"
289 | ]
290 | },
291 | {
292 | "cell_type": "code",
293 | "execution_count": 8,
294 | "metadata": {},
295 | "outputs": [
296 | {
297 | "data": {
298 | "application/vnd.jupyter.widget-view+json": {
299 | "model_id": "777f5546922a4e66a12cd5db57f4895d",
300 | "version_major": 2,
301 | "version_minor": 0
302 | },
303 | "text/plain": [
304 | "interactive(children=(Dropdown(description='Columna', options=('LogRet',), value='LogRet'), FloatSlider(value=…"
305 | ]
306 | },
307 | "metadata": {},
308 | "output_type": "display_data"
309 | }
310 | ],
311 | "source": [
312 | "# Acotamos la seleccion de valores\n",
313 | "interact( filtro1, \n",
314 | " x=widgets.FloatSlider(\n",
315 | " min= -0.25, \n",
316 | " max=0.16, \n",
317 | " step= 0.1, \n",
318 | " value=0, \n",
319 | " description = 'Mayor a'), \n",
320 | " Columna =['LogRet']);"
321 | ]
322 | },
323 | {
324 | "cell_type": "markdown",
325 | "metadata": {},
326 | "source": [
327 | "### 2.5 Desplegable\n",
328 | "Podemos hacer otro ejemplo donde si en vez de tener un deslizador tenemos un desplegable para filtrar con los años o los meses que necesitamos analizar. Para esto puedo sacar una lista de todos los años y todos los meses presentes en el df"
329 | ]
330 | },
331 | {
332 | "cell_type": "code",
333 | "execution_count": 9,
334 | "metadata": {},
335 | "outputs": [],
336 | "source": [
337 | "#primero saco una lista con los años y meses presentes en el dataframe\n",
338 | "ALL = 'ALL'\n",
339 | "def lista_valores(array):\n",
340 | " unique = array.unique().tolist()\n",
341 | " unique.sort()\n",
342 | " unique.insert(0, ALL)\n",
343 | " return unique"
344 | ]
345 | },
346 | {
347 | "cell_type": "code",
348 | "execution_count": 10,
349 | "metadata": {},
350 | "outputs": [],
351 | "source": [
352 | "lista_year = lista_valores(df.Year)\n",
353 | "lista_month = lista_valores(df.Month)"
354 | ]
355 | },
356 | {
357 | "cell_type": "code",
358 | "execution_count": 11,
359 | "metadata": {},
360 | "outputs": [],
361 | "source": [
362 | "#funcion\n",
363 | "def filtro2(year, month):\n",
364 | " return(df.loc[(df['Year'] == year) & (df['Month'] == month)])"
365 | ]
366 | },
367 | {
368 | "cell_type": "code",
369 | "execution_count": 12,
370 | "metadata": {},
371 | "outputs": [
372 | {
373 | "data": {
374 | "application/vnd.jupyter.widget-view+json": {
375 | "model_id": "555327fe6e5c4ad9b772f15e5da9cbf2",
376 | "version_major": 2,
377 | "version_minor": 0
378 | },
379 | "text/plain": [
380 | "interactive(children=(Dropdown(description='year', options=('ALL', 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1…"
381 | ]
382 | },
383 | "metadata": {},
384 | "output_type": "display_data"
385 | }
386 | ],
387 | "source": [
388 | "interact (filtro2, \n",
389 | " year = lista_year,\n",
390 | " month = lista_month);"
391 | ]
392 | },
393 | {
394 | "cell_type": "markdown",
395 | "metadata": {},
396 | "source": [
397 | "En este filtro por desplegable hay un problema porque el dataframe no responde bien con la opción o. Por ejemplo, da error si busco todos los meses de un mismo año, o todos los años para un mismo mes.
\n",
398 | "Para solucionarlo tenemos que entrar el los valores del output del widget y hacer una función que interactúe con todas las posibles selecciones."
399 | ]
400 | },
401 | {
402 | "cell_type": "markdown",
403 | "metadata": {},
404 | "source": [
405 | "## 3. Crear nuestros propios widgets\n",
406 | "\n",
407 | "Si queremos que las opciones de un widget dependan del valor de otro, utilizamos la función de observación. Para esto tenemos que crear primero nuestros propios widgets"
408 | ]
409 | },
410 | {
411 | "cell_type": "code",
412 | "execution_count": 13,
413 | "metadata": {},
414 | "outputs": [],
415 | "source": [
416 | "from IPython.display import display"
417 | ]
418 | },
419 | {
420 | "cell_type": "code",
421 | "execution_count": 14,
422 | "metadata": {},
423 | "outputs": [
424 | {
425 | "data": {
426 | "application/vnd.jupyter.widget-view+json": {
427 | "model_id": "9f0ae07bd36c4e50b9586f230b0c0288",
428 | "version_major": 2,
429 | "version_minor": 0
430 | },
431 | "text/plain": [
432 | "VBox(children=(Dropdown(description='Year', options=('ALL', 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 19…"
433 | ]
434 | },
435 | "metadata": {},
436 | "output_type": "display_data"
437 | }
438 | ],
439 | "source": [
440 | "output = widgets.Output()\n",
441 | "outout_plot = widgets.Output()\n",
442 | "\n",
443 | "#creo desplegable\n",
444 | "\n",
445 | "dropdown_year = widgets.Dropdown(options = lista_year, description = 'Year')\n",
446 | "dropdown_month = widgets.Dropdown(options = lista_month, description = 'Month')\n",
447 | "\n",
448 | "#funcion filtrar df & plot\n",
449 | "\n",
450 | "def filtro (Year, Month):\n",
451 | " output.clear_output()\n",
452 | " outout_plot.clear_output()\n",
453 | " \n",
454 | " if (Year == ALL) & (Month == ALL):\n",
455 | " filtro = df\n",
456 | " elif (Year == ALL):\n",
457 | " filtro = df.loc[(df['Month'] == Month)]\n",
458 | " elif (Month == ALL):\n",
459 | " filtro = df.loc[(df['Year']==Year)]\n",
460 | " else:\n",
461 | " filtro = df.loc[(df['Year']== Year) & (df['Month']== Month)]\n",
462 | " \n",
463 | " with output:\n",
464 | " display(filtro)\n",
465 | " \n",
466 | " with outout_plot:\n",
467 | " plt.figure (figsize= (10,12))\n",
468 | " plt.subplot(211) \n",
469 | " filtro['LogRet'].plot(kind = 'hist', bins = 12, grid=True)\n",
470 | " avg = filtro['LogRet'].mean()\n",
471 | " plt.axvline(x=avg, color='r', linestyle ='--', label= 'Media')\n",
472 | " plt.legend()\n",
473 | " plt.title('Histograma de frecuencias', loc='right')\n",
474 | " plt.xlabel('Rentabilidad')\n",
475 | " \n",
476 | " plt.subplot(212)\n",
477 | " filtro['LogRet'].plot.bar()\n",
478 | " plt.title('Diagrama de barras', loc='right')\n",
479 | " plt.ylabel('Rentabilidad')\n",
480 | " plt.axhline(y=avg, color='r', linestyle ='--', label= 'Media')\n",
481 | " plt.legend()\n",
482 | " plt.show()\n",
483 | " \n",
484 | "def dropdown_year_eventhandler (change):\n",
485 | " filtro(change.new, dropdown_month.value)\n",
486 | " \n",
487 | "def dropdown_month_eventhander(change):\n",
488 | " filtro(dropdown_year.value, change.new)\n",
489 | " \n",
490 | "dropdown_year.observe(dropdown_year_eventhandler, names ='value')\n",
491 | "dropdown_month.observe (dropdown_month_eventhander, names = 'value')\n",
492 | "\n",
493 | "# widgets layout\n",
494 | "tab = widgets.Tab([output, outout_plot])\n",
495 | "tab.set_title(0,'Datos')\n",
496 | "tab.set_title(1,'Gráficos')\n",
497 | "dashboard = widgets.VBox([dropdown_year,dropdown_month, tab])\n",
498 | "display(dashboard);"
499 | ]
500 | },
501 | {
502 | "cell_type": "code",
503 | "execution_count": null,
504 | "metadata": {},
505 | "outputs": [],
506 | "source": []
507 | }
508 | ],
509 | "metadata": {
510 | "kernelspec": {
511 | "display_name": "Python 3",
512 | "language": "python",
513 | "name": "python3"
514 | },
515 | "language_info": {
516 | "codemirror_mode": {
517 | "name": "ipython",
518 | "version": 3
519 | },
520 | "file_extension": ".py",
521 | "mimetype": "text/x-python",
522 | "name": "python",
523 | "nbconvert_exporter": "python",
524 | "pygments_lexer": "ipython3",
525 | "version": "3.7.4"
526 | }
527 | },
528 | "nbformat": 4,
529 | "nbformat_minor": 4
530 | }
531 |
--------------------------------------------------------------------------------
/Widgets/README.md:
--------------------------------------------------------------------------------
1 | Notebooks del artículo de Estrategias de Trading: https://estrategiastrading.com/widgets-interactivos-en-python-ipywidgets/
2 |
--------------------------------------------------------------------------------
/Widgets/SP500_Mensual.csv:
--------------------------------------------------------------------------------
1 | Date,Close,LogRet,Year,Month
2 | 1970-01-30,85.0199966430664,,1970,1
3 | 1970-02-27,89.5,0.05135214183421244,1970,2
4 | 1970-03-31,89.62999725341797,0.001451429444903063,1970,3
5 | 1970-04-30,81.5199966430664,-0.09484170699050765,1970,4
6 | 1970-05-29,76.55000305175781,-0.06290418576531032,1970,5
7 | 1970-06-30,72.72000122070312,-0.051327695314324906,1970,6
8 | 1970-07-31,78.05000305175781,0.07073321940590649,1970,7
9 | 1970-08-31,81.5199966430664,0.043498661673728733,1970,8
10 | 1970-09-30,84.30000305175781,0.033533553473764854,1970,9
11 | 1970-10-30,83.25,-0.012533772348416683,1970,10
12 | 1970-11-30,87.19999694824219,0.04635616705715773,1970,11
13 | 1970-12-31,92.1500015258789,0.055213404756763396,1970,12
14 | 1971-01-29,95.87999725341795,0.03967968024567181,1971,1
15 | 1971-02-26,96.75,0.009032950989745103,1971,2
16 | 1971-03-31,100.30999755859376,0.03613503464688961,1971,3
17 | 1971-04-30,103.9499969482422,0.03564461838930111,1971,4
18 | 1971-05-31,99.62999725341795,-0.04244668845713839,1971,5
19 | 1971-06-30,98.6999969482422,-0.009378380969040201,1971,6
20 | 1971-07-30,95.58000183105469,-0.03212130321259199,1971,7
21 | 1971-08-31,99.02999877929688,0.03545920989930096,1971,8
22 | 1971-09-30,98.33999633789062,-0.006991997462085564,1971,9
23 | 1971-10-29,94.2300033569336,-0.042692186900969986,1971,10
24 | 1971-11-30,93.98999786376952,-0.0025502669396209043,1971,11
25 | 1971-12-31,102.08999633789062,0.08266637040560543,1971,12
26 | 1972-01-31,103.94000244140624,0.01795909175936572,1972,1
27 | 1972-02-29,106.56999969482422,0.024988210300339375,1972,2
28 | 1972-03-31,107.1999969482422,0.005894176799564832,1972,3
29 | 1972-04-28,107.66999816894531,0.0043747566526413095,1972,4
30 | 1972-05-31,109.52999877929688,0.017127496369282014,1972,5
31 | 1972-06-30,107.13999938964844,-0.022062088434686267,1972,6
32 | 1972-07-31,107.38999938964844,0.002330677430572692,1972,7
33 | 1972-08-31,111.08999633789062,0.033873588441761804,1972,8
34 | 1972-09-29,110.5500030517578,-0.0048727157197010484,1972,9
35 | 1972-10-31,111.58000183105469,0.009273903918941784,1972,10
36 | 1972-11-30,116.66999816894531,0.044607582313836325,1972,11
37 | 1972-12-29,118.0500030517578,0.011758868241462217,1972,12
38 | 1973-01-31,116.02999877929688,-0.01725952154404986,1973,1
39 | 1973-02-28,111.68000030517578,-0.03821112609221888,1973,2
40 | 1973-03-30,111.5199966430664,-0.0014337248360680732,1973,3
41 | 1973-04-30,106.97000122070312,-0.04165548418090559,1973,4
42 | 1973-05-31,104.9499969482422,-0.01906441554124516,1973,5
43 | 1973-06-29,104.26000213623048,-0.006596217359020606,1973,6
44 | 1973-07-31,108.22000122070312,0.037278403665004234,1973,7
45 | 1973-08-31,104.25,-0.03737434281550733,1973,8
46 | 1973-09-28,108.43000030517578,0.03931294561967569,1973,9
47 | 1973-10-31,108.29000091552734,-0.0012919842038945362,1973,10
48 | 1973-11-30,95.95999908447266,-0.12088139366391637,1973,11
49 | 1973-12-31,97.5500030517578,0.016433669922380822,1973,12
50 | 1974-01-31,96.56999969482422,-0.01009696753448086,1974,1
51 | 1974-02-28,96.22000122070312,-0.0036308818607837523,1974,2
52 | 1974-03-29,93.9800033569336,-0.02355521956356288,1974,3
53 | 1974-04-30,90.30999755859376,-0.03983386016524193,1974,4
54 | 1974-05-31,87.27999877929688,-0.034126841690329535,1974,5
55 | 1974-06-28,86.0,-0.014774031285250011,1974,6
56 | 1974-07-31,79.30999755859375,-0.0809831029413619,1974,7
57 | 1974-08-30,72.1500015258789,-0.0946168869435633,1974,8
58 | 1974-09-30,63.540000915527344,-0.12707766311853508,1974,9
59 | 1974-10-31,73.9000015258789,0.15104320535199633,1974,10
60 | 1974-11-29,69.97000122070311,-0.05464625239814502,1974,11
61 | 1974-12-31,68.55999755859375,-0.020357357524150466,1974,12
62 | 1975-01-31,76.9800033569336,0.1158364527837179,1975,1
63 | 1975-02-28,81.58999633789062,0.05816096909294988,1975,2
64 | 1975-03-31,83.36000061035156,0.02146192477051656,1975,3
65 | 1975-04-30,87.30000305175781,0.04618191247575787,1975,4
66 | 1975-05-30,91.1500015258789,0.04315602006228758,1975,5
67 | 1975-06-30,95.19000244140624,0.04336840204595305,1975,6
68 | 1975-07-31,88.75,-0.07005149155540558,1975,7
69 | 1975-08-29,86.87999725341797,-0.021295603783413775,1975,8
70 | 1975-09-30,83.87000274658203,-0.03525981082770535,1975,9
71 | 1975-10-31,89.04000091552734,0.05981770350508597,1975,10
72 | 1975-11-28,91.23999786376952,0.024407656753384188,1975,11
73 | 1975-12-31,90.19000244140624,-0.011574790755671138,1975,12
74 | 1976-01-30,100.86000061035156,0.11181483945284754,1976,1
75 | 1976-02-27,99.70999908447266,-0.011467459041251793,1976,2
76 | 1976-03-31,102.7699966430664,0.030227485313651492,1976,3
77 | 1976-04-30,101.63999938964844,-0.011056296525522313,1976,4
78 | 1976-05-31,100.18000030517578,-0.014468581471184905,1976,5
79 | 1976-06-30,104.27999877929688,0.04011100638354215,1976,6
80 | 1976-07-30,103.44000244140624,-0.008087819293536747,1976,7
81 | 1976-08-31,102.91000366210938,-0.005136902632196794,1976,8
82 | 1976-09-30,105.23999786376952,0.02238858043988312,1976,9
83 | 1976-10-29,102.9000015258789,-0.02248577820467812,1976,10
84 | 1976-11-30,102.0999984741211,-0.0078049474430841315,1976,11
85 | 1976-12-31,107.45999908447266,0.05116596655529726,1976,12
86 | 1977-01-31,102.02999877929688,-0.05185180105791698,1977,1
87 | 1977-02-28,99.81999969482422,-0.021898314738852953,1977,2
88 | 1977-03-31,98.41999816894531,-0.014124544150868168,1977,3
89 | 1977-04-29,98.44000244140624,0.0002032334904784605,1977,4
90 | 1977-05-31,96.12000274658205,-0.023849810881032774,1977,5
91 | 1977-06-30,100.4800033569336,0.04436129668608135,1977,6
92 | 1977-07-29,98.8499984741211,-0.016355201948541342,1977,7
93 | 1977-08-31,96.7699966430664,-0.02126653997728578,1977,8
94 | 1977-09-30,96.52999877929688,-0.002483165988351743,1977,9
95 | 1977-10-31,92.33999633789062,-0.044376450794811007,1977,10
96 | 1977-11-30,94.83000183105469,0.026608456784577683,1977,11
97 | 1977-12-30,95.0999984741211,0.002843119301902064,1977,12
98 | 1978-01-31,89.25,-0.0634875328466018,1978,1
99 | 1978-02-28,87.04000091552734,-0.025073627033649792,1978,2
100 | 1978-03-31,89.20999908447266,0.02462533703698444,1978,3
101 | 1978-04-28,96.83000183105469,0.08196375187034999,1978,4
102 | 1978-05-31,97.23999786376952,0.004225244945849305,1978,5
103 | 1978-06-30,95.52999877929688,-0.01774180597558317,1978,6
104 | 1978-07-31,100.68000030517578,0.05250685179456127,1978,7
105 | 1978-08-31,103.29000091552734,0.02559340158394008,1978,8
106 | 1978-09-29,102.54000091552734,-0.007287599598156724,1978,9
107 | 1978-10-31,93.1500015258789,-0.09604186185556784,1978,10
108 | 1978-11-30,94.6999969482422,0.01650285453802436,1978,11
109 | 1978-12-29,96.11000061035156,0.014779407219243978,1978,12
110 | 1979-01-31,99.93000030517578,0.03897656874184907,1979,1
111 | 1979-02-28,96.27999877929688,-0.0372093436914005,1979,2
112 | 1979-03-30,101.58999633789062,0.05368446881932787,1979,3
113 | 1979-04-30,101.76000213623048,0.001672051529121532,1979,4
114 | 1979-05-31,99.08000183105469,-0.02668949748291638,1979,5
115 | 1979-06-29,102.91000366210938,0.037927232331827376,1979,6
116 | 1979-07-31,103.80999755859376,0.008707426253574901,1979,7
117 | 1979-08-31,109.31999969482422,0.05171707658115654,1979,8
118 | 1979-09-28,109.31999969482422,0.0,1979,9
119 | 1979-10-31,101.81999969482422,-0.07107281279130362,1979,10
120 | 1979-11-30,106.16000366210938,0.0417408790431022,1979,11
121 | 1979-12-31,107.94000244140624,0.01662811528859187,1979,12
122 | 1980-01-31,114.16000366210938,0.0560254654386485,1980,1
123 | 1980-02-29,113.66000366210938,-0.004389437158488718,1980,2
124 | 1980-03-31,102.08999633789062,-0.10735682677929415,1980,3
125 | 1980-04-30,106.29000091552734,0.040316474849434236,1980,4
126 | 1980-05-30,111.23999786376952,0.04551879400299086,1980,5
127 | 1980-06-30,114.23999786376952,0.026611469729811432,1980,6
128 | 1980-07-31,121.66999816894531,0.06301096685822749,1980,7
129 | 1980-08-29,122.37999725341795,0.005818488841326186,1980,8
130 | 1980-09-30,125.45999908447266,0.024856039779900918,1980,9
131 | 1980-10-31,127.47000122070312,0.015894076999993345,1980,10
132 | 1980-11-28,140.52000427246094,0.09746880543104641,1980,11
133 | 1980-12-31,135.75999450683594,-0.034461277338618146,1980,12
134 | 1981-01-30,129.55000305175778,-0.04682164989893334,1981,1
135 | 1981-02-27,131.27000427246094,0.01318937279771859,1981,2
136 | 1981-03-31,136.0,0.03539858237361315,1981,3
137 | 1981-04-30,132.80999755859378,-0.023735368706591764,1981,4
138 | 1981-05-29,132.58999633789062,-0.0016578845226344896,1981,5
139 | 1981-06-30,131.21000671386722,-0.010462488220334798,1981,6
140 | 1981-07-31,130.91999816894528,-0.0022127086395693496,1981,7
141 | 1981-08-31,122.79000091552734,-0.06411084901845943,1981,8
142 | 1981-09-30,116.18000030517578,-0.05533487143732607,1981,9
143 | 1981-10-30,121.88999938964844,0.047978278469211766,1981,10
144 | 1981-11-30,126.3499984741211,0.03593682809725074,1981,11
145 | 1981-12-31,122.5500030517578,-0.030536686881333708,1981,12
146 | 1982-01-29,120.4000015258789,-0.017699589328131538,1982,1
147 | 1982-02-26,113.11000061035156,-0.06245874360875536,1982,2
148 | 1982-03-31,111.95999908447266,-0.010219145469397617,1982,3
149 | 1982-04-30,116.44000244140624,0.03923448337451685,1982,4
150 | 1982-05-31,111.87999725341795,-0.03994929606009556,1982,5
151 | 1982-06-30,109.61000061035156,-0.020498226988377333,1982,6
152 | 1982-07-30,107.08999633789062,-0.023259048579799213,1982,7
153 | 1982-08-31,119.51000213623048,0.10973049953747349,1982,8
154 | 1982-09-30,120.41999816894531,0.007585549077033349,1982,9
155 | 1982-10-29,133.72000122070312,0.10476245384996563,1982,10
156 | 1982-11-30,138.52999877929688,0.035338829177257836,1982,11
157 | 1982-12-31,140.63999938964844,0.015116529739096052,1982,12
158 | 1983-01-31,145.3000030517578,0.032597161982335976,1983,1
159 | 1983-02-28,148.05999755859375,0.01881698894626105,1983,2
160 | 1983-03-31,152.9600067138672,0.03255891267040134,1983,3
161 | 1983-04-29,164.42999267578125,0.07230840998700305,1983,4
162 | 1983-05-31,162.38999938964844,-0.012484057464610565,1983,5
163 | 1983-06-30,167.63999938964844,0.031817973697581436,1983,6
164 | 1983-07-29,162.55999755859375,-0.030771670044400068,1983,7
165 | 1983-08-31,164.39999389648438,0.011255296124446978,1983,8
166 | 1983-09-30,166.07000732421875,0.010106984825791976,1983,9
167 | 1983-10-31,163.5500030517578,-0.015290657677991426,1983,10
168 | 1983-11-30,166.39999389648438,0.01727571906345471,1983,11
169 | 1983-12-30,164.92999267578125,-0.008873394655310562,1983,12
170 | 1984-01-31,163.41000366210938,-0.00925869457776507,1984,1
171 | 1984-02-29,157.05999755859375,-0.03963452007193968,1984,2
172 | 1984-03-30,159.17999267578125,0.01340770896321164,1984,3
173 | 1984-04-30,160.0500030517578,0.0054506941178766866,1984,4
174 | 1984-05-31,150.5500030517578,-0.061191010284930236,1984,5
175 | 1984-06-29,153.17999267578125,0.017318377468519053,1984,6
176 | 1984-07-31,150.66000366210938,-0.016587985962328133,1984,7
177 | 1984-08-31,166.67999267578125,0.10105009590779446,1984,8
178 | 1984-09-28,166.10000610351562,-0.003485709247176061,1984,9
179 | 1984-10-31,166.08999633789062,-6.026530331659785e-05,1984,10
180 | 1984-11-30,163.5800018310547,-0.015227609561499378,1984,11
181 | 1984-12-31,167.24000549316406,0.02212776083389567,1984,12
182 | 1985-01-31,179.6300048828125,0.07146926762899763,1985,1
183 | 1985-02-28,181.17999267578125,0.008591764852689643,1985,2
184 | 1985-03-29,180.66000366210938,-0.0028741398236222793,1985,3
185 | 1985-04-30,179.8300018310547,-0.004604861633175084,1985,4
186 | 1985-05-31,189.5500030517578,0.05264088770311037,1985,5
187 | 1985-06-28,191.8500061035156,0.01206099044460096,1985,6
188 | 1985-07-31,190.9199981689453,-0.004859365959954509,1985,7
189 | 1985-08-30,188.6300048828125,-0.012067032303709091,1985,8
190 | 1985-09-30,182.0800018310547,-0.035341289249010366,1985,9
191 | 1985-10-31,189.82000732421875,0.04163013229313428,1985,10
192 | 1985-11-29,202.1699981689453,0.06303262528181097,1985,11
193 | 1985-12-31,211.27999877929688,0.04407534364199073,1985,12
194 | 1986-01-31,211.77999877929688,0.002363732027071741,1986,1
195 | 1986-02-28,226.9199981689453,0.06904953015090953,1986,2
196 | 1986-03-31,238.8999938964844,0.051447504394149135,1986,3
197 | 1986-04-30,235.5200042724609,-0.014249175102296618,1986,4
198 | 1986-05-30,247.3500061035156,0.04900850866828588,1986,5
199 | 1986-06-30,250.83999633789062,0.014010908726095117,1986,6
200 | 1986-07-31,236.1199951171875,-0.06047514138231591,1986,7
201 | 1986-08-29,252.92999267578125,0.06877261195208018,1986,8
202 | 1986-09-30,231.32000732421875,-0.08931067669247028,1986,9
203 | 1986-10-31,243.97999572753903,0.053284172256339524,1986,10
204 | 1986-11-28,249.22000122070312,0.021249808203746667,1986,11
205 | 1986-12-31,242.1699981689453,-0.02869609410143603,1986,12
206 | 1987-01-30,274.07998657226557,0.1237800342724027,1987,1
207 | 1987-02-27,284.20001220703125,0.03625827303147311,1987,2
208 | 1987-03-31,291.70001220703125,0.026047660106314652,1987,3
209 | 1987-04-30,288.3599853515625,-0.011516269984325866,1987,4
210 | 1987-05-29,290.1000061035156,0.006016063429464147,1987,5
211 | 1987-06-30,304.0,0.04680198923951284,1987,6
212 | 1987-07-31,318.6600036621094,0.047097013748356176,1987,7
213 | 1987-08-31,329.79998779296875,0.03436165795748369,1987,8
214 | 1987-09-30,321.8299865722656,-0.02446295901611606,1987,9
215 | 1987-10-30,251.7899932861328,-0.24542803399765045,1987,10
216 | 1987-11-30,230.3000030517578,-0.0892125600204281,1987,11
217 | 1987-12-31,247.0800018310547,0.07032935816060792,1987,12
218 | 1988-01-29,257.07000732421875,0.03963627160180749,1988,1
219 | 1988-02-29,267.82000732421875,0.040966690574679276,1988,2
220 | 1988-03-31,258.8900146484375,-0.033911822773448286,1988,3
221 | 1988-04-29,261.32998657226557,0.009380607475103275,1988,4
222 | 1988-05-31,262.16000366210943,0.0031710932429280803,1988,5
223 | 1988-06-30,273.5,0.042346603502490865,1988,6
224 | 1988-07-29,272.01998901367193,-0.005426069245371146,1988,7
225 | 1988-08-31,261.51998901367193,-0.03936483221022424,1988,8
226 | 1988-09-30,271.91000366210943,0.03896042225106555,1988,9
227 | 1988-10-31,278.97000122070307,0.02563311087646003,1988,10
228 | 1988-11-30,273.70001220703125,-0.019071592887292432,1988,11
229 | 1988-12-30,277.72000122070307,0.014580755633843978,1988,12
230 | 1989-01-31,297.4700012207031,0.06869996738792139,1989,1
231 | 1989-02-28,288.8599853515625,-0.02937129270662009,1989,2
232 | 1989-03-31,294.8699951171875,0.02059247372562467,1989,3
233 | 1989-04-28,309.6400146484375,0.04887581495703053,1989,4
234 | 1989-05-31,320.5199890136719,0.03453426298881901,1989,5
235 | 1989-06-30,317.9800109863281,-0.007956120362355712,1989,6
236 | 1989-07-31,346.0799865722656,0.08468140113430067,1989,7
237 | 1989-08-31,351.45001220703125,0.015397564950013098,1989,8
238 | 1989-09-29,349.1499938964844,-0.006565876544277316,1989,9
239 | 1989-10-31,340.3599853515625,-0.025497773867687812,1989,10
240 | 1989-11-30,345.989990234375,0.016406006737505585,1989,11
241 | 1989-12-29,353.3999938964844,0.021190697933962,1989,12
242 | 1990-01-31,329.0799865722656,-0.0712997011178853,1990,1
243 | 1990-02-28,331.8900146484375,0.008502791354483286,1990,2
244 | 1990-03-30,339.94000244140625,0.02396550577972789,1990,3
245 | 1990-04-30,330.79998779296875,-0.027255212383089145,1990,4
246 | 1990-05-31,361.2300109863281,0.08800097873791124,1990,5
247 | 1990-06-29,358.0199890136719,-0.008926084910209298,1990,6
248 | 1990-07-31,356.1499938964844,-0.005236846788815086,1990,7
249 | 1990-08-31,322.55999755859375,-0.09906281541277195,1990,8
250 | 1990-09-28,306.04998779296875,-0.05254071046276909,1990,9
251 | 1990-10-31,304.0,-0.0067207460051141865,1990,10
252 | 1990-11-30,322.2200012207031,0.0582068444450341,1990,11
253 | 1990-12-31,330.2200012207031,0.024524556849066848,1990,12
254 | 1991-01-31,343.92999267578125,0.04067902429874781,1991,1
255 | 1991-02-28,367.0700073242188,0.06511445851577591,1991,2
256 | 1991-03-29,375.2200012207031,0.021959938353917963,1991,3
257 | 1991-04-30,375.3399963378906,0.00031974823758318394,1991,4
258 | 1991-05-31,389.8299865722656,0.03787844010543928,1991,5
259 | 1991-06-28,371.1600036621094,-0.04907746586014916,1991,6
260 | 1991-07-31,387.80999755859375,0.04388227631696129,1991,7
261 | 1991-08-30,395.42999267578125,0.019458239201722627,1991,8
262 | 1991-09-30,387.8599853515625,-0.01932934986955992,1991,9
263 | 1991-10-31,392.45001220703125,0.011764759676739622,1991,10
264 | 1991-11-29,375.2200012207031,-0.04489664780873692,1991,11
265 | 1991-12-31,417.0899963378906,0.10578949320065512,1991,12
266 | 1992-01-31,408.7799987792969,-0.020124906041997903,1992,1
267 | 1992-02-28,412.70001220703125,0.00954385530957591,1992,2
268 | 1992-03-31,403.6900024414063,-0.02207370360663763,1992,3
269 | 1992-04-30,414.95001220703125,0.02751079773217402,1992,4
270 | 1992-05-29,415.3500061035156,0.0009634925174193398,1992,5
271 | 1992-06-30,408.1400146484375,-0.017511264288296857,1992,6
272 | 1992-07-31,424.2099914550781,0.03861830680387701,1992,7
273 | 1992-08-31,414.0299987792969,-0.024290163475820137,1992,8
274 | 1992-09-30,417.7999877929688,0.009064387885348246,1992,9
275 | 1992-10-30,418.67999267578125,0.0021040675880250603,1992,10
276 | 1992-11-30,431.3500061035156,0.02981295217929958,1992,11
277 | 1992-12-31,435.7099914550781,0.01005702514832052,1992,12
278 | 1993-01-29,438.7799987792969,0.00702128090816867,1993,1
279 | 1993-02-26,443.3800048828125,0.01042905544963535,1993,2
280 | 1993-03-31,451.6700134277344,0.018524653242830702,1993,3
281 | 1993-04-30,440.1900024414063,-0.0257453969876007,1993,4
282 | 1993-05-31,450.1900024414063,0.022463263865184047,1993,5
283 | 1993-06-30,450.5299987792969,0.0007549434975970826,1993,6
284 | 1993-07-30,448.1300048828125,-0.00534128500779385,1993,7
285 | 1993-08-31,463.55999755859375,0.03385244141081678,1993,8
286 | 1993-09-30,458.92999267578125,-0.010038144175098296,1993,9
287 | 1993-10-29,467.8299865722656,0.01920727633729946,1993,10
288 | 1993-11-30,461.7900085449219,-0.012994692567740884,1993,11
289 | 1993-12-31,466.45001220703125,0.0100405987830392,1993,12
290 | 1994-01-31,481.6099853515625,0.03198376790603685,1994,1
291 | 1994-02-28,467.1400146484375,-0.030505597516047978,1994,2
292 | 1994-03-31,445.7699890136719,-0.04682593067640006,1994,3
293 | 1994-04-29,450.9100036621094,0.011464671878566257,1994,4
294 | 1994-05-31,456.5,0.012320928865824143,1994,5
295 | 1994-06-30,444.2699890136719,-0.027156239046446373,1994,6
296 | 1994-07-29,458.260009765625,0.031004268952846914,1994,7
297 | 1994-08-31,475.489990234375,0.03690910079063592,1994,8
298 | 1994-09-30,462.7099914550781,-0.027245341243997245,1994,9
299 | 1994-10-31,472.3500061035156,0.02061975964867635,1994,10
300 | 1994-11-30,453.6900024414063,-0.040306098324759176,1994,11
301 | 1994-12-30,459.2699890136719,0.012224097678835477,1994,12
302 | 1995-01-31,470.4200134277344,0.023987692740721656,1995,1
303 | 1995-02-28,487.3900146484375,0.03543871277481525,1995,2
304 | 1995-03-31,500.7099914550781,0.026962420103642692,1995,3
305 | 1995-04-28,514.7100219726561,0.027576603842838665,1995,4
306 | 1995-05-31,533.4000244140625,0.03566797956572465,1995,5
307 | 1995-06-30,544.75,0.02105531630617108,1995,6
308 | 1995-07-31,562.0599975585939,0.031281627592512073,1995,7
309 | 1995-08-31,561.8800048828125,-0.00032028876439849086,1995,8
310 | 1995-09-29,584.4099731445312,0.03931443269158841,1995,9
311 | 1995-10-31,581.5,-0.004991773385712328,1995,10
312 | 1995-11-30,605.3699951171875,0.04022886132135195,1995,11
313 | 1995-12-29,615.9299926757812,0.017293475541395154,1995,12
314 | 1996-01-31,636.02001953125,0.03209673127365065,1996,1
315 | 1996-02-29,640.4299926757812,0.006909774215232645,1996,2
316 | 1996-03-29,645.5,0.007885395976347631,1996,3
317 | 1996-04-30,654.1699829101562,0.013342020105707064,1996,4
318 | 1996-05-31,669.1199951171875,0.02259617855049978,1996,5
319 | 1996-06-28,670.6300048828125,0.0022541674267921863,1996,6
320 | 1996-07-31,639.9500122070312,-0.04682750899291932,1996,7
321 | 1996-08-30,651.989990234375,0.01863914203076167,1996,8
322 | 1996-09-30,687.3300170898438,0.052785341693075694,1996,9
323 | 1996-10-31,705.27001953125,0.02576618481072046,1996,10
324 | 1996-11-29,757.02001953125,0.07080896305654694,1996,11
325 | 1996-12-31,740.739990234375,-0.02174002562018984,1996,12
326 | 1997-01-31,786.1599731445312,0.05951062654617001,1997,1
327 | 1997-02-28,790.8200073242188,0.005910091189056388,1997,2
328 | 1997-03-31,757.1199951171875,-0.043548636182142886,1997,3
329 | 1997-04-30,801.3400268554688,0.05676360503236122,1997,4
330 | 1997-05-30,848.280029296875,0.05692544457452353,1997,5
331 | 1997-06-30,885.1400146484375,0.042535036628904344,1997,6
332 | 1997-07-31,954.3099975585938,0.0752427225584924,1997,7
333 | 1997-08-29,899.469970703125,-0.059182895294065396,1997,8
334 | 1997-09-30,947.280029296875,0.05178908254907544,1997,9
335 | 1997-10-31,914.6199951171876,-0.035086077820773554,1997,10
336 | 1997-11-28,955.4000244140624,0.04362145338032786,1997,11
337 | 1997-12-31,970.4299926757812,0.015609138181524429,1997,12
338 | 1998-01-30,980.280029296875,0.010099010336864112,1998,1
339 | 1998-02-27,1049.3399658203123,0.0680783664885869,1998,2
340 | 1998-03-31,1101.75,0.04873846220549982,1998,3
341 | 1998-04-30,1111.75,0.009035525668709354,1998,4
342 | 1998-05-29,1090.8199462890623,-0.01900569265965757,1998,5
343 | 1998-06-30,1133.8399658203125,0.03868041398242994,1998,6
344 | 1998-07-31,1120.6700439453123,-0.011683311784135064,1998,7
345 | 1998-08-31,957.280029296875,-0.15758607868343155,1998,8
346 | 1998-09-30,1017.010009765625,0.060526278198187455,1998,9
347 | 1998-10-30,1098.6700439453123,0.07723343789167902,1998,10
348 | 1998-11-30,1163.6300048828125,0.0574440362046964,1998,11
349 | 1998-12-31,1229.22998046875,0.0548435076467193,1998,12
350 | 1999-01-29,1279.6400146484375,0.04019085861548177,1999,1
351 | 1999-02-26,1238.3299560546875,-0.032815137600251454,1999,2
352 | 1999-03-31,1286.3699951171875,0.03806063225891165,1999,3
353 | 1999-04-30,1335.1800537109375,0.037241859972131586,1999,4
354 | 1999-05-31,1301.8399658203125,-0.025287532336115248,1999,5
355 | 1999-06-30,1372.7099609375,0.053008237590088214,1999,6
356 | 1999-07-30,1328.719970703125,-0.032570808945743046,1999,7
357 | 1999-08-31,1320.4100341796875,-0.006273730443188796,1999,8
358 | 1999-09-30,1282.7099609375,-0.02896732342110031,1999,9
359 | 1999-10-29,1362.9300537109375,0.06066183660855362,1999,10
360 | 1999-11-30,1388.9100341796875,0.0188824579615936,1999,11
361 | 1999-12-31,1469.25,0.05623277504510504,1999,12
362 | 2000-01-31,1394.4599609375,-0.05224485096542075,2000,1
363 | 2000-02-29,1366.4200439453125,-0.02031300243690115,2000,2
364 | 2000-03-31,1498.5799560546875,0.09232375063667675,2000,3
365 | 2000-04-28,1452.4300537109375,-0.031279910953390555,2000,4
366 | 2000-05-31,1420.5999755859375,-0.0221587523957556,2000,5
367 | 2000-06-30,1454.5999755859375,0.023651631558432307,2000,6
368 | 2000-07-31,1430.8299560546875,-0.01647626719348505,2000,7
369 | 2000-08-31,1517.6800537109375,0.05892822369153272,2000,8
370 | 2000-09-29,1436.510009765625,-0.05496632087674769,2000,9
371 | 2000-10-31,1429.4000244140625,-0.004961774691885523,2000,10
372 | 2000-11-30,1314.949951171875,-0.08345618792359133,2000,11
373 | 2000-12-29,1320.280029296875,0.0040452525456853294,2000,12
374 | 2001-01-31,1366.010009765625,0.03405023140926122,2001,1
375 | 2001-02-28,1239.93994140625,-0.09683114482086808,2001,2
376 | 2001-03-30,1160.3299560546875,-0.06635853454793583,2001,3
377 | 2001-04-30,1249.4599609375,0.07400701716559066,2001,4
378 | 2001-05-31,1255.8199462890625,0.005077276192499092,2001,5
379 | 2001-06-29,1224.3800048828125,-0.02535410549182071,2001,6
380 | 2001-07-31,1211.22998046875,-0.010798241319024626,2001,7
381 | 2001-08-31,1133.5799560546875,-0.06625562852916911,2001,8
382 | 2001-09-28,1040.93994140625,-0.0852566327694193,2001,9
383 | 2001-10-31,1059.780029296875,0.01793727226268249,2001,10
384 | 2001-11-30,1139.449951171875,0.07248427993671047,2001,11
385 | 2001-12-31,1148.0799560546875,0.007545296609038132,2001,12
386 | 2002-01-31,1130.199951171875,-0.01569637859279549,2002,1
387 | 2002-02-28,1106.72998046875,-0.020984861119793585,2002,2
388 | 2002-03-29,1147.3900146484375,0.03608010666721562,2002,3
389 | 2002-04-30,1076.9200439453123,-0.06338465474468347,2002,4
390 | 2002-05-31,1067.1400146484377,-0.009122969376783807,2002,5
391 | 2002-06-28,989.8200073242188,-0.07521434960317919,2002,6
392 | 2002-07-31,911.6199951171876,-0.08229988459363824,2002,7
393 | 2002-08-30,916.0700073242188,0.004869557741769448,2002,8
394 | 2002-09-30,815.280029296875,-0.11656114050838795,2002,9
395 | 2002-10-31,885.760009765625,0.08291439611915408,2002,10
396 | 2002-11-29,936.3099975585938,0.055500571043499924,2002,11
397 | 2002-12-31,879.8200073242188,-0.06222926619772107,2002,12
398 | 2003-01-31,855.7000122070312,-0.027797487730551573,2003,1
399 | 2003-02-28,841.1500244140625,-0.017149829499765623,2003,2
400 | 2003-03-31,848.1799926757812,0.00832283659298838,2003,3
401 | 2003-04-30,916.9199829101562,0.07792734002637935,2003,4
402 | 2003-05-30,963.5900268554688,0.04964571199782597,2003,5
403 | 2003-06-30,974.5,0.01125859814062835,2003,6
404 | 2003-07-31,990.3099975585938,0.016093504013478643,2003,7
405 | 2003-08-29,1008.010009765625,0.017715355943955124,2003,8
406 | 2003-09-30,995.969970703125,-0.012016271671428491,2003,9
407 | 2003-10-31,1050.7099609375,0.05350426070312331,2003,10
408 | 2003-11-28,1058.199951171875,0.007103216390662581,2003,11
409 | 2003-12-31,1111.9200439453123,0.04951898497110463,2003,12
410 | 2004-01-30,1131.1300048828125,0.017128847057715113,2004,1
411 | 2004-02-27,1144.93994140625,0.012135045336105321,2004,2
412 | 2004-03-31,1126.2099609375,-0.01649420417864178,2004,3
413 | 2004-04-30,1107.300048828125,-0.016933314713064362,2004,4
414 | 2004-05-31,1120.6800537109377,0.012011028036096327,2004,5
415 | 2004-06-30,1140.8399658203125,0.017829111362111405,2004,6
416 | 2004-07-30,1101.719970703125,-0.03489223484716675,2004,7
417 | 2004-08-31,1104.239990234375,0.002284738319904278,2004,8
418 | 2004-09-30,1114.5799560546877,0.009320306218270069,2004,9
419 | 2004-10-29,1130.199951171875,0.013916952102817959,2004,10
420 | 2004-11-30,1173.8199462890625,0.037868776906828217,2004,11
421 | 2004-12-31,1211.9200439453125,0.03194257321148264,2004,12
422 | 2005-01-31,1181.27001953125,-0.025615767695305713,2005,1
423 | 2005-02-28,1203.5999755859375,0.018726898056026897,2005,2
424 | 2005-03-31,1180.5899658203125,-0.019302760921690698,2005,3
425 | 2005-04-29,1156.8499755859375,-0.020313511500222425,2005,4
426 | 2005-05-31,1191.5,0.02951224448901968,2005,5
427 | 2005-06-30,1191.3299560546875,-0.00014272436450557535,2005,6
428 | 2005-07-29,1234.1800537109375,0.03533653227186839,2005,7
429 | 2005-08-31,1220.3299560546875,-0.011285547502899007,2005,8
430 | 2005-09-30,1228.81005859375,0.006924991121192825,2005,9
431 | 2005-10-31,1207.010009765625,-0.01790003390634265,2005,10
432 | 2005-11-30,1249.47998046875,0.03458121395472791,2005,11
433 | 2005-12-30,1248.2900390625,-0.0009528030899303985,2005,12
434 | 2006-01-31,1280.0799560546875,0.025147895607580573,2006,1
435 | 2006-02-28,1280.6600341796875,0.0004530550834003222,2006,2
436 | 2006-03-31,1294.8699951171875,0.011034703509450239,2006,3
437 | 2006-04-28,1310.6099853515625,0.012082366269225986,2006,4
438 | 2006-05-31,1270.0899658203125,-0.03140492932031602,2006,5
439 | 2006-06-30,1270.199951171875,8.659275533506872e-05,2006,6
440 | 2006-07-31,1276.6600341796875,0.005072989405988437,2006,7
441 | 2006-08-31,1303.8199462890625,0.021051056620195574,2006,8
442 | 2006-09-29,1335.8499755859375,0.02426939911430903,2006,9
443 | 2006-10-31,1377.93994140625,0.031021812670561033,2006,10
444 | 2006-11-30,1400.6300048828125,0.016332551131229778,2006,11
445 | 2006-12-29,1418.300048828125,0.012536866857911555,2006,12
446 | 2007-01-31,1438.239990234375,0.013961131307326013,2007,1
447 | 2007-02-28,1406.8199462890625,-0.022088337053377316,2007,2
448 | 2007-03-30,1420.8599853515625,0.009930511784698837,2007,3
449 | 2007-04-30,1482.3699951171875,0.04237984325324007,2007,4
450 | 2007-05-31,1530.6199951171875,0.032030723851896425,2007,5
451 | 2007-06-29,1503.3499755859375,-0.01797694386967663,2007,6
452 | 2007-07-31,1455.27001953125,-0.03250447118036437,2007,7
453 | 2007-08-31,1473.989990234375,0.01278153901893031,2007,8
454 | 2007-09-28,1526.75,0.035168290262790336,2007,9
455 | 2007-10-31,1549.3800048828125,0.014713560940171178,2007,10
456 | 2007-11-30,1481.1400146484375,-0.045042782630903666,2007,11
457 | 2007-12-31,1468.3599853515625,-0.008665949670829676,2007,12
458 | 2008-01-31,1378.550048828125,-0.06311386420630871,2008,1
459 | 2008-02-29,1330.6300048828125,-0.035379739592448445,2008,2
460 | 2008-03-31,1322.699951171875,-0.0059774528264187055,2008,3
461 | 2008-04-30,1385.5899658203125,0.04645095190758575,2008,4
462 | 2008-05-30,1400.3800048828125,0.010617614807393316,2008,5
463 | 2008-06-30,1280.0,-0.08988355391782221,2008,6
464 | 2008-07-31,1267.3800048828125,-0.009908296633773794,2008,7
465 | 2008-08-29,1282.8299560546875,0.012116759351493478,2008,8
466 | 2008-09-30,1166.3599853515625,-0.09518076507694317,2008,9
467 | 2008-10-31,968.75,-0.1856364738868823,2008,10
468 | 2008-11-28,896.239990234375,-0.07779835731330564,2008,11
469 | 2008-12-31,903.25,0.007791146673498339,2008,12
470 | 2009-01-30,825.8800048828125,-0.08954987959881677,2009,1
471 | 2009-02-27,735.0900268554688,-0.11645651319919015,2009,2
472 | 2009-03-31,797.8699951171875,0.08195269356125578,2009,3
473 | 2009-04-30,872.8099975585938,0.08977221824359916,2009,4
474 | 2009-05-29,919.1400146484376,0.05172057715517475,2009,5
475 | 2009-06-30,919.3200073242188,0.0001958080939532536,2009,6
476 | 2009-07-31,987.47998046875,0.07152194934301459,2009,7
477 | 2009-08-31,1020.6199951171876,0.033009336342854745,2009,8
478 | 2009-09-30,1057.0799560546877,0.035100067367746846,2009,9
479 | 2009-10-30,1036.18994140625,-0.019959880197119695,2009,10
480 | 2009-11-30,1095.6300048828123,0.0557790765867372,2009,11
481 | 2009-12-31,1115.0999755859377,0.017614520350299756,2009,12
482 | 2010-01-29,1073.8699951171877,-0.03767512371219439,2010,1
483 | 2010-02-26,1104.489990234375,0.028114739741840644,2010,2
484 | 2010-03-31,1169.4300537109375,0.05713281541639237,2010,3
485 | 2010-04-30,1186.68994140625,0.014651373006918433,2010,4
486 | 2010-05-31,1089.4100341796877,-0.08553157288349045,2010,5
487 | 2010-06-30,1030.7099609375,-0.05538844940550369,2010,6
488 | 2010-07-30,1101.5999755859377,0.06651579901085647,2010,7
489 | 2010-08-31,1049.3299560546877,-0.048611822887417944,2010,8
490 | 2010-09-30,1141.199951171875,0.08392847418803306,2010,9
491 | 2010-10-29,1183.260009765625,0.03619305175049092,2010,10
492 | 2010-11-30,1180.550048828125,-0.0022928763797240848,2010,11
493 | 2010-12-31,1257.6400146484375,0.06325648750899848,2010,12
494 | 2011-01-31,1286.1199951171875,0.02239296981241168,2011,1
495 | 2011-02-28,1327.219970703125,0.03145657676282454,2011,2
496 | 2011-03-31,1325.8299560546875,-0.0010478617545839342,2011,3
497 | 2011-04-29,1363.6099853515625,0.028096938770245217,2011,4
498 | 2011-05-31,1345.199951171875,-0.013592919455283514,2011,5
499 | 2011-06-30,1320.6400146484375,-0.01842618591193279,2011,6
500 | 2011-07-29,1292.280029296875,-0.02170835585666353,2011,7
501 | 2011-08-31,1218.8900146484375,-0.05846750227195674,2011,8
502 | 2011-09-30,1131.4200439453125,-0.07446710071978657,2011,9
503 | 2011-10-31,1253.300048828125,0.10230659176938861,2011,10
504 | 2011-11-30,1246.9599609375,-0.005071553722512334,2011,11
505 | 2011-12-30,1257.5999755859375,0.008496565407114964,2011,12
506 | 2012-01-31,1312.4100341796875,0.04266004446780691,2012,1
507 | 2012-02-29,1365.6800537109375,0.039787344672045144,2012,2
508 | 2012-03-30,1408.469970703125,0.030851475632995395,2012,3
509 | 2012-04-30,1397.9100341796875,-0.0075256995449883846,2012,4
510 | 2012-05-31,1310.3299560546875,-0.0646993081586249,2012,5
511 | 2012-06-29,1362.1600341796875,0.03879271987370014,2012,6
512 | 2012-07-31,1379.3199462890625,0.01251888494028286,2012,7
513 | 2012-08-31,1406.5799560546875,0.019570609701871078,2012,8
514 | 2012-09-28,1440.6700439453125,0.02394711879625433,2012,9
515 | 2012-10-31,1412.1600341796875,-0.0199878423580504,2012,10
516 | 2012-11-30,1416.1800537109375,0.0028426724604573295,2012,11
517 | 2012-12-31,1426.18994140625,0.007043368100712932,2012,12
518 | 2013-01-31,1498.1099853515625,0.04919779199874608,2013,1
519 | 2013-02-28,1514.6800537109375,0.010999927126354336,2013,2
520 | 2013-03-29,1569.18994140625,0.03535529432970552,2013,3
521 | 2013-04-30,1597.5699462890625,0.017924165836651795,2013,4
522 | 2013-05-31,1630.739990234375,0.020550202383511795,2013,5
523 | 2013-06-28,1606.280029296875,-0.015112928770280476,2013,6
524 | 2013-07-31,1685.72998046875,0.048277728051788316,2013,7
525 | 2013-08-30,1632.969970703125,-0.03179826803794494,2013,8
526 | 2013-09-30,1681.550048828125,0.029315591366424698,2013,9
527 | 2013-10-31,1756.5400390625,0.04362997111283384,2013,10
528 | 2013-11-29,1805.81005859375,0.027663289773235178,2013,11
529 | 2013-12-31,1848.3599853515625,0.023289474482053762,2013,12
530 | 2014-01-31,1782.5899658203125,-0.036231407776019076,2014,1
531 | 2014-02-28,1859.449951171875,0.04221337507227485,2014,2
532 | 2014-03-31,1872.3399658203125,0.006908248426944041,2014,3
533 | 2014-04-30,1883.949951171875,0.006181643365585465,2014,4
534 | 2014-05-30,1923.5699462890625,0.02081219601335782,2014,5
535 | 2014-06-30,1960.22998046875,0.018878996713560525,2014,6
536 | 2014-07-31,1930.6700439453125,-0.015194687637991144,2014,7
537 | 2014-08-29,2003.3699951171875,0.03696364440798927,2014,8
538 | 2014-09-30,1972.2900390625,-0.015635436105290168,2014,9
539 | 2014-10-31,2018.050048828125,0.022936398829564553,2014,10
540 | 2014-11-28,2067.56005859375,0.02423747356330619,2014,11
541 | 2014-12-31,2058.89990234375,-0.0041973842211255885,2014,12
542 | 2015-01-30,1994.989990234375,-0.03153277926642595,2015,1
543 | 2015-02-27,2104.5,0.05343887632562794,2015,2
544 | 2015-03-31,2067.889892578125,-0.017549197433963215,2015,3
545 | 2015-04-30,2085.510009765625,0.008484722544634948,2015,4
546 | 2015-05-29,2107.389892578125,0.010436729675337375,2015,5
547 | 2015-06-30,2063.110107421875,-0.021235558871758542,2015,6
548 | 2015-07-31,2103.840087890625,0.01954968299001969,2015,7
549 | 2015-08-31,1972.1800537109373,-0.06462473099312405,2015,8
550 | 2015-09-30,1920.030029296875,-0.026798730963463413,2015,9
551 | 2015-10-30,2079.360107421875,0.07971937954339925,2015,10
552 | 2015-11-30,2080.409912109375,0.0005047417068047011,2015,11
553 | 2015-12-31,2043.93994140625,-0.017685658390257153,2015,12
554 | 2016-01-29,1940.239990234375,-0.05206761730549658,2016,1
555 | 2016-02-29,1932.22998046875,-0.004136905514992684,2016,2
556 | 2016-03-31,2059.739990234375,0.06390499028682939,2016,3
557 | 2016-04-29,2065.300048828125,0.002695761451154688,2016,4
558 | 2016-05-31,2096.949951171875,0.01520836681052451,2016,5
559 | 2016-06-30,2098.860107421875,0.0009105066031533937,2016,6
560 | 2016-07-29,2173.60009765625,0.034990432691053286,2016,7
561 | 2016-08-31,2170.949951171875,-0.0012199867803515119,2016,8
562 | 2016-09-30,2168.27001953125,-0.0012352137017535014,2016,9
563 | 2016-10-31,2126.14990234375,-0.019616837043472835,2016,10
564 | 2016-11-30,2198.81005859375,0.03360354504443386,2016,11
565 | 2016-12-30,2238.830078125,0.018037111299278763,2016,12
566 | 2017-01-31,2278.8701171875,0.01772631462106311,2017,1
567 | 2017-02-28,2363.639892578125,0.036523000738276856,2017,2
568 | 2017-03-31,2362.719970703125,-0.00038927289213130933,2017,3
569 | 2017-04-28,2384.199951171875,0.009050132478198414,2017,4
570 | 2017-05-31,2411.800048828125,0.01150975911098051,2017,5
571 | 2017-06-30,2423.409912109375,0.004802226040504287,2017,6
572 | 2017-07-31,2470.300048828125,0.01916401754710062,2017,7
573 | 2017-08-31,2471.64990234375,0.0005462837796947895,2017,8
574 | 2017-09-29,2519.360107421875,0.01911903935235504,2017,9
575 | 2017-10-31,2575.260009765625,0.021945560031841893,2017,10
576 | 2017-11-30,2647.580078125,0.02769554104663463,2017,11
577 | 2017-12-29,2673.610107421875,0.009783614574871535,2017,12
578 | 2018-01-31,2823.81005859375,0.05465739835832828,2018,1
579 | 2018-02-28,2713.830078125,-0.03972610759808415,2018,2
580 | 2018-03-30,2640.8701171875,-0.027252497366939465,2018,3
581 | 2018-04-30,2648.050048828125,0.002715085811824558,2018,4
582 | 2018-05-31,2705.27001953125,0.021378191183066164,2018,5
583 | 2018-06-29,2718.3701171875,0.004830749386569799,2018,6
584 | 2018-07-31,2816.2900390625,0.03538795073752432,2018,7
585 | 2018-08-31,2901.52001953125,0.029814314524382546,2018,8
586 | 2018-09-28,2913.97998046875,0.004285093286333641,2018,9
587 | 2018-10-31,2711.739990234375,-0.07192934595429712,2018,10
588 | 2018-11-30,2760.169921875,0.01770175205611757,2018,11
589 | 2018-12-31,2506.85009765625,-0.09626521985789882,2018,12
590 | 2019-01-31,2704.10009765625,0.07574215198675649,2019,1
591 | 2019-02-28,2784.489990234375,0.029295553365401794,2019,2
592 | 2019-03-29,2834.39990234375,0.017765510890228597,2019,3
593 | 2019-04-30,2945.830078125,0.038560397417571224,2019,4
594 | 2019-05-31,2752.06005859375,-0.06804089408287428,2019,5
595 | 2019-06-28,2941.760009765625,0.06665830156302643,2019,6
596 | 2019-07-31,2980.3798828125,0.013042724833705499,2019,7
597 | 2019-08-30,2926.4599609375,-0.018257281743262688,2019,8
598 | 2019-09-30,2976.739990234375,0.01703525059107225,2019,9
599 | 2019-10-31,3037.56005859375,0.020225842153316798,2019,10
600 | 2019-11-29,3140.97998046875,0.033480266071379106,2019,11
601 | 2019-12-31,3230.780029296875,0.028188756298542117,2019,12
602 |
--------------------------------------------------------------------------------