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

Builders

Engineering

Wie wir die Richtigkeit von Makrodaten überprüfen, bevor wir sie verwenden

Ein Blick in die mehrstufige Datenvalidierung, die sicherstellt, dass jeder von FXMacroData bereitgestellte Makroindikator genau, zeitnaht und konsistent ist von der ersten Einnahme und Schema-Prüfung bis hin zur Ausreißerfilterung, Quellvergleich und Geschäftstagsintegritätsregeln.

Auch verfügbar auf English
Share article X LinkedIn Email
Wie wir die Richtigkeit von Makrodaten überprüfen, bevor wir sie verwenden image
Strukturierte Daten: Artikel Der Held führt ein .

Technik

Makrodaten sind nur so nützlich , wie sie sind . genauHier ist, wie jeder von FXMacroData bediente Datenpunkt eine fünfstufige Validierungspflanze durchläuft, bevor er Ihre Anwendung erreicht.

Wenn eine Zentralbank eine Zinsentscheidung veröffentlicht oder ein Statistikbüro einen neuen Inflationsdruck veröffentlicht, kommt die rohe Ankündigung oft mit Lärm: Codierung von Artefakten, teilweisen Seiten, fehlenden Feldern oder Revisionen, die dem Vormonat widersprechen.

Bei FXMacroData behandeln wir Datenqualität als erstklassige Produktbedenken. Jeder Indikator aus jeder Währung durchläuft eine deterministische Validierung Pipeline, bevor er an Firestore geschrieben und durch die API ausgesetzt wird. Dieser Beitrag geht durch diese Pipeline Schicht für Schicht vom Moment, in dem ein Fetcher eine Rohantwort herunterlädt, bis zu dem Moment, an dem ein Wert abfragbar wird Endpunkte wie /v1/announcements/{currency}/{indicator}- Ich weiß .

Pipeline-Übersicht

Pipeline auf einen Blick

① Ingest - Ich weiß. ② Schema Check - Ich weiß. ③ Range & Outlier Filter - Ich weiß. ④ Cross-Source Reconciliation - Ich weiß. ⑤ Business-Day Integrity

Stufe 1: Einnahme

Stufe 1 Einnahme: Strukturierte Quelle-Befanger

Die Validierung beginnt, bevor ein einzelner Wert extrahiert wird. Jede Währung hat eine eigene Fetcher-Klasse, die sich an eine offizielle Primärquelle richtet die Website der Zentralbank, das nationale Statistikbüro oder ein Regierungsdatentor. Wir vermeiden absichtlich sekundäre Aggregatoren auf dem Einnahmeweg: ihre Verzögerung, Lizenzbedingungen und gelegentliche stille Revisionen bringen Unsicherheit mit sich, die wir nicht kontrollieren können.

Fetcher sind asynchrone Python-Klassen , die eine async with Bei Eingabe öffnen sie eine aiohttp.ClientSession mit einer realistischen User-Agent Die Daten werden in einem System mit einer geringen Anzahl von Daten aus der Datenbank gesammelt, die von einem einzelnen Datenträger ausgeht. lxml Oder ... BeautifulSoup JSON-API werden über eingetippte Accessor-Tasten aufgerufen, die sofort angezeigt werden, wenn ein Feld fehlt oder nach oben umbenannt wird.

Code-Highlight-Feld

Fetcher-Vertrag erforderliche Ausgabe-Schlüssel

{
    "date": "2026-03-31",          # ISO-8601 Datumsschnur
    "val": 3.5,                    # schwimmen  nie String
    "announcement_datetime": "..." # UTC ISO-8601 wenn verfügbar
}

Der Ausgabevertrag wird an der Grenze des Holers durchgesetzt: fehlende Aufzeichnungen date Oder ... val wird entsorgt, bevor es die nächste Stufe erreicht. announcement_datetime ist bei der Einnahme optional, jedoch für Publikations-Endpunkte erforderlich, die den API-Nutzern den Ereigniszeitplan offenlegen.


Schritt 2: Überprüfung des Schemas

Stufe 2 Schemaüberprüfung: Typ- und Vollständigkeitsvalidierung

Die Roh-Fetcher-Ausgabe wird an einen Schema-Validierer übergeben , der vier Kontrollen an jedem Datensatz durchführt:

Datumformat

Parsiert als ISO-8601-Datum. Nicht-parsierbare Zeichenfolgen, zukünftige Daten über ein Zwei-Tage-Grace-Fenster hinaus und Daten vor 1960 werden alle abgelehnt.

Wertart

val muss zu einem endlichen Python zwingen float- Ich weiß . NaN- Ich weiß . Inf, und nicht-numerische Zeichenfolgen (z. B. "n/a", leere Zeichenfolgen) werden eher abgelehnt als auf Null gezwungen.

Doppeldeckung

Wenn zwei Datensätze dasselbe haben (currency, indicator, date) Die Pipeline speichert den letzten eingesammelten und protokolliert die Kollision.

Währungs-/Indikatorpaarung

Jeder Eintrag wird mit dem veröffentlichten Indikatorkatalog abgeglichen. unemployment für eine Währung, die diesen Indikator nicht zeigt, erhebt er einen Fehler und stoppt die Charge.

Schemafehler werden als strukturierte Cloud Logging-Einträge mit severity=ERROR- Ich weiß . stage=schema_checkDies macht Cross-Run Differenzierung einfach in der GCP-Konsole.


Stufe 3: Außenschichtfilter

Stufe 3 Filter für Bereich und Ausreißer

Strukturelle Gültigkeit ist notwendig, aber nicht ausreichend. 250.0 for USD CPI is syntactically valid but obviously wrong. Stage 3 applies two complementary checks to catch these semantic errors.

Grenzen für die harte Reichweite

Jeder Indikator hat einen Katalogbeitrag, der optionale Angaben enthält min_val Und ... max_val Die Zinssätze sind z. B. zwischen -5.0 Und ... 30.0 Die Inflation liegt zwischen -30.0 Und ... 300.0 Die Daten für die Schwellenländer sind nicht zu überschreiten, da sie nicht in der Lage sind, die Daten zu übertragen.

Ermittlung von Ausreißern für rollende Z-Score

Für Indikatoren mit mindestens 24 Monaten Firestore-Geschichte berechnet die Pipeline einen 36-monatigen gleitenden Durchschnitt und eine Standardabweichung und markiert alle neuen Rekorde, deren Z-Score übersteigt. |4.0|Im Gegensatz zu harten Grenzen werden mit den Z-Score-Flaggen keine Datensätze automatisch entfernt. outlier_flag: true Das Programm kann die Daten des Anwenders in einem anderen Feld als dem Firestore-Dokument aufnehmen, damit API-Nutzer in ihren eigenen Workflows möglichst die mit Ausreißer-Flaggen versehenen Datensätze filtern können.

Warum 4σ und nicht 3σ ?

Warum 4σ statt 3σ?

Makroindikatoren zeigen wirklich Fettschwänze. COVID-19-Versorgungs-Schocks, die Energiekrise von 2022 und schnelle Wanderzyklen der Zentralbank ergaben alle statistisch seltene, aber echte Messwerte. Ein 3σ-Schwellenwert würde legitime Daten während Regimewechseln unter Quarantäne stellen, genau wenn genaue Messwerte am wichtigsten sind.


Schritt 4: Versöhnung zwischen Quellen

Stufe 4 Quellenübergreifende Aussöhnung

Für eine Teilmenge von hochwichtigen Indikatoren Zentralbankpolitik, Haupt-CPI und Arbeitslosigkeit unterhält die Pipeline eine sekundäre Quelle, mit der sie abgeglichen werden kann.

Wenn die primären und sekundären Werte für die gleiche (currency, indicator, date) Die Zinssätze werden in einem System mit einer Abweichung von mehr als einer konfigurierbaren Toleranz angezeigt, wobei eine Warnung ausgelöst wird und der primäre Wert in Erwartung einer Untersuchung aufbewahrt wird. 5 basis pointsFür den CPI ist es 0.1 percentage pointsDie Toleranzen sind für diese Indikatoren absichtlich eng, da selbst kleine Abweichungen oft auf einen Parserfehler, eine Berichtsverzögerung oder einen Konflikt zwischen vorläufiger und abschließender Revision hinweisen.

Zwei-Spalten-Design: Primär vs. Sekundär

Primäre Quellen

  • Amtsberichte der Zentralbanken
  • Nationale statistische Ämter
  • Regierungsdatenportale

Quellen für Querverweise

  • Parallele amtliche Endpunkte (z. B. BIS)
  • Überarbeitungspflagge für historische Aufzeichnungen
  • Interne Kohärenzprüfung vor dem Zeitraum

Neben den Überprüfungen pro Dokument führt die Pipeline auch eine Monatsüberschreitende Kontinuitätsprüfung: wenn ein neuer Datensatz eine Änderung von mehr als N Die Daten sind in der Regel in der Form von Daten, die in der Datenbank aufgenommen werden, und in der Veröffentlichung von Daten über die Daten, in der die Daten über den Zeitraum der letzten 12 Monate erfasst werden. revised Flaggen, wenn der Wert eines Datums nach der Erstveröffentlichung aktualisiert wird.


===== Stufe 5: BUSINESS-DAY Integrität ======

Stufe 5 Integrität im Geschäftsbetrieb

Die letzte Validierungsphas befasst sich mit einer subtilen, aber wichtigen Einschränkung: jeder announcement_datetime muss an einem gültigen Werktag des Marktzeitzone Die Statistikbüros und Zentralbanken veröffentlichen keine Ankündigungen an Wochenenden oder Feiertagen , wenn also die Pipeline einen Zeitstempel erzeugt, der an einem Samstag in Tokio oder an einem Feiertag in Sydney landet, ist etwas falsch vorgelaufen.

Der Validierer ruft . is_valid_announcement_date(currency, local_date)Die Daten werden in der Datenbank von der API AUD, EUR, GBP, JPY, USD, CAD, CHF, NZD und allen anderen übertragen. Jede Währung hat ihre eigene Zeitzone und ihre eigenes Urlaubstafeln. Währungen erben nicht von ihrer FX-Sitzung; ein Freitag in New York kann Samstag in Sydney sein, und der Validierer behandelt dies genau.

Code-Stil-Aufruf: die Validierungsfunktion

Validierung am Geschäftstag (vereinfacht)

- Das ist nicht wahr. ist_gültig_Ankündigung_Datum(currency: str, local_date: date) -> bool:
    tz = CURRENCY_TIMEZONE[currency]
    # Verwerfe Wochenenden
    if local_date.weekday() >= 5:
        Rückkehr False
    # Verwerfe Feiertage
    if local_date in _build_holiday_set(currency, local_date.year):
        Rückkehr False
    Rückkehr True

Wenn ein berechnetes Datum diesen Check nicht erfüllt, next_valid_announcement_date Diese Geschäftstage Regeln werden auch durch eine CI-Testsuite durchgesetzt, die den Build versagt, wenn eine Währung im Katalog Zeitzone oder Urlaubsdaten fehlt.

Genauigkeit des Kalenders der Veröffentlichung: Die Daten für bevorstehende Ereignisse ab dem Endpunkt des Kalenders wie die nächste Fed-Sitzung oder die RBA-Ratenentscheidung fallen garantiert an gültigen Werktagen in der Zeitzone des Währungsmarktes. /api/v1/kalender/{Währung} Dieser validierte Zeitplan wird direkt reflektiert.


Überwachen

Kontinuierliche Überwachung und Warnung

Die Pipeline läuft nach einem Zeitplan, der von Cloud Tasks und Backfill-Workflows ausgelöst wird, und jeder Lauf erzeugt eine strukturierte Telemetrie, die eine Überwachungsschicht speist.

Alarm in der Stufe

Fehlfunktionen in jeder Pipeline-Phase geben sofort einen Cloud Logging-Eintrag zur Triage aus.

Inhaltshash

Jeder Firestore-Schreiben enthält eine content_hash um stillschweigende Revisionen vor der Produktion zu erkennen und aufzudecken.

Überprüfung der Verfallserfahrung

Die Lesegeräte erkennen, wenn gespeicherte Daten mehr als N Tage hinter dem gewünschten Bereich liegen und ein Lückensignal auftauchen, anstatt stillschweigend veraltete Werte zurückzugeben.

Wenn ein Fetcher keine Daten zurückgibt Netzwerk-Timeout, Änderung der vorgelagerten Website oder Änderung der Antwortstruktur fällt die Pipeline nicht zur Live-Upstream-Anrufe zur Anforderungszeit zurück. Stattdessen gibt sie einen Validierungsfehler aus und gibt ein leeres Ergebnis oder eine strukturierte DataUnavailableError Dies verhindert, dass veraltete oder teilweise validierte Daten die API-Schicht erreichen, auch wenn dies nur vorübergehend geschieht.


===== Überarbeitung der Handhabung ======

Wie man mit Überarbeitungen und Neufassung umgeht

Die Makrodatenrevisionen sind eine Tatsache des Lebens. Die ursprünglichen BIP-Schätzungen werden zwei- bis dreimal überarbeitet. Die Gehaltslisten werden erheblich neu angegeben. Die Pipeline behandelt die Revisionen explizit, anstatt sie stillschweigend zu überschreiben:

  • Aufbewahrung des ersten Drucks: Die Pipeline speichert den ersten Wert für eine bestimmte (currency, indicator, date) Mit einem revised: false Die Flagge.
  • Überarbeitungserkennung: Bei nachfolgenden Einnahmeverläufen wird, wenn sich der Wert für ein Datum um mehr als die Revisionsschwelle des Indikators geändert hat, das Dokument aktualisiert und revised: true ist eingestellt.
  • Die Erhaltung der Geschichte: Der Originalwert des ersten Drucks wird in einem prior_val Feld für Prüf- und Vergleichszwecke.
  • Transparenz der API: Die ... revised Die Daten des Feldes werden in den API-Antworten ausgesetzt, so daß die Anwendungen, die sie konsumieren, die vorläufigen von den endgültigen Messungen unterscheiden können.

Dies ist besonders wichtig für Indikatoren wie die Non-Farm Payrolls, bei denen sich der vorläufige Druck und die anschließende Überarbeitung um Zehntausende Arbeitsplätze unterscheiden können. Endpunkt für die Lohnlisten außerhalb der Landwirtschaft- Ich weiß .


Was bedeutet das für die API-Konsumenten?

Was dies für die API-Verbraucher bedeutet

Das praktische Ergebnis dieser Pipeline für alle, die die API abfragen:

  • Nein . NaN Oder ... null Werte in der Reihe Aufzeichnungen mit ungültigen Werten werden in Stufe 2 ausgeschlossen und nicht als Löcher durchgegeben.
  • Sie können sich darauf verlassen Jedes Datum in einer Antwort ist ein gültiges Kalenderdatum an einem Geschäftstag für den Markt dieser Währung, das für die direkte Verwendung in Handelskalendern oder Backtesting-Engines geeignet ist.
  • Zeitstempel mit Sekundenabschätzung wenn verfügbar, announcement_datetime spiegelt die genaue UTC-Sekunde der offiziellen Veröffentlichung, nicht einen Platzhalter zur Mitternacht, wider.
  • Revisionsflaggen die revised Das Feld erlaubt Ihnen zu unterscheiden, ob Sie mit einer Vorlesung oder einer Abschlusslesung arbeiten.
  • Einheitliche Indikatoren Die Zinsindikatoren sind in Prozent und nicht in Dezimalzahlen (z. B. 5.25 Nein . 0.0525), die der Darstellung auf den offiziellen Websites der Zentralbanken entspricht.

Die Datenkatalogen dokumentieren genau, welche Quellen jede Serie speisen, so dass Sie die Herkunft eines beliebigen Datenpunktes unabhängig überprüfen können.

Abschluss der CTA

Erforschen Sie die Daten

Alle Indikatoren des Katalogs sind durch diese Pipeline gegangen.

API-Referenz →

Blogroll

AI Answer-Ready

Key Facts

Page
Macro Data Accuracy Validation Pipeline
Section
Articles
Canonical URL
https://fxmacrodata.com/de/artikel/macro-data-accuracy-validation-pipeline
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 Macro Data Accuracy Validation Pipeline 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.