Quant500 Academy

1. Descargar precios históricos con yfinance

Nivel 3: Datos de Mercado y APIs

Cualquier estrategia, por sofisticada que sea, empieza con una tabla de precios. La librería más usada para conseguir esa tabla gratis, sin necesidad de cuenta ni clave de API, es yfinance, que descarga datos históricos y en tiempo real directamente de Yahoo Finance.

import yfinance as yf
import datetime as dt

inicio = dt.datetime(2018, 1, 1)
fin = dt.datetime.now()

datos = yf.download("TSLA", inicio, fin, auto_adjust=False)   # auto_adjust=False es necesario para que exista la columna Adj Close
datos.head()

El resultado es un DataFrame de pandas — la estructura de tabla que vas a usar constantemente a partir de ahora — con una fila por día de cotización y columnas como Open, High, Low, Close, Adj Close y Volume. Adj Close es el precio de cierre ajustado por dividendos y splits: es el que deberías usar casi siempre para calcular retornos, porque el Close normal puede dar saltos falsos cada vez que una empresa reparte dividendo o divide sus acciones.

Una vez descargados, es buena práctica guardar los datos en un archivo local, para no tener que volver a descargarlos cada vez que ejecutas el script — y para poder trabajar sin conexión, o si la fuente deja de estar disponible.

datos.to_csv("TSLA.csv")

# mas adelante, para volver a cargarlos sin descargar de nuevo:
import pandas as pd
datos_guardados = pd.read_csv("TSLA.csv", parse_dates=True, index_col=0)

parse_dates=True le dice a pandas que interprete la primera columna como fechas, no como texto — sin esto, cualquier cálculo que dependa del orden temporal de los datos daría resultados incorrectos.

Con los datos ya en un DataFrame, generar un primer gráfico es una sola línea:

import matplotlib.pyplot as plt

datos["Adj Close"].plot()
plt.show()

Es la forma más rápida de comprobar, con solo mirar, si los datos descargados tienen sentido — huecos raros, precios que se disparan sin motivo, o un rango de fechas incompleto son errores que se detectan mucho más rápido con los ojos que leyendo números.

Para ampliar esta lección

El resto de Quant500

Lo que estás aprendiendo, aplicado al índice todos los días:

La cartera del modelo, cada semana en tu correo

Cada sábado, su semana en un minuto: cómo fue, lo mejor y lo peor, y qué directivos compraron con su dinero. Y el día que el modelo se rehace, qué entra y qué sale. Es una simulación, no un consejo. Como mucho un correo a la semana, sin publicidad y sin cuenta; te das de baja con un clic. Lo hace una persona: Pol Gracia.

Cartera modelo con resultados simulados, no una recomendación personalizada. Tu correo se usa solo para esto: privacidad.

Detrás de la Academia y del resto de Quant500 hay una sola persona: Pol Gracia Serrahima.