Cómo construir tu propia aproximación al Global M2 Money Supply con Python y FRED
Seguro que alguna vez has oído hablar del famoso “M2” y del Global M2 Money Supply. Suelen aparecer en análisis macro, en tesis de inversión sobre liquidez global y, últimamente, en gráficos de Bitcoin desplazados 10 o 12 semanas. Pero… ¿sabes qué es exactamente, de dónde sale y cómo se calcula?
En este artículo vamos a responder a todo eso y, además, vas a montarte tu propia versión del Global M2 en Python, usando datos gratuitos de la FRED.
¿Qué es el M2?
El M2 es una medida de oferta monetaria que publica cada banco central para su propia economía. Incluye:
- Efectivo en circulación.
- Depósitos a la vista.
- Depósitos de ahorro.
- Depósitos a plazo de corto vencimiento y otros instrumentos altamente líquidos.
En otras palabras: dinero que puede movilizarse rápido para consumir, invertir o pagar deudas. Por eso el M2 se usa como una buena aproximación a la liquidez disponible en la economía.
Cada banco central publica su propia serie de M2: la Fed para Estados Unidos, el BCE para la zona euro, el Banco de Japón, el PBoC para China, etc. Son series equivalentes en concepto, pero cada una en su moneda local y con sus propias particularidades metodológicas.
¿Y el Global M2?
El Global M2 Money Supply es, simplemente, la suma de las M2 nacionales de las principales economías, expresadas en una moneda común (normalmente el dólar) para poder agregarlas.
La idea detrás es sencilla: si quieres medir la liquidez del sistema financiero mundial, no basta con mirar solo a Estados Unidos.
- China tiene hoy uno de los mayores volúmenes de M2 del planeta.
- Japón lleva décadas con políticas monetarias ultraexpansivas.
- La Eurozona tiene un sistema muy bancarizado, lo que históricamente ha inflado su M2.
Mirar únicamente la M2 estadounidense deja fuera una parte importante del contexto global. El Global M2 corrige ese sesgo y ofrece una foto más completa de cuánto dinero hay realmente circulando por el mundo.
¿Y el GLMOSUPP de Bloomberg?
Cuando ves gráficos del “Global M2” en Twitter o en informes, lo más probable es que estés viendo el GLMOSUPP, un índice propietario de Bloomberg que estima la oferta monetaria global agregando la M2 de las principales economías y convirtiéndola a dólares.
No es una serie oficial de ningún banco central, sino un indicador sintético diseñado para capturar, en una sola línea, la evolución conjunta de la liquidez creada por los principales bloques monetarios del planeta.
El problema: Bloomberg cuesta dinero y la metodología exacta no es pública. Pero no hace falta pagar una terminal para tener una aproximación muy decente.
Construyendo tu propio Global M2 con Python
Aunque Bloomberg no publica su metodología, podemos replicar la idea agregando las cuatro M2 más relevantes:
- M2 de Estados Unidos
- M2/M3 de la zona euro
- M2 de China
- M2 de Japón
Aclaración importante: la serie que usamos para la Eurozona (MABMM301EZQ189S) es en realidad el agregado M3, no M2. El BCE publica M3 como su referencia principal, y conceptualmente es equivalente al M2 estadounidense a efectos de medir liquidez global.
Para cada una:
- Tomamos la serie en moneda local.
- La convertimos a dólares con el tipo de cambio correspondiente.
- Las agregamos en una única serie temporal.
El resultado te permite observar las expansiones y contracciones de liquidez a escala global, con independencia de qué banco central las origine.
Vamos a descargar los datos necesarios de la FRED (Federal Reserve Economic Data) de St. Louis, que es gratuita y cubre todas las series que necesitamos. Así que manos a la obra.
Paso 1: conseguir tu API key de FRED
Lo primero es registrarte en FRED y solicitar una API key. El proceso es gratuito y tarda un par de minutos:
- Crea una cuenta en https://fred.stlouisfed.org/.
- Ve a https://fredaccount.stlouisfed.org/apikeys y solicita tu clave.
- Guárdala en un sitio seguro, porque la vamos a necesitar para hacer peticiones a la API.
Consejo de seguridad: si vas a usar el código en un entorno compartido (Google Colab, GitHub, un repositorio público…), no pegues la API key directamente en el código. Usa variables de entorno o, en Colab, la funcionalidad de Secrets (icono de la llave en la barra lateral izquierda).
Paso 2: preparar el entorno
Abre tu editor de código favorito. Si nunca has trabajado con Python, lo más rápido es ir a Google Colab e iniciar sesión con tu cuenta de Gmail: no tienes que instalar nada en tu ordenador.
Si prefieres trabajar en local (VS Code, PyCharm, etc.), también sirve. En cualquier caso, instala las librerías:
En Google Colab, pandas ya viene instalada por defecto, así que con instalar fredapi es suficiente.
Paso 3: importar librerías y definir las series
Empezamos importando fredapi y pandas, configurando la API key, y definiendo las series de M2 que vamos a descargar:
Con estas cuatro series cubrimos los cuatro bloques monetarios más relevantes. Si quieres afinar más, puedes añadir Reino Unido, Canadá, India u otros países siguiendo la misma metodología.
Paso 4: descargar y convertir cada serie a dólares
Creamos un DataFrame vacío donde iremos almacenando cada serie ya convertida a USD:
Empezamos por Estados Unidos. La serie M2SL está en billions de dólares (es decir, miles de millones según la notación anglosajona), así que multiplicamos por 10⁹ para pasarla a dólares:
Seguimos con la Eurozona. Como la serie viene en euros, descargamos también el tipo de cambio EUR/USD y multiplicamos (porque 1 EUR vale más de 1 USD en cotización EUR/USD):
Con Japón hacemos algo parecido, pero la serie DEXJPUS está expresada como JPY por USD, así que dividimos en lugar de multiplicar:
Y lo mismo con China, cuya cotización DEXCHUS también viene como CNY por USD:
Paso 5: agregar y limpiar
Ya tenemos las cuatro series en la misma moneda. Solo nos queda sumarlas y eliminar los valores NaN (meses en los que alguna serie todavía no tiene dato publicado):
Y para verificar que los datos tienen sentido, mostramos las últimas filas expresadas en billones de dólares (10¹², notación española):
Si todo ha ido bien, deberías ver que:
- China y Estados Unidos son los bloques más grandes.
- Japón es, con diferencia, el más pequeño de los cuatro.
- El total global se mueve en el orden de decenas de billones de dólares, que es justo lo que cabría esperar a nivel macro.
Paso 6: visualizar los datos (opcional pero muy recomendable)
Ya tenemos los datos, pero con solo mirar las cifras es difícil hacerse una idea de la evolución. Vamos a generar una batería de gráficos con matplotlib: una serie por cada bloque monetario, el Global M2 en escala lineal y, al final, todo junto en escala logarítmica para apreciar bien las magnitudes relativas.
Primero añadimos el import al principio del script:
import matplotlib.pyplot as plt
Y al final, generamos la figura:
La gráfica en escala logarítmica es la más informativa: al representar todas las series en el mismo plano, se aprecia de un vistazo el tamaño relativo de cada bloque y cómo se comporta el agregado global frente a sus componentes.
Y ahora… ¿qué hacemos con esto?
Tener tu propia serie del Global M2 te abre bastantes puertas. Algunas ideas:
- Representarla gráficamente junto a tus activos favoritos (Bitcoin, S&P 500, oro…) y estudiar su correlación.
- Probar desplazamientos temporales (lags) para ver si la liquidez global lidera o retrasa ciertos movimientos de mercado.
- Calcular su tasa de variación interanual y usarla como régimen de fondo para tus sistemas cuantitativos.
- Compararla con el GLMOSUPP de Bloomberg si alguna vez tienes acceso a una terminal, para ver cómo de buena es tu aproximación.
El Global M2 no es una bola de cristal, pero sí es una de esas variables macro que conviene tener a mano cuando piensas en el contexto de liquidez en el que operas. Y ahora, además, tienes la tuya propia.
👨💻 Código completo
Y aquí tienes el script completo, por si lo quieres copiar y pegar directamente en tu entorno de trabajo:
Este artículo fue cortesía de Xavi Miralles para MKTSignals.













0 comentarios