Am Ende dieses Leitfadens erhalten Sie Arbeitsbeispiele für jeden öffentlichen Endpunkt in der FXMacroData API von der Ankündigungsreihe und dem Release-Kalender bis zur COT-Positionierung, den Edelmetallpreisen, den Devisenkursen und der GraphQL-Schnittstelle , damit Sie das richtige Werkzeug für jeden Macrodaten-Workflow auswählen können.
Voraussetzungen
- Ein FXMacroData-Konto Die Daten werden von der Agentur für Datensicherheit erfasst.
- Ein professioneller API-Schlüssel für den Zugang zu Endpunkten ohne USD und für bezahlten Endpunkt (USD-Anfragen sind auf den meisten Endpunkte kostenlos)
curlfür die Befehlszeilenbeispiele oder Python 3.9+ mit derrequestsBibliothek- Grundlegende Kenntnisse von REST-APIs und JSON-Antworten
| Endpunktfamilie | Fahrbahn | Autorin |
|---|---|---|
| Ankündigungen | /api/v1/Ankündigungen/{Währung}/{Indikator} | USD kostenlos · Pro für andere |
| Veröffentlichungskalender | /api/v1/kalender/{Währung} | - Ohne |
| Datenkatalog | /api/v1/data_catalogue/{Währung} | - Ohne |
| COT-Positionierung | /api/v1/cot/{Währung} | USD kostenlos · Pro für andere |
| Metalle | /api/v1/Rohstoffe/{Indikator} | Pro-Schlüssel immer erforderlich |
| Wechselkurs | /api/v1/forex/{Basis}/{Zitat} | - Ohne |
| Marktveranstaltungen | /api/v1/Markt_Sitzungen | - Ohne |
| GraphQL | /api/v1/graphql | USD + Katalog kostenlos · Pro für andere |
Schritt 1 Bekanntmachungen: historische Indikatorenreihen
Der Endpunkt der Ankündigungen ist der Kern von FXMacroData. Er gibt eine normalisierte, zeitgestempelte Zeitreihe für jeden unterstützten makroökonomischen Indikator zurück. Jede Zeile enthält das Beobachtungsdatum, den veröffentlichten Wert und den genauen Unix-Zeitstempel der offiziellen Veröffentlichung , was Ihnen eine zweite Ebene an Präzision für ereignisorientierte Forschung und Backtesting bietet.
USD-Anfragen funktionieren ohne API-Schlüssel. Für jede andere Währung fügen Sie Ihren Schlüssel als Abfrageparameter hinzu. Verwenden Sie start_date Und ... end_date (JJJ-MM-DD) um das Fenster zu verengen; Standard ist die letzten 365 Tage.
# USD inflation series — no key needed
curl "https://fxmacrodata.com/api/v1/announcements/usd/inflation"
# AUD policy rate — Pro key required
curl "https://fxmacrodata.com/api/v1/announcements/aud/policy_rate?api_key=YOUR_API_KEY"
# EUR GDP with a custom date range
curl "https://fxmacrodata.com/api/v1/announcements/eur/gdp?start_date=2024-01-01&end_date=2026-03-01&api_key=YOUR_API_KEY"
{
"currency": "USD",
"indicator": "inflation",
"has_official_forecast": false,
"start_date": "2025-03-01",
"end_date": "2026-03-30",
"data": [
{
"date": "2026-02-01",
"val": 2.8,
"announcement_datetime": 1741082400,
"pct_change": -0.5,
"pct_change_12m": -6.7
}
]
}
Die ... announcement_datetime Das Feld ist ein Unix-Zeitstempel (Sekunden, UTC) für den genauen Zeitpunkt, zu dem die Daten offiziell veröffentlicht wurden. Verwenden Sie es für die Ausrichtung der Ereignisstudie und um eine vorausschauende Verzerrung bei Backtests zu vermeiden. Durchsuchen Sie die verfügbaren Indikator-Slugs für jede Währung mit dem Datenkatalog (Schritt 3) oder unter Datendokumente der API- Ich weiß .
Schritt 2 Veröffentlichungskalender: bevorstehende Bekanntmachungszeiten
Der Kalenderendpunkt gibt die geplanten UTC-Ankündigungszeitstempel für jede kommende Makro-Veröffentlichung für eine bestimmte Währung zurück. Verwenden Sie ihn, um eine gezielte Abholung zu planen, die bei der Veröffentliching neuer Daten statt einer kontinuierlichen Abholing in einem festen Intervall ausgelöst wird.
Es ist kein API-Schlüssel erforderlich. Filtern Sie mit der optional indicator Anfrageparameter Der spezielle Währungscode COMM gibt den Zeitplan für die Veröffentlichung der Ware zurück.
# All upcoming releases for USD
curl "https://fxmacrodata.com/api/v1/calendar/usd"
# Filter to a single indicator
curl "https://fxmacrodata.com/api/v1/calendar/usd?indicator=non_farm_payrolls"
# Commodity release schedule
curl "https://fxmacrodata.com/api/v1/calendar/COMM"
{
"currency": "USD",
"indicator": "non_farm_payrolls",
"data": [
{
"release": "non_farm_payrolls",
"announcement_datetime": 1746540600,
"requires_api_key": false
}
]
}
Umwandeln Sie den Zeitstempel in eine für den Menschen lesbare UTC-Zeit mit datetime.fromtimestamp(ts, tz=timezone.utc) In Python oder ... new Date(ts * 1000).toISOString() Für ein vollständiges Zeitplanmuster siehe Wie man die Release Calendar API zum Planen von Indikator-Abrufen verwendet- Ich weiß .
Schritt 3 Datenkatalog: Entdecken Sie verfügbare Indikatoren
Bevor Sie einen Code schreiben, der auf einen bestimmten Indikator abzielt, fragen Sie im Katalog nach, was für eine Währung verfügbar ist. Die Antwort bildet jede Indikatorschleuse auf ihren menschlich lesbaren Namen, die Einheit, die Frequenz der Freigabe und ob die Zentralbank eine offizielle Prognose für sie veröffentlicht.
# List all indicators for EUR — no key required
curl "https://fxmacrodata.com/api/v1/data_catalogue/eur"
# Include routing and auth discovery metadata per indicator
curl "https://fxmacrodata.com/api/v1/data_catalogue/usd?include_capabilities=true"
{
"gdp": {
"name": "GDP Growth",
"unit": "%QoQ",
"frequency": "Quarterly",
"has_official_forecast": false
},
"inflation": {
"name": "Inflation (CPI)",
"unit": "%YoY",
"frequency": "Monthly",
"has_official_forecast": false
},
"policy_rate": {
"name": "Policy Rate",
"unit": "%",
"frequency": "Meeting",
"has_official_forecast": true
}
}
Die obersten Schlüssel in der Antwort sind genau die gleichen . {indicator} Unterstützte Währungen sind USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, CNY, SGD, SEK, DKK, PLN und BRL. Pass include_coverage=true Die Daten werden in einem einzigen Schritt verarbeitet.
Schritt 4 COT-Positionierung: Spekulative Futures-Daten
Der Endpunkt "Commitment of Traders" liefert wöchentliche CFTC-Positionsdaten für FX-Futures-Kontrakte. Er zeigt die gesamte offenen Zinsen auf nichtkommerzielle (spekulative), kommerzielle und nicht meldepflichtige Teilnehmer. Ein weit verbreiteter führender Indikator für Umkehrungen der Währungstrend und überfüllte Positionierungen.
Unterstützte Währungen: USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD. USD ist kostenlos; alle anderen erfordern einen Pro-Schlüssel.
# USD COT history — free
curl "https://fxmacrodata.com/api/v1/cot/usd"
# EUR COT with a custom date range
curl "https://fxmacrodata.com/api/v1/cot/eur?start_date=2025-01-01&api_key=YOUR_API_KEY"
{
"currency": "EUR",
"instrument": "EURO FX - CHICAGO MERCANTILE EXCHANGE",
"fx_overlay": { "pair": "EUR/USD" },
"start_date": "2025-01-07",
"end_date": "2026-03-25",
"data": [
{
"date": "2026-03-18",
"announcement_datetime": 1742493000,
"open_interest": 812345,
"noncommercial_long": 185000,
"noncommercial_short": 92000,
"noncommercial_net": 93000,
"commercial_long": 203000,
"commercial_short": 310000,
"commercial_net": -107000,
"nonreportable_long": 21000,
"nonreportable_short": 9000
}
]
}
Die ... noncommercial_net Der Wert des Ansatzes "Speculative Long minus Short" ist für Devisenhändler der am häufigsten genannte Positionsmesswert. announcement_datetime for the Friday 3:30 PM ET CFTC publication. For EUR pair context see the Kursbewertung in EUR- Ich weiß .
Schritt 5 Metalle: Gold-, Silber- und Platinpreise
Der Metallendpunkt gibt tägliche Preisserien für Edelmetalle zurück, die von der Royal Mint (LBMA-Fixes) bezogen werden. Diese Reihen sind als makro-Input für verschiedene Vermögenswerte nützlich, insbesondere für die Verfolgung von Safe-Haven-Flüssen und USD-gebundener Dynamik.
Für diesen Endpunkt ist immer ein professioneller API-Schlüssel erforderlich. gold- Ich weiß . silver- Ich weiß . platinum- Ich weiß .
# Gold LBMA PM Fix daily prices
curl "https://fxmacrodata.com/api/v1/commodities/gold?api_key=YOUR_API_KEY"
# Silver with a date range
curl "https://fxmacrodata.com/api/v1/commodities/silver?start_date=2025-01-01&api_key=YOUR_API_KEY"
# Platinum spot
curl "https://fxmacrodata.com/api/v1/commodities/platinum?api_key=YOUR_API_KEY"
{
"currency": "COMM",
"indicator": "gold",
"has_official_forecast": false,
"start_date": "2025-03-30",
"end_date": "2026-03-30",
"data": [
{
"date": "2026-03-28",
"val": 2870.00,
"pct_change": 1.2,
"pct_change_12m": 30.1
}
]
}
Die Antwortform ist identisch mit dem Endpunkt der Ankündigungen, so dass Sie denselben Parsing-Code wiederverwenden können. announcement_datetime Ist es ? null Die Datenbank ist für die täglichen Preisreihen und wird nur für offizielle monatliche Veröffentlichungen ausgefüllt.
Schritt 6 Devisenkurse: tägliche Spotpreiserie
Der Forex-Endpunkt gibt täglich OHLC-Spotkursdaten für jedes unterstützte Währungspaar zurück. Es ist kein API-Schlüssel erforderlich. Verwenden Sie ihn, um Makro-Indikatorveröffentlichungen mit dem zeitgenössischen Wechselkurs für Backtesting- oder Chartvisualisierungs-Workflows auszurichten.
Basis und Anführungszeichen als getrennte Pfadsegmente (z. B. /forex/eur/usd Für den EUR/USD) Hinzufügen von Überlagerungen der technischen Indikatoren mit den indicators Abfrageparameter.
# EUR/USD daily rates — no key required
curl "https://fxmacrodata.com/api/v1/forex/eur/usd"
# AUD/JPY with a custom date range
curl "https://fxmacrodata.com/api/v1/forex/aud/jpy?start_date=2025-01-01"
# GBP/USD with technical indicators overlaid
curl "https://fxmacrodata.com/api/v1/forex/gbp/usd?indicators=sma_20,rsi_14"
{
"base": "EUR",
"quote": "USD",
"start_date": "2025-03-30",
"end_date": "2026-03-30",
"data": [
{
"date": "2026-03-28",
"close": 1.0832,
"open": 1.0821,
"high": 1.0867,
"low": 1.0798
}
]
}
Schritt 7 Marktsitzungen: Echtzeit-Sitzungszustand
Der Endpunkt der Marktsitzungen gibt den aktuellen Status der offenen/schließenden Sitzungen für alle vier wichtigen FX-Sitzungen Sydney, Tokyo, London und New York zusammen mit den aktiven Überlappungsfenstern zurück. Es ist kein API-Schlüssel erforderlich. Verwenden Sie ihn, um zeitbezogene Automatisierung zu Spitzenliquiditätsfensteren zu integrieren oder Diagramme mit Sitzungsgrenzen zu annoteren.
# Real-time snapshot — no key required
curl "https://fxmacrodata.com/api/v1/market_sessions"
# Historical snapshot for scheduling or testing
curl "https://fxmacrodata.com/api/v1/market_sessions?at=2026-03-28T12:00:00Z"
{
"now_utc": "2026-03-30T08:47:00Z",
"now_unix": 1743324420,
"is_market_day": true,
"sessions": [
{
"name": "London",
"is_open": true,
"seconds_to_close": 25200,
"currencies": ["EUR", "GBP", "CHF"],
"open_utc": "2026-03-30T07:00:00Z",
"close_utc": "2026-03-30T15:00:00Z"
}
],
"overlaps": [
{
"name": "London / New York",
"is_active": false,
"priority": "high",
"start_utc": "2026-03-30T12:00:00Z",
"end_utc": "2026-03-30T16:00:00Z",
"notable_pairs": ["EUR/USD", "GBP/USD", "USD/CHF"],
"duration_hours": 4
}
]
}
Die Londoner/New Yorker Überschneidung ist das Fenster mit der höchsten Liquidität des Handelstages und ist der Zeitpunkt, an dem Makro-Releases am häufigsten die größten Spotbewegungen verursachen. is_market_day: false Die meisten Unternehmen haben sich in den letzten Jahren dazu entschlossen, die Automatisierung an Wochenenden und an den wichtigsten Marktferien zu überspringen.
Schritt 8 GraphQL: mehrere Abfragen in einer Anfrage
FXMacroData zeigt einen GraphQL-Endpunkt, der die REST-Oberfläche genau widerspiegelt dieselben Authentifizierungsregeln, gleiche Feldnamen, dieselben Daten , aber Sie können nur die benötigten Felder deklarieren und mehrere Abfragen in eine einzige HTTP-Rundreise kombinieren. und Kurs der GBP und Ein AUD-Veröffentlichungskalender, das ist ein POST statt drei GETs.
Schicken Sie einen POST - Ich bin hier . https://fxmacrodata.com/api/v1/graphql mit einem JSON-Körper, der eine query Die verfügbaren Wurzelfelder sind announcements- Ich weiß . dataCatalogueUnd ... calendar- Ich weiß .
# Single free USD query — no key required
curl -s -X POST "https://fxmacrodata.com/api/v1/graphql" \
-H "Content-Type: application/json" \
-d '{
"query": "{ announcements(currency: \"USD\", indicator: \"inflation\") { currency indicator data { date val pctChange } } }"
}'
# Batched: EUR inflation + GBP policy rate in one request
curl -s -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query { eurCPI: announcements(currency: \"EUR\", indicator: \"inflation\") { data { date val } } gbpRate: announcements(currency: \"GBP\", indicator: \"policy_rate\") { data { date val } } }"
}'
{
"data": {
"eurCPI": { "data": [{ "date": "2026-02-28", "val": 2.3 }] },
"gbpRate": { "data": [{ "date": "2026-03-20", "val": 4.5 }] }
}
}
eurCPI: (siehe oben) um Feldnamenkonflikte bei mehrfacher Chargenverteilung zu vermeiden announcements Jeder Alias wird zu einem separaten Schlüssel in der data Antwortobjekt.
GraphQL gibt HTTP 200 zurück, auch wenn ein Abfragefeld fehlschlägt Fehler auf einer oberen Ebene erscheinen errors Eine vollständige Python- und JavaScript-Implementierung mit Fehlerbearbeitung und Batching-Mustern finden Sie unter Wie man FXMacroData über GraphQL abfragt- Ich weiß .
Schritt 10 End-to-end-Python-Arbeitsfluss
Der folgende Snippet zieht die häufigsten Muster in Reihenfolge zusammen: entdecken Sie verfügbare Indikatoren, überprüfen Sie die nächste geplante Veröffentlichung, holen Sie zwei Indikatorreihen in einer einzigen GraphQL-Anfrage ab und überprüfen dann bedingt den Marktsitzungszustand, bevor Sie die Ausgabe routen.
import requests
from datetime import datetime, timezone
BASE = "https://fxmacrodata.com/api/v1"
API_KEY = "YOUR_API_KEY"
def params(require_key: bool = True) -> dict:
return {"api_key": API_KEY} if require_key else {}
# 1. Discover available indicators for AUD (free)
catalogue = requests.get(f"{BASE}/data_catalogue/aud", params=params(False), timeout=10)
catalogue.raise_for_status()
print("AUD indicators:", list(catalogue.json().keys())[:5])
# 2. Check the next USD non-farm payrolls release timestamp (free)
cal = requests.get(f"{BASE}/calendar/usd", params={"indicator": "non_farm_payrolls"}, timeout=10)
cal.raise_for_status()
events = cal.json().get("data", [])
if events:
ts = events[0]["announcement_datetime"]
dt = datetime.fromtimestamp(ts, tz=timezone.utc)
print(f"Next NFP release: {dt.strftime('%Y-%m-%d %H:%M UTC')}")
# 3. Fetch EUR inflation + AUD policy rate in one GraphQL request (Pro key)
gql_query = """
query {
eurCPI: announcements(currency: "EUR", indicator: "inflation") {
data { date val pctChange }
}
audRate: announcements(currency: "AUD", indicator: "policy_rate") {
data { date val }
}
}
"""
resp = requests.post(
f"{BASE}/graphql",
params={"api_key": API_KEY},
json={"query": gql_query},
timeout=15,
)
resp.raise_for_status()
payload = resp.json()
if "errors" in payload:
raise RuntimeError(payload["errors"])
data = payload["data"]
eur_latest = data["eurCPI"]["data"][-1]
aud_latest = data["audRate"]["data"][-1]
print(f"EUR CPI {eur_latest['date']}: {eur_latest['val']}%")
print(f"AUD Rate {aud_latest['date']}: {aud_latest['val']}%")
# 4. Check market sessions before triggering a trade alert (free)
sessions_resp = requests.get(f"{BASE}/market_sessions", timeout=10)
sessions_resp.raise_for_status()
session_data = sessions_resp.json()
if session_data["is_market_day"]:
for overlap in session_data.get("overlaps", []):
if overlap["is_active"] and overlap["priority"] == "high":
print(f"High-liquidity window active: {overlap['name']}")
else:
print("Market closed — skipping alert")
Was Sie erreicht haben
- ✓ Historische Indikatorenreihen mit genauen Zeitstempeln der Veröffentlichung aus dem Ankündigungen Endpunkt
- ✓ Nachfrage nach bevorstehenden Veröffentlichungsplänen von ✓ Veröffentlichungskalender Endpunkt
- ✓ Entdeckte verfügbare Indikatorschlägen pro Währung mit dem Datenkatalog Endpunkt
- ✓ Spezifische Futures-Positionierungen aus dem ✓ COT Endpunkt
- ✓ Preisserien für Edelmetalle aus dem ✓ Metalle Endpunkt
- ✓ Anpassung der Makrodaten an die Spotkurse der Wechselkurs Endpunkt
- ✓ Überprüfung des Live-Sitzungszustands von der Marktveranstaltungen Endpunkt
- ✓ Vielfache Indikatorfragen in einer einzigen Hin- und Rückreise mit der GraphQL Endpunkt
Was Sie als nächstes bauen können
Sie haben nun Arbeitsbeispiele für jeden öffentlichen Endpunkt in der FXMacroData API.
- Ersetzen Sie sequentielle REST-Aufrufe durch GraphQL-Batching. Überall, wo Sie drei oder mehr unabhängige GET-Anfragen stellen, kann eine einzige GraphQL POST sie ersetzen. Wie man FXMacroData über GraphQL abfragt- Ich weiß .
- COT-Positionierung der Schicht über Rate-Differenzialen. Die Spekulationsnetze des COT-Endpunkts mit den Politikzinsreihen kombiniert, wird ein zusammengesetztes Makrosignal für das G8-Währungsuniversum erstellt.
- Die Preise für Metalle an die Währungsfreigabe anpassen. Verknüpfen Sie Gold aus dem Metallendpunkt mit der Ankündigungsreihe AUD oder USD, um die Korrelationen zwischen Safe-haven und Dollar im Laufe der Zeit zu verfolgen.
Das FXMacroData Team