La mayoría de los modelos macro de divisas se centran en lo que ya han hecho los bancos centrales: diferencias de tasas, diferenciales de rendimiento y divergencia de política que ya está valorada en la curva de futuro. La divergencia del PMI funciona de manera diferente. Debido a que las encuestas del Índice de Gerentes de Compras capturan cambios en tiempo real en la actividad empresarial antes de que aparezcan en las impresiones oficiales del PIB o del IPC, una brecha de PMI cada vez mayor entre dos países es una de las pocas señales que precede consistentemente los cambios de tendencia de divis as en lugar de confirmarlos.
La intuición es sencilla. Cuando las plantas de fábrica y los mostradores de servicio de una economía se aceleran mientras un par se contrae, la demanda subyacente de la moneda más fuerte aumenta: más producción, más exportaciones, más contratación y más probabilidades de que su banco central se incline hacia el halcón. Los operadores de divisas que esperan la confirmación oficial del PIB ya han perdido la entrada. Los comerciantes que rastrean la divergencia del PMI en tiempo real particularmente el diferencial entre las lecturas compuestas del PMI pueden posicionarse antes en el movimiento.
Tesión central
When the composite PMI of one economy diverges significantly from a peer's — especially when one crosses above 50 (expansion) as the other drops below it — the corresponding exchange rate tends to trend in the stronger economy's favour over the following 4–12 weeks. This lead-lag relationship makes PMI divergence a structural early-warning signal, not a coincident indicator.
Qué medidas del PMI y por qué es líder
El Índice de Gerentes de Compras es un índice de difusión compilado mensualmente a partir de encuestas a altos ejecutivos de compras y cadena de suministro. Las lecturas por encima de 50 indican expansión; por debajo de 50 indica contracción. El índice captura nuevos pedidos, producción, empleo, tiempos de entrega de proveedores e inventarios cuyos componentes prospectivos (nuevos pedidos en particular) proporcionan una visión genuina de la actividad económica de 30 a 90 días.
Tres variantes son relevantes para el análisis de divisas:
- PMI en el sector manufacturero sensible al comercio, muy reactivo a los choques de la demanda mundial, los ciclos arancelarios y las fases de reconstrucción/desabastecimiento de inventarios.
- PMI de servicios refleja la fuerza de la demanda interna, la transmisión de la inflación salarial y la confianza del consumidor.
- PMI compuesto mezcla ponderada en el PIB de la industria manufacturera y los servicios: proporciona la señal más amplia de actividad económica y se correlaciona de manera más consistente con la dirección de la tendencia cambiaria en horizontes de 1 a 3 meses.
The lead-time advantage of PMI data over GDP prints is significant: composite PMI is published on the first business day of each month for the prior month, while GDP typically arrives 3–6 weeks after quarter-end and is subsequently revised. A trader watching the EUR/USD pair in January can see both the US and Eurozone composite PMI figures for December before any quarterly GDP data has been released.
Cobertura de PMI en FXMacroData
El punto final del PMI de FXMacroData devuelve las series temporales compuestas del PMI para cada moneda principal , incluidas las variantes ponderadas por la fabricación, cuando corresponda. /api/v1/announcements/{currency}/pmi El NMI (Indice de no manufactura) está disponible para USD y CNY a través del nmi Es una bala de indicador.
Construcción de la señal de divergencia del PMI
La señal se construye a partir del diferencial entre las lecturas compuestas del PMI de dos países. Un diferencial positivo donde el PMI del país A excede el PMI de país B favorece a la moneda A en relación con la moneda B. La fuerza de la señal aumenta con:
- La magnitud absoluta de la diferencia (divergencia mayor = sesgo más fuerte)
- Dirección del cambio (amplificación de la dispersión = aceleración del sesgo)
- Duración (divergencia persistente de varios meses = régimen de tendencia, no una sola vez)
- El cruce de 50 niveles (un lado por encima del umbral de expansión mientras que el otro se contrae)
El siguiente ejemplo recoge datos compuestos de los PMI de los Estados Unidos y de la zona del euro y calcula el diferencial de divergencia relevante para el EUR/USD.
import requests
import pandas as pd
BASE = "https://fxmacrodata.com/api/v1"
KEY = "YOUR_API_KEY"
def get_pmi(currency: str, start: str = "2020-01-01") -> pd.Series:
r = requests.get(
f"{BASE}/announcements/{currency}/pmi",
params={"api_key": KEY, "start_date": start}
)
r.raise_for_status()
df = pd.DataFrame(r.json()["data"])
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date").sort_index()
return df["val"].rename(currency.upper())
usd_pmi = get_pmi("usd")
eur_pmi = get_pmi("eur")
# EUR minus USD composite PMI spread (positive = EUR favoured)
spread = (eur_pmi - usd_pmi).dropna()
spread.name = "EUR_minus_USD_PMI"
print(spread.tail(6).to_string())
print(f"\nCurrent spread: {spread.iloc[-1]:.1f} pts")
EUR frente a USD PMI compuesto 2020 a 2026
Las dos series de PMI se han trazado en función del nivel neutro de 50.
EUR/USD: el par de referencia para la divergencia del PMI
EUR/USD es el par de divisas más negociado en el mundo y el más estudiado para el análisis macrofundamental. También es el que ha mostrado históricamente la relación más clara entre la divergencia PMI y el tiempo de entrega en parte porque tanto los lanzamientos del ISM/PMI de EE.UU. como los del S&P Global PMI de la Eurozona son observados de cerca, están ampliamente distribuidos y tienen una larga historia que permite realizar pruebas retrospectivas.
The relationship is not mechanical — EUR/USD is also heavily influenced by risk appetite, energy prices, ECB/Fed rate expectations, and positioning. But PMI divergence consistently provides a structural bias that overlays all of those shorter-term drivers. In a period like H1 2024, when US data outperformed and the Eurozone struggled with the aftermath of energy cost shocks, the persistent US PMI advantage correlated with a sustained USD bid that overshadowed multiple EUR-positive ECB communication events.
EUR–USD PMI Divergence vs EUR/USD Spot — 2020 to 2026
El margen del PMI (EUR menos USD) gráfico frente al tipo de cambio del EUR/USD. Observe cómo el margen de PMI tiende a cambiar de dirección antes de que el tipo de interés al contado siga. El eje secundario para el EUR/ USD se invierte para alinear visualmente la divergencia del PMI con la dirección de cambio esperada.
Extender la señal a través de los pares principales
El mismo marco de divergencia se aplica a todos los principales pares de divisas en los que se dispone de series de PMI.
La fuerza de la señal de la divergencia del PMI por par Correlación con el rendimiento cambiario de 8 semanas posteriores
Los coeficientes de correlación ilustrativos entre la divergencia del PMI y la dirección cambiaria de las siguientes 8 semanas.
Los pares más confiables que responden a la divergencia PMI comparten ciertas características: ambas economías han observado de cerca series PMI de alta calidad; hay un comercio bilateral significativo entre los dos países; y ninguna de las monedas es principalmente una moneda de materias primas donde los precios de los recursos pueden anular las señales de macroactividad. EUR/USD, GBP/USD , USD/JPY y EUR/GBP se encuentran consistentemente en esta categoría.
Obtención de datos de PMI en varias monedas
La construcción de un panel de señalización PMI de varios pares requiere extraer datos PMI en varias monedas y alinearlos a una línea de tiempo mensual común. PYME proporciona series temporales mensuales coherentes para todas las principales monedas.
import requests
import pandas as pd
BASE = "https://fxmacrodata.com/api/v1"
KEY = "YOUR_API_KEY"
currencies = ["usd", "eur", "gbp", "jpy", "aud", "cad"]
def get_pmi(currency: str, start: str = "2022-01-01") -> pd.Series:
r = requests.get(
f"{BASE}/announcements/{currency}/pmi",
params={"api_key": KEY, "start_date": start}
)
r.raise_for_status()
df = pd.DataFrame(r.json()["data"])
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date").sort_index()
return df["val"].rename(currency.upper())
pmi = pd.concat([get_pmi(c) for c in currencies], axis=1)
# Compute all cross-spreads relevant to major pairs
divergence = {
"EUR_vs_USD": pmi["EUR"] - pmi["USD"],
"GBP_vs_USD": pmi["GBP"] - pmi["USD"],
"USD_vs_JPY": pmi["USD"] - pmi["JPY"],
"USD_vs_AUD": pmi["USD"] - pmi["AUD"],
"USD_vs_CAD": pmi["USD"] - pmi["CAD"],
"EUR_vs_GBP": pmi["EUR"] - pmi["GBP"],
}
div_df = pd.DataFrame(divergence)
print(div_df.tail(3).to_string())
print("\nCurrent divergence snapshot:")
for pair, val in div_df.iloc[-1].items():
direction = "favours first currency" if val > 0 else "favours second currency"
print(f" {pair:15s}: {val:+.1f} pts ({direction})")
Clasificación del régimen de AMP
Una sola lectura del diferencial PMI es informativa, pero la señal más negociable proviene de la clasificación de régimen: identificar cuándo la divergencia cruza un umbral significativo y se mantiene allí durante varios meses.
Una fuerte A.
Spread > +3 pts, widening or holding. A in expansion (>50), B near contraction. Strong structural bias towards currency A.
No tiene nada
Spread within ±3 pts, or both economies in similar territory. PMI bias is absent; rate differentials and positioning dominate.
B fuerte
Spread < -3 pts, widening or holding. B in expansion, A near contraction. Strong structural bias towards currency B.
def classify_pmi_regime(spread: pd.Series, threshold: float = 3.0) -> pd.Series:
"""
Returns regime labels: 'strong_A', 'neutral', or 'strong_B'.
threshold: minimum spread magnitude to declare a directional regime.
"""
regimes = []
for val in spread:
if val > threshold:
regimes.append("strong_A")
elif val < -threshold:
regimes.append("strong_B")
else:
regimes.append("neutral")
return pd.Series(regimes, index=spread.index, name="regime")
# Apply to EUR-USD divergence
eur_usd_spread = pmi["EUR"] - pmi["USD"]
regime = classify_pmi_regime(eur_usd_spread, threshold=2.5)
# Summarise regime tenure
for r in ["strong_A", "neutral", "strong_B"]:
count = (regime == r).sum()
pct = 100 * count / len(regime)
print(f" {r:12s}: {count:3d} months ({pct:.0f}% of history)")
Combinando la divergencia del PMI con el diferencial de tasas
La diferencia entre los tipos de interés de los dos países es más fuerte cuando se alinea con el diferencial de tasas de interés entre dos países. Cuando la diferencia entre las tasas se amplía a favor de la moneda A y al mismo tiempo que el diferential de tasos también favorece a A, el sesgo cambiario estructural se refuerza y tiende a mantenerse por más tiempo. Cuando las diferencias entre los precios y las tasos no coinciden, una señal finalmente gana; el PMI tiende a liderar la trayectoria de las tas as, ya que los bancos centrales responden a los datos de actividad.
# Fetch policy rates for EUR and USD
def get_indicator(currency: str, indicator: str, start: str = "2022-01-01") -> pd.Series:
r = requests.get(
f"{BASE}/announcements/{currency}/{indicator}",
params={"api_key": KEY, "start_date": start}
)
r.raise_for_status()
df = pd.DataFrame(r.json()["data"])
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date").sort_index()
return df["val"].rename(f"{currency.upper()}_{indicator}")
eur_rate = get_indicator("eur", "policy_rate")
usd_rate = get_indicator("usd", "policy_rate")
# Resample to monthly end-of-period, forward-fill
monthly_idx = pd.date_range(start="2022-01-01", end=pd.Timestamp.today(), freq="ME")
eur_rate_m = eur_rate.reindex(monthly_idx, method="ffill")
usd_rate_m = usd_rate.reindex(monthly_idx, method="ffill")
rate_spread = (eur_rate_m - usd_rate_m).rename("EUR_minus_USD_rate")
# Composite signal: PMI divergence weighted with rate differential
pmi_weight = 0.6
rate_weight = 0.4
composite = (
pmi_weight * eur_usd_spread.reindex(monthly_idx, method="ffill") +
rate_weight * rate_spread
).rename("composite_eur_bias")
print("Composite EUR/USD bias signal (last 6 months):")
print(composite.tail(6).to_string())
El PMI compuesto + señal de tipo de interés frente al EUR/USD 2022 a 2026
The composite signal combines PMI divergence (60%) and policy rate differential (40%). When both PMI divergence and rate differential align in the same direction, the subsequent 12-week FX return is strongest.
Tiempo de entrega: ¿Cuándo se paga la divergencia PMI?
The critical question for traders is the lead time: how many weeks or months after PMI divergence emerges does the FX pair tend to confirm the move? Empirically, the strongest correlation between PMI divergence and subsequent FX direction is observed at a 4–8 week lag for EUR/USD and GBP/USD. USD/JPY tends to have a slightly longer lag (8–12 weeks) because the Bank of Japan's intervention behaviour can delay or interrupt the FX trend even when PMI divergence is clear.
Para AUD y CAD, la relación PMI-lider es menos confiable en cualquier retraso fijo porque los precios de las materias primas pueden anular la señal por completo.
Marco práctico de tiempo de entrega
- En el caso de las empresas de servicios de telecomunicaciones, el número de unidades de producción de las mismas es el siguiente: PMI divergence leads FX direction by 4–8 weeks. Use composite PMI spread with a ±2.5 pt threshold as the primary bias filter.
- USD/JPY: el precio de venta de la moneda de la Unión PMI divergence leads FX direction by 8–12 weeks. BOJ intervention risk warrants a wider threshold (±4 pts) before acting on the signal.
- En el caso de las operaciones de inversión, el valor de las acciones de la entidad será el valor del capital de la empresa. La divergencia del PMI funciona sólo como un sesgo de apoyo. Requiere la confirmación del precio de las materias primas (minero de hierro para AUD, lácteos para NZD) antes de posicionarse.
- USD/CAD: el precio de venta de la moneda de la Unión El PMI de la industria manufacturera (no compuesto) es más relevante debido a la estructura de las exportaciones de Canadá.
Poniéndolo en conjunto: Un panel de señalización PMI en vivo
The following function builds a simple but complete PMI divergence signal dashboard across all major pairs, surfacing the current regime, the spread level, and its 3-month trend direction. This is a practical template for a morning workflow that takes under 60 seconds to run.
def pmi_signal_dashboard(start: str = "2023-01-01") -> pd.DataFrame:
"""
Build a cross-pair PMI divergence signal table.
Returns a DataFrame with current regime and trend for each pair.
"""
currencies = ["usd", "eur", "gbp", "jpy", "aud", "cad"]
pmi = pd.concat([get_pmi(c, start=start) for c in currencies], axis=1)
pair_definitions = [
("EUR/USD", "EUR", "USD", 2.5),
("GBP/USD", "GBP", "USD", 2.5),
("USD/JPY", "USD", "JPY", 4.0),
("AUD/USD", "AUD", "USD", 3.0),
("USD/CAD", "USD", "CAD", 3.0),
("EUR/GBP", "EUR", "GBP", 2.0),
]
rows = []
for pair, base_ccy, quote_ccy, thresh in pair_definitions:
spread = pmi[base_ccy] - pmi[quote_ccy]
spread = spread.dropna()
if spread.empty:
continue
current = spread.iloc[-1]
prior_3m = spread.iloc[-4] if len(spread) >= 4 else float("nan")
trend = "widening" if current > prior_3m else "narrowing" if current < prior_3m else "flat"
if current > thresh:
regime = f"FAVOURS {base_ccy}"
elif current < -thresh:
regime = f"FAVOURS {quote_ccy}"
else:
regime = "NEUTRAL"
rows.append({
"Pair" : pair,
"Spread" : round(current, 1),
"Trend" : trend,
"Regime" : regime,
})
return pd.DataFrame(rows).set_index("Pair")
dashboard = pmi_signal_dashboard()
print(dashboard.to_string())
Radar de señales de divergencia PMI instantánea actual
Vista por radar del nivel de divergencia del PMI actual por par (normalizado a una escala de ±10).
Principales riesgos y fallas de la señal
La divergencia PMI no es infalible.
- Eventos de exclusión de riesgo en un episodio de riesgo global agudo (p. ej., pandemia, contagio financiero), todas las lecturas de PMI se derrumban simultáneamente, lo que hace que la divergencia entre países no sea informativa.
- Fatiga de la encuesta o cambio estructural ocasionalmente las encuestas de los PMI no reflejan la realidad económica reportada debido a cambios estructurales en la forma en que las empresas responden a las encuestas. producción industrial ¿ Qué ? ventas al por menor los puntos finales.
- Las operaciones de supervisión del banco central — when a central bank is engaged in large-scale currency intervention (Bank of Japan 2022–2024, Swiss National Bank periodically), the FX pair can move aggressively against the PMI signal. Use the tipo de interés y las series de reservas de divisas como un control de cordura.
- Choques de precios de las materias primas para AUD, CAD y NZD, un repentino aumento o colapso de los precios de las materias primas puede anular completamente incluso una fuerte señal de divergencia PMI. punto final de las materias primas para el contexto.
El uso más robusto de la divergencia del PMI es como un filtro de régimen en lugar de una señal de entrada independiente.
La integración de los PMI en un marco macro-fx
El flujo de trabajo práctico para un analista de macro FX se ve así: cada mes, cuando se imprime un PMI compuesto, ejecuta el cálculo de la divergencia en todos los pares. Actualiza la clasificación del régimen. Comprueba si el régimen actual está de acuerdo o no con tus puntos de vista existentes de diferencia de tasa y posicionamiento de COT. Si el PMI, las tasas y el posicionamento están de acuerdo , esa es una configuración macro de alta convicción. Si no están de acordo es el mercado que te dice que algo está en transición.
La divergencia del PMI no garantiza una tendencia cambiaria. Identifica el contexto de actividad económica en el que es probable que surja una tendencias. Utilizado como un filtro de sesgo estructural en lugar de un desencadenante de comercio mecánico, es una de las herramientas más ricas en información, disponibles gratuitamente y oportunas en el conjunto de herramienta macro FX.
El FXMacroData PYME ¿ Qué ? PYME de la zona del euro Construye la señal de divergencia en unas pocas líneas de Python, superpónla sobre tu marco macro existente, y tienes un indicador líder que se actualiza cada mes semanas antes de que los datos oficiales de actividad confirmen lo que el PMI ya te dijo.