Live release feed
Sub-second macro releases for FX backtests
Point-in-time history
USD 25/month
Essai gratuit

Trade Views

Market Analysis

Divergence des PMI et change: le chef de file de la tendance

La divergence entre les PMI des pays est l'un des indicateurs les plus fiables dans le macro-FX. Lorsque l'activité manufacturière et des services d'une économie devance celle d'un autre, le taux de change tend à suivre souvent des semaines avant que le mouvement ne s'enregistre dans les modèles traditionnels de différentiel de taux. Cet article explique la mécanique, montre comment construire le signal à l'aide de l'API FXMacroData et explore quelles paires répondent le mieux aux régimes dirigés par le PMI.

Également disponible en English
Share article X LinkedIn Email
Divergence des PMI et change: le chef de file de la tendance image

La plupart des modèles macro pour les devises se concentrent sur ce que les banques centrales ont déjà fait: les différentiels de taux, les écarts de rendement et la divergence de politique qui est déjà évaluée dans la courbe à terme. La divergence du PMI fonctionne différemment.

L'intuition est simple. Lorsque les usines et les bureaux de service d'une économie s'accélèrent tandis qu'un concurrent se contracte, la demande sous-jacente pour la monnaie plus forte augmente: plus de production, plus d'exportations, plus de recrutement et plus de probabilité que sa banque centrale se penche sur le faucon. Les traders de devises qui attendent la confirmation officielle du PIB ont déjà raté l'entrée. Les commerçants qui suivent la divergence du PMI en temps réel en particulier l'écart entre les lectures composites du PMI peuvent se positionner plus tôt dans le mouvement.

Thèse de base

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.

Quelles sont les mesures du PMI et pourquoi il est le leader

The Purchasing Managers' Index is a diffusion index compiled monthly from surveys of senior procurement and supply-chain executives. Readings above 50 indicate expansion; below 50 indicate contraction. The index captures new orders, output, employment, supplier delivery times, and inventories — the forward-looking components of which (new orders in particular) provide a genuine look-ahead into economic activity 30 to 90 days out.

Trois variantes sont pertinentes pour l'analyse des changes:

  • PMI dans le secteur manufacturier sensible au commerce, très réactif aux chocs de la demande mondiale, aux cycles tarifaires et aux phases de reconstruction/déstockage des stocks.
  • PMI dans le secteur des services reflète la force de la demande intérieure, la transmission de l'inflation salariale et la confiance des consommateurs.
  • PMI composé mélange pondéré du PIB entre les secteurs manufacturier et des services: il fournit le signal le plus large de l'activité économique et se corréle le plus systématiquement avec l'orientation de la tendance des changes sur des horizons de 1 à 3 mois.

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.

Couverture des PMI dans FXMacroData

Le point d'extrémité PMI FXMacroData renvoie les séries chronologiques composites du PMI pour chaque devise majeure , y compris les variantes pondérées par fabrication le cas échéant. /api/v1/announcements/{currency}/pmi L'indice non manufacturier (NMI) est disponible pour les USD et les CNY via le nmi Une balle d'indicateur.

Construire le signal de divergence des PMI

Le signal est construit à partir de l'écart entre les lectures composites des PMI de deux pays. Un écart positif lorsque le PMI du pays A dépasse le PMI de pays B favorise la monnaie A par rapport à la monnaia B. La force du signal augmente avec:

  • La grandeur absolue de l'écart (divergence plus grande = biais plus fort)
  • Direction du changement (élargissement de l'écart = accélération du biais)
  • Durée (différence persistante sur plusieurs mois = régime de tendance, pas une fois)
  • Le croisement de 50 niveaux (un côté au-dessus du seuil d'expansion tandis que l'autre se contracte)

L'exemple suivant fournit des données composites sur les PMI des États-Unis et de la zone euro et calcule l'écart de divergence relatif à l'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 vs USD Composite PMI — 2020 to 2026

Les deux séries des PMI sont représentées par le niveau neutre 50.

EUR/USD: Paire de référence pour la divergence des PMI

EUR/USD est la paire de devises la plus négociée au monde et la plus étudiée pour l'analyse macro-fondamentale. C'est aussi la paires où la divergence des PMI a historiquement montré la relation le plus claire entre le délai de livraison en partie parce que les éditions US ISM/PMI et S&P Global PMI de la zone euro sont surveillées de près, largement distribuées et ont une longue histoire qui permet un backtesting.

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.

EURUSD PMI Divergence par rapport à EUR/USD Spot 2020 à 2026

L'écart PMI (EUR moins USD) représenté par rapport au taux de change EUR/USD. Notez comment l'écard PMI a tendance à changer de direction avant que le taux au comptant ne suive. L'axe secondaire pour EUR/ USD est inversé pour aligner visuellement la divergence PMI sur la direction de change attendue.

Étendre le signal à travers les paires principales

Le même cadre de divergence s'applique à toutes les principales paires de devises où des séries PMI sont disponibles.

Indice de la force du signal de divergence du PMI par paire Corrélation avec le rendement des changes sur 8 semaines suivantes

Coefficients de corrélation illustratifs entre la divergence des PMI et la direction des changes de 8 semaines suivantes.

Les paires les plus fiables pour répondre à la divergence des PMI partagent certaines caractéristiques: les deux économies ont suivi de près les séries PMI de haute qualité; il existe un commerce bilatéral significatif entre les deux pays; et aucune des deux devises n'est principalement une monnaie de matières premières où les prix des ressources peuvent annuler les signaux de macro-activité. EUR/USD, GBP/USD , USD/JPY et EUR/GBP se situent systématiquement dans cette catégorie.

Récupération des données sur les PMI multi-monnaies

La construction d'un tableau de bord de signaux PMI multipares nécessite de tirer les données PMI de plusieurs devises et de les aligner sur une chronologie mensuelle commune. Points d'extrémité des PMI fournit des séries chronologiques mensuelles cohérentes pour toutes les principales devises.

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})")

Classement du régime AMP

Une seule lecture du spread PMI est instructive, mais le signal le plus négociable provient de la classification du régime: identifier quand la divergence franchit un seuil significatif et y reste pendant plusieurs mois.

Un A fort

Différence > +3 points, élargissement ou maintien A en expansion (> 50), B proche de la contraction

Neutre

L'écart est de ± 3 pts, ou les deux économies dans un territoire similaire.

Un B fort

Diffusion < -3 points, élargissement ou maintien. B en expansion, A près de contraction.

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)")

Combiner la divergence des PMI avec le différentiel des taux

La divergence des PMI est plus forte lorsqu'elle s'aligne sur ou mène le différentiel des taux de référence entre deux pays. Lorsque la divergence du PMI s'élargit en faveur de la monnaie A en même temps que le différenciel des cours favorise également A, le biais structurel des changes est renforcé et tend à être maintenu plus longtemps. Lorsque les divergences des PMI et le différential de taux ne sont pas d'accord, un signal finira par gagner; le PMI a tendance à diriger la trajectoire des taux, car les banques centrales répondent aux données d'activité.

# 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())

Composite PMI + Rate Signal vs EUR/USD — 2022 to 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.

Temps de réalisation: quand la divergence des PMI porte ses fruits?

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.

Pour l'AUD et le CAD, la relation PMI-lead est moins fiable à tout décalage fixe car les prix des matières premières peuvent annuler le signal entièrement.

Cadre pratique des délais de réalisation

  • EUR/USD, GBP/USD et EUR/GBP: 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: PMI divergence leads FX direction by 8–12 weeks. BOJ intervention risk warrants a wider threshold (±4 pts) before acting on the signal.
  • Les prix à la vente sont les suivants: La divergence des PMI ne fonctionne que comme un biais de soutien. Exiger la confirmation du prix des matières premières (minerai de fer pour AUD, produits laitiers pour NZD) avant de positionner.
  • USD/CAD: Les PMI manufacturiers (pas composites) sont plus pertinents en raison de la structure des exportations du Canada.

Le mettre en place: un tableau de bord de signaux PMI en direct

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 signal de divergence PMI Capture d'écran actuelle

Vue radar du niveau actuel de divergence des PMI par paire (normalisé à une échelle de ±10).

Principaux risques et défaillances du signal

La divergence des PMI n'est pas infaillible. Plusieurs conditions peuvent provoquer une défaillance ou une inversion du signal:

  • Événements de déduction du risque dans un épisode global de forte élimination des risques (par exemple, pandémie, contagion financière), toutes les lectures des PMI s'effondrent simultanément, rendant la divergence entre les pays peu informative.
  • Fatigue de l'enquête ou changement structurel les enquêtes sur les PMI ne reflètent pas la réalité économique rapportée en raison de changements structurels dans la façon dont les entreprises répondent aux enquêtes. production industrielle ou ... ventes au détail les points de fin.
  • Les banques centrales ne peuvent pas être soumises à des mesures de précaution — 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 taux de réglementation et les séries de réserves de change comme un contrôle de santé mentale.
  • Chocs des prix des matières premières pour l'AUD, le CAD et le NZD, une hausse ou un effondrement soudains des prix des matières premières peuvent complètement annuler même un fort signal de divergence PMI. point final des produits de base pour le contexte.

L'utilisation la plus robuste de la divergence PMI est comme un filtre de régime plutôt que comme un signal d'entrée autonome.

Intégration des PMI dans un cadre macro-FX

Le flux de travail pratique pour un analyste de macro FX ressemble à ceci: chaque mois, lorsque le PMI composite imprime, exécutez le calcul de la divergence sur toutes les paires. Mettez à jour la classification du régime. Vérifiez si le régime actuel est d'accord ou non avec vos vues existantes sur le différentiel de taux et le positionnement COT. Si le PMI, les taux et les positionnements sont tous d'accords , c'est une configuration macro de grande conviction. S'ils ne sont pas d' accord c' est le marché qui vous dit que quelque chose est en transition.

La divergence du PMI n'est pas une garantie d'une tendance des changes. Elle identifie le contexte d'activité économique dans lequel une tendance est susceptible d'émerger. Utilisée comme un filtre de biais structurel plutôt que comme un déclencheur mécanique du commerce, elle est l'un des outils les plus riches en informations, librement disponibles et opportuns de la boîte à outils macro FX.

Le FXMacroData Points d'extrémité des PMI Je suis désolé . Indice final des PMI de la zone euro Vous pouvez créer le signal de divergence en quelques lignes de Python, le superposer à votre macro framework existant, et vous avez un indicateur de pointe qui se met à jour tous les mois semaines avant que les données d'activité officielles confirment ce que le PMI vous a déjà dit.

Blogroll

AI Answer-Ready

Key Facts

Page
Pmi Divergence FX Leading Indicator
Section
Articles
Canonical URL
https://fxmacrodata.com/fr/articles/pmi-divergence-fx-leading-indicator
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 11:06 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

What is this page about? This page explains Pmi Divergence FX Leading Indicator with directly usable context for trading, research, and API workflows.

What source should be cited? Use the canonical URL and the listed source field; cite official publisher references when available.

How fresh is this content? The last updated value above reflects the page metadata or latest available data timestamp.

Can this be used in AI assistants? Yes. This section is intentionally structured for retrieval and citation in chat assistants.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.