{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Forecasting Stocks" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{image} img/portada.png\n", ":alt: portada\n", ":class: bg-primary mb-1\n", ":width: 425px\n", ":align: center\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "¿Te has planteado alguna vez invertir en el mercado de valores? Este juego te va a ayudar a tomar la decisión porque se trata, precisamente, de predecir la evolución del precio de la acción de empresas reales. El juego consiste en los siguiente:\n", "\n", "1. El jugador empieza seleccionando la empresa con la que quiere jugar\n", "2. A continuanción elige un nivel de dificultad que se va a traducir en la cantidad de días que tendrá que predecir. Cuanto más largo sea el plazo de predicción, más complicado.\n", "3. Por último, el juego le muestra la evolución del percio de la acción seleccionada y el jugador tiene que dibujar sobre la gráfica la tendencia que ha previsto\n", "\n", "La puntuación se calcula en función de cómo de acertado ha estado el jugador marcando los valores predichos respecto a los valores reales." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Descarga de datos bursátiles\n", "\n", "El primer paso es indicar el nombre de la empresa con la que vamos a jugar. Para acceder a su información bursatil, vamos a utilizar el paquete de Python **pandas_datareader**.\n", "\n", "Por el momento jugaremos con el precio de la acción de **AMAZON** cuyo código es **AMXN**, pero el juego puede hacerse mucho más entretenido si contamos con una lista de empresas y el juego elige aleatoriamente una de ellas para cada jugador." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{seealso}\n", "[Aquí](https://pandas-datareader.readthedocs.io/en/latest/) puedes encontrar más información sobre la instalación y los métodos que importa la librería **pandas_datareader**.\n", "\n", "Los códigos de las empresas los puedes obtener de la web de [Yahoo Finance](https://finance.yahoo.com/)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "::::{warning}\n", "En el momento de escribir este documento Yahoo ha cambiado las condiciones de su servicio por lo que el acceso a su API a través de la librería **pandas_datareader** no coincide exactamente con lo que aparece en su documentación. Por el momento te vamos a proporcionar un workaround funcional. Pero seguramente, cuando este libro llegue a tí, los desarrolladores de **pandas_datareader** ya hayan actualizado su documentación.\n", "\n", "Este tipo de problemas son muy habituales en el mundo de la programación. Y esta no será la última vez que tendrás que pegarte con las librerías, sus versiones y los cambios en las condiciones del servicio.\n", "::::" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solución:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[*********************100%***********************] 1 of 1 completed\n" ] }, { "data": { "text/html": [ "
\n", " | Open | \n", "High | \n", "Low | \n", "Close | \n", "Adj Close | \n", "Volume | \n", "
---|---|---|---|---|---|---|
Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
2018-01-02 | \n", "58.599998 | \n", "59.500000 | \n", "58.525501 | \n", "59.450500 | \n", "59.450500 | \n", "53890000 | \n", "
2018-01-03 | \n", "59.415001 | \n", "60.274502 | \n", "59.415001 | \n", "60.209999 | \n", "60.209999 | \n", "62176000 | \n", "
2018-01-04 | \n", "60.250000 | \n", "60.793499 | \n", "60.233002 | \n", "60.479500 | \n", "60.479500 | \n", "60442000 | \n", "
2018-01-05 | \n", "60.875500 | \n", "61.457001 | \n", "60.500000 | \n", "61.457001 | \n", "61.457001 | \n", "70894000 | \n", "
2018-01-08 | \n", "61.799999 | \n", "62.653999 | \n", "61.601501 | \n", "62.343498 | \n", "62.343498 | \n", "85590000 | \n", "