Divergência dos PMI e câmbio: liderando a tendência banner image

Trade Views

Market Analysis

Divergência dos PMI e câmbio: liderando a tendência

A divergência entre os PMI de um país e outro é um dos principais indicadores mais confiáveis em macro FX. Quando a atividade de manufatura e serviços de uma economia se adianta de um par, a taxa de câmbio tende a seguir muitas vezes semanas antes do movimento registrar em modelos tradicionais de diferencial de taxa.

Também disponível em English

A maioria dos modelos macro para FX se concentra no que os bancos centrais já fizeram: diferenciais de taxa, spreads de rendimento e divergência de política que já é avaliada na curva de ação. A divergências PMI funcionam de forma diferente. Como as pesquisas do Índice de Gestores de Compras capturam mudanças em tempo real na atividade empresarial antes de aparecerem nas impressões oficiais do PIB ou do IPC, uma lacuna de PMI crescente entre dois países é um dos poucos sinais que precedem consistentemente as mudanças de tendência de câmbio em vez de confirmá-las.

A intuição é simples. Quando os andares de fábrica e as mesas de serviço de uma economia estão acelerando enquanto um par está se contraindo, a demanda subjacente pela moeda mais forte aumenta: mais produção, mais exportações, mais contratações e mais probabilidade de seu banco central se inclinar para o falcão. Os comerciantes de FX que esperam pela confirmação oficial do PIB já perderam a entrada. Os traders que rastreiam a divergência do PMI em tempo real particularmente o spread entre leituras de PMI compostas podem se posicionar mais cedo na mudança.

Tese central

Quando o PMI composto de uma economia diverge significativamente do de uma outra economia especialmente quando um cruza acima de 50 (expansão) enquanto o outro cai abaixo dele , a taxa de câmbio correspondente tende a evoluir a favor da economia mais forte nas 412 semanas seguintes.

O que são as medidas PMI e por que é líder

O Índice de Gestores de Compras é um índice de difusão compilado mensalmente a partir de pesquisas de altos executivos de compras e cadeia de suprimentos. Leituras acima de 50 indicam expansão; abaixo de 50 indica contração. O índice capta novas encomendas, produção, emprego, prazos de entrega de fornecedores e estoques cujos componentes prospectivos (novas encomendadas em particular) fornecem uma visão de futuro genuína para a atividade econômica de 30 a 90 dias.

Três variantes são relevantes para a análise de divisas:

  • PMI do sector da manufatura sensível ao comércio, altamente reativo a choques da procura global, ciclos pautais e fases de reconstrução/desabastecimento de estoques.
  • PMI de serviços reflete a força da procura interna, a transmissão da inflação salarial e a confiança do consumidor.
  • PMI composto Combinação ponderada do PIB entre as indústrias transformadoras e os serviços.

A vantagem do tempo de entrega dos dados do PMI sobre as impressões do PIB é significativa: o PMI composto é publicado no primeiro dia útil de cada mês para o mês anterior, enquanto o PIB normalmente chega 36 semanas após o final do trimestre e é posteriormente revisto.

Cobertura PMI em FXMacroData

O ponto final do PMI FXMacroData retorna a série temporal do PMI composta para cada moeda principal incluindo variantes ponderadas por fabrico, se aplicável. /api/v1/announcements/{currency}/pmi O NMI (Index de não-manufatura) está disponível para USD e CNY através do nmi Bala de indicador.

Construção do sinal de divergência do PMI

O sinal é construído a partir do diferencial entre as leituras do PMI composto de dois países. Um diferencial positivo onde o PMI do país A excede o PMI de país B favorece a moeda A em relação à moeda B. A força do sinal aumenta com:

  • A magnitude absoluta da variação (divergência maior = viés mais forte)
  • Direção da mudança (ampliação da propagação = aceleração do viés)
  • Duração (divergência persistente de vários meses = regime de tendência, não único)
  • O cruzamento de 50 níveis (um lado acima do limiar de expansão enquanto o outro se contrai)

O exemplo a seguir apresenta dados do PMI composto dos EUA e da zona do euro e calcula o diferencial de divergência relevante do 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 versus USD PMI composto 2020 a 2026

As duas séries de PMI foram representadas em relação ao nível neutro de 50.

EUR/USD: O par de referência para a divergência dos PMI

EUR/USD é o par de moedas mais negociado no mundo e o mais amplamente estudado para análise macrofundamental. É também o par onde a divergência PMI mostrou historicamente a relação mais clara de tempo de chegada em parte porque tanto os lançamentos do ISM/PMI dos EUA quanto o S&P Global PMI da zona do euro são monitorados de perto, amplamente distribuídos e têm longos históricos que permitem testes retrospectivos.

A relação não é mecânica EUR/USD também é fortemente influenciada pelo apetite por risco, preços da energia, expectativas de taxa do BCE/Fed e posicionamento. Mas a divergência do PMI fornece consistentemente um viés estrutural que sobrepõe todos esses fatores de curto prazo. Em um período como o primeiro semestre de 2024, quando os dados dos EUA superaram e a zona do euro lutou com as consequências dos choques de custos de energia, a vantagem persistente do PMI dos EUA correlacionou-se com uma oferta de USD sustentada que ofuscou vários eventos de comunicação do BCE positivos para o EUR.

EURUSD PMI Divergência vs EUR/USD Spot 2020 a 2026

O diferencial PMI (EUR menos USD) representado em relação à taxa de câmbio EUR/USD. Observe como o diferencial do PMI tende a mudar de direção antes da taxa de spot. O eixo secundário para o EUR/ USD é invertido para alinhar visualmente a divergência do PMI com a direção de câmbios esperada.

Estender o sinal através dos pares principais

A diferença entre as principais pairas de moedas em que existem séries de PMI é muito grande, mas a diferença de sensibilidade é muito mais elevada em função da orientação comercial, da relação com as matérias-primas ou da dominância dos serviços das economias subjacentes.

Força do sinal de divergência do PMI por par Correlação com o retorno de divisas de 8 semanas subsequentes

Coeficientes de correlação ilustrativos entre a divergência do PMI e a subsequente direcção cambial de 8 semanas.

Os pares mais confiáveis que respondem à divergência do PMI compartilham certas características: ambas as economias têm monitoradas de perto séries de PMI de alta qualidade; há um comércio bilateral significativo entre os dois países; e nenhuma das moedas é principalmente uma moeda de commodities onde os preços dos recursos podem anular sinais de macroatividade. EUR/USD, GBP/USD , USD/JPY e EUR/GBP se encontram consistentemente nesta categoria.

Obtenção de dados do PMI em várias moedas

A construção de um painel de sinais PMI de vários pares requer a extração de dados PMI em várias moedas e alinhá-los a um cronograma mensal comum. Ponto de avaliação do PMI fornece séries temporais mensais consistentes para todas as principais moedas.

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

Classificação do regime AMP

Uma única leitura do spread do PMI é informativa, mas o sinal mais negociável vem da classificação do regime: identificar quando a divergência cruza um limiar significativo e permanece lá por vários meses.

A forte

A) em expansão (> 50), B) perto de contração.

Neutro

A diferença de preços entre os dois tipos de preços é de ± 3 pontos percentuais, ou ambas as economias em território semelhante.

Forte B

A variação de curto prazo é de 0,3 pontos, em expansão ou em retenção.

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

Combinar a Divergência do PMI com o Diferencial de Taxa

A divergência do PMI é mais poderosa quando se alinha com ou leva o diferencial de taxas de juro entre dois países. Quando a divergências do PMI se alargam em favor da moeda A, ao mesmo tempo em que o diferença de taxas também favorece A, o viés estrutural de câmbio é reforçado e tende a ser mantido por mais tempo.

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

O PMI composto + sinal de taxa contra o EUR/USD 2022 a 2026

O sinal composto combina a divergência do PMI (60%) e o diferencial de taxas de juro (40%).

Tempo de execução: quando a divergência dos PMI é recompensada?

A questão crítica para os traders é o tempo de espera: quantas semanas ou meses após a divergência do PMI surgir, o par de câmbio tende a confirmar o movimento? Empiricamente, a correlação mais forte entre a divergemência do PMI e a subsequente direção do câmbio é observada em um atraso de 48 semanas para o EUR/USD e GBP/USD. O USD/JPY tende a ter um atriso ligeiramente mais longo (812 semanas) porque o comportamento de intervenção do Banco do Japão pode atrasar ou interromper a tendência do câmpio mesmo quando a divergencia do PMI é clara.

Para o AUD e CAD, a relação PMI-liderança é menos confiável em qualquer atraso fixo porque os preços das commodities podem anular o sinal inteiramente.

Quadro prático de prazos de execução

  • EUR/USD, GBP/USD e EUR/GBP: A divergência do PMI leva a direção da FX em 48 semanas.
  • USD/JPY: A divergência do PMI leva a direcção da moeda de 812 semanas.
  • AUD/USD, NZD/USD: A divergência do PMI funciona apenas como um viés de apoio.
  • USD/CAD: A tendência dos preços do petróleo deve alinhar-se com o viés do PMI para um sinal confiável.

Colocando-o juntos: um painel de sinalização PMI ao vivo

A função a seguir cria um painel de sinais de divergência PMI simples, mas completo em todos os principais pares, mostrando o regime atual, o nível de spread e sua direção de tendência de 3 meses.

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 sinal de divergência PMI instantâneo atual

Vista por radar do nível de divergência do PMI actual por par (normalizado numa escala de ±10).

Riscos principais e falhas de sinalização

A divergência do PMI não é infalível.

  • Eventos de risco num episódio global de risco acentuado (por exemplo, pandemia, contagio financeiro), todas as leituras do PMI desmoronam simultaneamente, tornando a divergência entre países pouco informativa.
  • Fadiga da pesquisa ou alteração estrutural ocasionalmente, as pesquisas PMI não refletem a realidade económica relatada devido a mudanças estruturais na forma como as empresas respondem às pesquises. produção industrial Ou ... vendas de retalho pontos finais.
  • Prejuízos do banco central quando um banco central está envolvido numa intervenção monetária em larga escala (Banco do Japão 20222024, Banco Nacional Suíço periodicamente), o par de câmbio pode mover-se agressivamente contra o sinal PMI. Taxa de política e séries de reservas estrangeiras como uma verificação de sanidade.
  • Choques dos preços das matérias-primas para o AUD, CAD e NZD, um súbito aumento ou colapso dos preços das matérias-primas pode anular completamente mesmo um forte sinal de divergência PMI. ponto final de commodities para o contexto.

O uso mais robusto da divergência do PMI é como um filtro de regime em vez de um sinal de entrada autônomo.

Integração do PMI num quadro macro-fx

O fluxo de trabalho prático para um analista de macro FX parece assim: a cada mês, quando o PMI composto imprime, execute o cálculo de divergência em todos os pares. Atualize a classificação do regime. Verifique se o regime atual concorda ou discorda com suas visões de posicionamento de diferencial de taxa e COT existentes. Se o PMI, as taxas e o posicionamentos concordarem , é uma configuração macro de alta convicção. Se discordarem ??, é o mercado dizendo que algo está em transição.

A divergência do PMI não garante uma tendência cambial. Identifica o pano de fundo da atividade econômica sob o qual uma tendencia provavelmente surgirá. Usado como um filtro de viés estrutural em vez de um gatilho mecânico de negociação é uma das ferramentas mais ricas em informações, disponíveis gratuitamente e oportunas no kit de ferramentas macro FX.

O FXMacroData Ponto de avaliação do PMI E ... Ponto de partida do PMI da zona do euro Construir o sinal de divergência em algumas linhas de Python, colocá-lo sobre sua estrutura macro existente, e você tem um indicador líder que atualiza todos os meses semanas antes de dados oficiais de atividade confirma o que o PMI já lhe disse.

Blogroll